Game Development Community

GuiObjectView Control Transform problem - CONFIRMED (THREED-1986)

by Mquaker · in Torque 3D Professional · 06/12/2011 (9:15 pm) · 6 replies

Thread Titles:
some problem object rendering transform.

Thread Body:
Build: 1.1 Pro Final.
Platform: Windows 7 x64.
Target: Editors, Visual Studio.

Issues: object rendering transform problem in guiobjectview control.

Steps to Repeat:
1. Launch the game.
2. Press F10 to enter GUI Editor.
3. Add GuiObjectView from Library-3D Category.
4. set shapefile.

Suggested Fix:
maybe some code missed updated guiobjectview.cpp.
i added some code to 'void GuiObjectView::renderWorld( const RectI& updateRect )'.
SceneRenderState state
   (
      gClientSceneGraph,
      SPT_Diffuse,
      SceneCameraState( GFX->getViewport(), frust, GFX->getWorldMatrix(), GFX->getProjectionMatrix() ),
      renderPass,
      false
   );

   // Mquaker :: add missing code >>>
   // Set up pass transforms.   
   renderPass->assignSharedXform( RenderPassManager::View, MatrixF::Identity );
   renderPass->assignSharedXform( RenderPassManager::Projection, GFX->getProjectionMatrix() );
   // Mquaker :: add missing code <<<

   // Set up our TS render state here.   
   TSRenderState rdata;
   rdata.setSceneState( &state );
It's fine.

#1
06/13/2011 (9:11 am)
Logged as THREED-1986.
#2
06/15/2011 (3:01 pm)
Bug confirmed.
#3
10/03/2011 (6:50 am)
Thanks for the fix, mquaker!
#4
11/25/2011 (4:33 am)
Bump for this to get fixed in... 1.2.1?
#5
11/25/2011 (5:34 am)
this problem not fixed in 1.2...
maybe fixed this problem to next release version..
#6
03/03/2012 (9:27 pm)
I just ran into this issue. The above fix was giving me massive fps decrease when the guiObjectView was used ontop of playGui. My solution was change
SceneRenderState state  
   (  
      gClientSceneGraph,  
      SPT_Diffuse,  
      SceneCameraState( GFX->getViewport(), frust, GFX->getWorldMatrix(), GFX->getProjectionMatrix() ),  
      renderPass,  
      false  
   );
to
SceneRenderState state  
   (  
      gClientSceneGraph,  
      SPT_Diffuse,  
      SceneCameraState( GFX->getViewport(), frust, MatrixF::Identity, GFX->getProjectionMatrix() ),  
      renderPass,  
      false  
   );

everything appears working fine and no fps hit.