Dynamic Cube Map reflection issue

I’ve recently tried to create a test scene wih an object reflecting other objects with a Dynamic Cube Map. It seems to work fine. However, Some faces of the object that actually FACE the rig cameras are visible in the reflections. This looks very strange. I’ve found something about DrawMask and cameraMask that said that it would hide specific objects to the rig camera, but it also said that this was not yet documented. Can anyone please suggest how to extend the cube map range without cutting the ground, (since making the rig lenses would remove the faces from view, but they still cut the ground,) or atleast explain how do i remove the object from the view of the rig by using DrawMask.

This page: Common State Changes mentions the use of per-camera masks to hide and show individual objects.

You can also change the near clipping plane on your rig camera lens with lens.setNear().

You may also play with double-sided geometry vs. single-sided geometry in your modeling package.

David

I have another question, how can i make sure that the Panda loader will not overwrite the smoothing groups of an object? I currently have a car, and it’s devided unto atleast 7 different smoothing groups, but whenever i import it using the .X format, all the polygons of the car appear to be of the same group. Help?

Are you sure the separate groups are retained when you write it to the .x file format? Maybe you need to find a different way to import the model into Panda.

But Panda doesn’t use groups to control smoothing; so unless you need them to be kept in separate groups for a different reason, perhaps it doesn’t really matter?

David

That causes an error,

Traceback (most recent call last):
  File "car.py", line 42, in <module>
    app = MyApp()
  File "car.py", line 34, in __init__
    rig.node().setCameraMask(BitMask32.bit(0))
AttributeError: 'libpanda.PandaNode' object has no attribute 'setCameraMask'

Help!

The rig has 6 sub-nodes (the cameras… well the nodes that have the cameras in fact) you’ll need to set the mask on each of them. Try it like this:

for child in rig.getChildren():
    child.node().setCameraMask(BitMask32.bit(0))