Qt3D Renderer Submission: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:Developing_with_Qt::Qt3D]]<br />[toc align_right=&quot;yes&amp;quot; depth=&quot;3&amp;quot;]
[[Category:Developing_with_Qt::Qt3D]]
[toc align_right="yes" depth="3"]


= Qt3D Renderer Submission =
= Qt3D Renderer Submission =
Line 5: Line 6:
== OpenGL Rendering ==
== OpenGL Rendering ==


The actual OpenGL Rendering takes place in the RenderThread context.<br />The thread is woken up when a RenderQueue is completed.
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 :
The rendering goes as follow :

Revision as of 10:34, 25 February 2015

[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