Okay, thanks for pointing me to where the sorting is done, marciano. That helped me figure out what I was doing wrong. I had my camera set up like so:
Code:
h3dSetNodeParamI( self.cam, H3DCamera.OrthoI, 1)
local screennodes_x = config.screenwidth / nodescreensize
local screennodes_y = config.screenheight / nodescreensize
h3dSetNodeParamF( self.cam, H3DCamera.LeftPlaneF, 0, -screennodes_x/2)
h3dSetNodeParamF( self.cam, H3DCamera.RightPlaneF, 0, screennodes_x/2)
h3dSetNodeParamF( self.cam, H3DCamera.BottomPlaneF, 0, -screennodes_y/2)
h3dSetNodeParamF( self.cam, H3DCamera.TopPlaneF, 0, screennodes_y/2)
h3dSetNodeParamF( self.cam, H3DCamera.NearPlaneF, 0, -30.0)
h3dSetNodeParamF( self.cam, H3DCamera.FarPlaneF, 0, 30.0)
Doing it like this is useful, since I can simply set the camera node position to the point in the map I want to be centered on the screen, but the sorting in
updateQueues doesn't like it when nodes lie behind the camera, since it uses fabs() when calculating the sort key.
I updated the camera so that it is offset in Y to be greater than the maximum node height, and and add an offset to X and Z calculated from the Y value in order to place the camera at the correct location to center the map view.
Thanks for your help. Love this library, by the way. The handle-based API made it an absolute breeze to bind to Lua, and everything seems clean and functional.