Qt3D Renderer Elements: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Add "cleanup" tag)
(removed from needless category)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}
[[Category:Developing_with_Qt]]
 
[[Category:Developing_with_Qt::Qt3D:Qt3D_wip_newapi_Overview ]]
[toc align_right="yes" depth="3"]


= Qt3D Scene Structure and Elements =
= Qt3D Scene Structure and Elements =
Line 12: Line 9:
=== Nodes ===
=== Nodes ===


===== * '''Effect'''
* '''Effect'''
Specifies a list of techniques and default values to be used by the renderer to properly assign shaders and uniforms. =====
Specifies a list of techniques and default values to be used by the renderer to properly assign shaders and uniforms. =====


===== * '''RenderPass'''
* '''RenderPass'''
Specifies the ShaderProgram o be used for a pass of a technique.
Specifies the ShaderProgram o be used for a pass of a technique.
The render pass should have a name. =====
The render pass should have a name.


===== * '''Technique'''
* '''Technique'''
Contains a list of RenderPass elements. =====
Contains a list of RenderPass elements.


===== * '''ShaderProgram'''
* '''ShaderProgram'''
Has paths pointing to fragment and vertex shader sources. =====
Has paths pointing to fragment and vertex shader sources.


[[Image:http://i58.tinypic.com/35n0osi.png|http://i58.tinypic.com/35n0osi.png]]
http://i58.tinypic.com/35n0osi.png


==== FrameGraphItems ====
==== FrameGraphItems ====
Line 31: Line 28:
Only a single framegraph can be used at any moment for the rendering of the scene.
Only a single framegraph can be used at any moment for the rendering of the scene.


===== * '''Viewport'''
* '''Viewport'''
Defines the viewport rectangle to be used.'''Note :''' The viewport rectangle is defined from top left unlike OpenGL which defines it from bottom left. =====
Defines the viewport rectangle to be used.'''Note :''' The viewport rectangle is defined from top left unlike OpenGL which defines it from bottom left. =====


===== * '''CameraSelector'''
* '''CameraSelector'''
Defines the camera entity to be used. =====
Defines the camera entity to be used.


===== * '''RenderPassFilter'''
* '''RenderPassFilter'''
Defines the name of the RenderPass to be used. =====
Defines the name of the RenderPass to be used.


===== * '''RenderTargetSelector'''
* '''RenderTargetSelector'''
To be done - Defines the RenderTarget (Texture/FBO/Screen) =====
To be done - Defines the RenderTarget (Texture/FBO/Screen)


===== * '''TechniqueFilter'''
* '''TechniqueFilter'''
Defines the name of the technique to be used. =====
Defines the name of the technique to be used.  


[[Image:http://i59.tinypic.com/2885yit.png|http://i59.tinypic.com/2885yit.png]]
http://i59.tinypic.com/2885yit.png


=== Entity ===
=== Entity ===


===== * '''Scene'''
* '''Scene'''
Has a source property that can be set to the path of a 3D scene file to be loaded into the current scenegraph tree. =====
Has a source property that can be set to the path of a 3D scene file to be loaded into the current scenegraph tree.


=== Components ===
=== Components ===


===== * '''Mesh'''
* '''Mesh'''
Specifies the path toward a mesh source file. =====
Specifies the path toward a mesh source file.


===== * '''Material'''
* '''Material'''
Specifies an Effect and may override uniforms set by the Effect to be used
Specifies an Effect and may override uniforms set by the Effect to be used
by the Techniques' ShaderPrograms
by the Techniques' ShaderPrograms
Also specifies the textures. =====
Also specifies the textures.


===== * '''Shape'''
* '''Shape'''
Can be a shaper of one of the types :
Can be a shaper of one of the types :
'''''' Cube
'''''' Cube
Line 98: Line 95:
  }</code>
  }</code>


==== * '''FrameGraph'''
* '''FrameGraph'''
Defines the tree of FrameGraphItems to be used as the rendering pipeline. ====
Defines the tree of FrameGraphItems to be used as the rendering pipeline. ====


Line 138: Line 135:
  }
  }
}
}
</code>

Latest revision as of 23:58, 24 May 2015


Qt3D Scene Structure and Elements

Renderer elements

The Renderer aspect defines its own set of elements.

Nodes

  • Effect

Specifies a list of techniques and default values to be used by the renderer to properly assign shaders and uniforms. =====

  • RenderPass

Specifies the ShaderProgram o be used for a pass of a technique. The render pass should have a name.

  • Technique

Contains a list of RenderPass elements.

  • ShaderProgram

Has paths pointing to fragment and vertex shader sources.

35n0osi.png

FrameGraphItems

Only a single framegraph can be used at any moment for the rendering of the scene.

  • Viewport

Defines the viewport rectangle to be used.Note : The viewport rectangle is defined from top left unlike OpenGL which defines it from bottom left. =====

  • CameraSelector

Defines the camera entity to be used.

  • RenderPassFilter

Defines the name of the RenderPass to be used.

  • RenderTargetSelector

To be done - Defines the RenderTarget (Texture/FBO/Screen)

  • TechniqueFilter

Defines the name of the technique to be used.

2885yit.png

Entity

  • Scene

Has a source property that can be set to the path of a 3D scene file to be loaded into the current scenegraph tree.

Components

  • Mesh

Specifies the path toward a mesh source file.

  • Material

Specifies an Effect and may override uniforms set by the Effect to be used by the Techniques' ShaderPrograms Also specifies the textures.

  • Shape

Can be a shaper of one of the types : ' Cube ' Sphere ' Cylinder ' Torus Additional properties allow to further define the shape and its precision. =====

 Mesh {
 id: ballMesh
 objectName: "ballMesh"
 source: ":/assets/ball.obj"
 }

Material {
 id: ballMaterial
 objectName: "ballMaterial"
 // effect: adsEffect

// Custom properties go here
 }

Entity {
 id: ball
 objectName: "ball"

property Transform transform: Transform {
 Translate{ dx: 0; dy: 10; dz : 25 }
 Scale {scale : 0.1}
 }
 property Mesh mesh: ballMesh
 property Material material: ballMaterial
 }
  • FrameGraph

Defines the tree of FrameGraphItems to be used as the rendering pipeline. ====

import Qt3D 2.0
import Qt3D.Render 2.0

TechniqueFilter {

property alias viewportRect: viewport.rect
 property alias cameraViewportTopRight: cameraSelectorTopRight.camera
 property alias cameraViewportBottomLeft: cameraSelectorBottomLeft.camera

tags: [
 Tag { name: "style"; value: "forward"}
 ]

Viewport {
 id: viewport
 objectName : "viewport"
 rect: Qt.rect(0.0, 0.0, 1.0, 1.0) // From Top Left

Viewport {
 id : top_right_viewport
 rect: Qt.rect(0.5, 0, 0.5, 0.5)
 CameraSelector {
 RenderPassFilter { renderPassName: "zFill" }
 RenderPassFilter { renderPassName: "lighting" }
 }
 }

Viewport {
 id : bottom_left_viewport
 rect: Qt.rect(0.0, 0.5, 0.5, 0.5)
 CameraSelector {
 RenderPassFilter { renderPassName: "zFill" }
 RenderPassFilter { renderPassName: "lighting" }
 }
 }
 }
}