Advertisement
Guest User

Deferred Renderer Use

a guest
May 14th, 2014
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. g_deferredRenderer->Begin();
  2.  
  3.  
  4. if( g_camera )
  5. {
  6. g_device->SetTransform( D3DTS_VIEW, &g_camera->view );
  7. g_device->SetTransform( D3DTS_PROJECTION, &g_camera->projection );
  8.  
  9. UpdateCamera( g_camera->base );
  10.  
  11. BuildFrustum( g_camera );
  12. }
  13.  
  14. g_device->SetVertexDeclaration( g_meshVertexDeclaration );
  15.  
  16. // precalculations
  17. for( size_t i = 0; i < g_nodes.size(); i++ )
  18. {
  19. SceneNode * node = g_nodes.at( i );
  20.  
  21. CalculateGlobalTransform( node );
  22. }
  23.  
  24. // render meshes into G-Buffer
  25. if( g_camera )
  26. {
  27. for( auto groupIterator = g_meshes.begin(); groupIterator != g_meshes.end(); ++groupIterator )
  28. {
  29. IDirect3DTexture9 * texture = groupIterator->first;
  30. auto & meshes = groupIterator->second;
  31.  
  32. if( meshes.size() == 0 )
  33. continue;
  34.  
  35. // bind diffuse texture
  36. g_device->SetTexture( 0, texture );
  37.  
  38. for( auto meshIterator = meshes.begin(); meshIterator != meshes.end(); ++meshIterator )
  39. {
  40. Mesh * mesh = *meshIterator;
  41.  
  42. g_deferredRenderer->RenderMesh( mesh );
  43. }
  44. }
  45. }
  46.  
  47. g_deferredRenderer->End();
  48.  
  49. g_device->EndScene();
  50. g_device->Present( 0, 0, 0, 0 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement