Qt3D Renderer Submission: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Add "cleanup" tag)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
[[Category:Developing_with_Qt::Qt3D]]
[[Category:Developing_with_Qt::Qt3D]]
[toc align_right="yes" depth="3"]
[toc align_right="yes" depth="3"]

Revision as of 16:35, 3 March 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

[toc align_right="yes" depth="3"]

Qt3D Renderer Submission

OpenGL Rendering

The actual OpenGL Rendering takes place in the RenderThread context. The thread is woken up when a RenderQueue is completed.

The rendering goes as follow :

  • For each RenderView in the Frame queue
    • Set the Viewport
    • Set the Camera
    • Clear the scene
    • For each RenderCommand in the RenderView
      • Create and bind the RenderCommand's VAO if it doesn't already exists for a given MeshData
      • Bind the OpenGLProgram to use for the given Material/RenderPass/Technique
      • Set the attributes
      • Release the VAO
      • Set the DrawState to be used for the current Material/RenderPass/Technique
      • Set the Mesh matrix
      • Set the Mesh Material
      • Set the uniforms for the given Material
      • Bind the VAO
      • OpenGL draw call
      • Release and Destroy VAO