This is a bit of a shot in the dark, but are your models perhaps set to be two-sided?
(For one thing, I’m noticing what looks like “some shadow-acne” on the top of the cube near the centre, and one potential cause of that, I believe, is the use of models with two-sided geometry.
And, speculatively, I could see such a setting potentially interfering with other effects, too.)
I’m guessing that you’re using a modern version of Blender? If so, then I’m not all that familiar with it–I still use an old version, in part because I have my pipeline set up for it.
That said, looking around the forums, try investigating the settings for your materials, and ensuring that “Backface Culling” is enabled. (See this post, and this post.)
You aren’t making any errors, complexpbr currently requires you to update the position of the reflection cubemap relative to your camera with a function that looks something like this:
def rotate_cubemap(task):
base.complexpbr_map.set_h(base.render,base.cam.get_h(base.render))
base.complexpbr_map.set_p(base.render,base.cam.get_p(base.render) + 90)
cam_pos = base.cam.get_pos(base.render)
if base.env_cam_pos is not None:
base.complexpbr_map.set_pos(base.env_cam_pos[0],base.env_cam_pos[1],base.env_cam_pos[2]+base.complexpbr_map_z)
else:
base.complexpbr_map.set_pos(cam_pos[0],cam_pos[1],cam_pos[2]+base.complexpbr_map_z)
if base.complexpbr_z_tracking:
cam_relative_pos = base.cam.get_pos(base.render)
cam_relative_pos[2] = cam_relative_pos[2]-(2 * cam_relative_pos[2])
base.env_cam_pos = cam_relative_pos
base.cam_pos = cam_pos
return task.cont
Depending on how your project is set up, you will need to manually control the orientation of the cubemap relative to your camera.
The behavior you’re seeing is the cubemap is registering at a fixed height. When your camera happens to be at that height, you see the reflection. When you’re above that height, you don’t see it.
Thank you for your reply. I tried your method, but the problem persisted. Nevertheless, I explored further and found a unstable fix with the base.complexpbr_z_tracking = True. However, you have to adjust base.complexpbr_map_z to get an accurate reflection, which is weird. I really don’t think that this is the correct method of doing this but it is still a clue to what is the problem.