Qt3D Renderer Elements: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(removed from needless category)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=Qt3D Scene Structure and Elements=
[[Category:Developing_with_Qt]]


==Renderer elements==
= Qt3D Scene Structure and Elements =
 
== Renderer elements ==


The Renderer aspect defines its own set of elements.
The Renderer aspect defines its own set of elements.


===Nodes===
=== Nodes ===
 
==========
 
* '''Effect'''<br /> Specifies a list of techniques and default values to be used by the renderer to properly assign shaders and uniforms.
 
==========
 
* '''RenderPass'''<br /> Specifies the ShaderProgram o be used for a pass of a technique.<br /> The render pass should have a name.


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


* '''Technique'''<br /> Contains a list of RenderPass elements.
* '''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'''<br /> Has paths pointing to fragment and vertex shader sources.
* '''ShaderProgram'''
Has paths pointing to fragment and vertex shader sources.


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


====FrameGraphItems====
==== FrameGraphItems ====


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'''
Defines the viewport rectangle to be used.'''Note :''' The viewport rectangle is defined from top left unlike OpenGL which defines it from bottom left. =====


* '''Viewport'''<br /> 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.


* '''CameraSelector'''<br /> Defines the camera entity to be used.
* '''RenderTargetSelector'''
To be done - Defines the RenderTarget (Texture/FBO/Screen)


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


* '''RenderPassFilter'''<br /> Defines the name of the RenderPass to be used.
http://i59.tinypic.com/2885yit.png


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


* '''RenderTargetSelector'''<br /> To be done – Defines the RenderTarget (Texture/FBO/Screen)
* '''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 ===


* '''TechniqueFilter'''<br /> Defines the name of the technique to be used.
* '''Mesh'''
Specifies the path toward a mesh source file.


[[Image:2885yit.png]]
* '''Material'''
Specifies an Effect and may override uniforms set by the Effect to be used
by the Techniques' ShaderPrograms
Also specifies the textures.


===Entity===
* '''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. =====


==========
<code>
Mesh {
id: ballMesh
objectName: "ballMesh"
source: ":/assets/ball.obj"
}


* '''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.
Material {
id: ballMaterial
objectName: "ballMaterial"
// effect: adsEffect


===Components===
// Custom properties go here
}


==========
Entity {
id: ball
objectName: "ball"


* '''Mesh'''<br /> Specifies the path toward a mesh source file.
property Transform transform: Transform {
Translate{ dx: 0; dy: –10; dz : 25 }
Scale {scale : 0.1}
}
property Mesh mesh: ballMesh
property Material material: ballMaterial
}</code>


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


* '''Material'''<br /> Specifies an Effect and may override uniforms set by the Effect to be used<br /> by the Techniques’ ShaderPrograms<br /> Also specifies the textures.
<code>import Qt3D 2.0
import Qt3D.Render 2.0


==========
TechniqueFilter {


* '''Shape'''<br /> Can be a shaper of one of the types :
property alias viewportRect: viewport.rect
** Cube
property alias cameraViewportTopRight: cameraSelectorTopRight.camera
** Sphere
property alias cameraViewportBottomLeft: cameraSelectorBottomLeft.camera
** Cylinder
** Torus<br /> Additional properties allow to further define the shape and its precision.


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


* '''FrameGraph'''<br /> Defines the tree of FrameGraphItems to be used as the rendering pipeline.
Viewport {
id: viewport
objectName : "viewport"
rect: Qt.rect(0.0, 0.0, 1.0, 1.0) // From Top Left


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


* [[:Category:Developing with Qt|Developing_with_Qt]]
Viewport {
** [[:Category:Developing with Qt::Qt3D:Qt3D wip newapi Overview|Qt3D:Qt3D_wip_newapi_Overview]]
id : bottom_left_viewport
rect: Qt.rect(0.0, 0.5, 0.5, 0.5)
CameraSelector {
RenderPassFilter { renderPassName: "zFill" }
RenderPassFilter { renderPassName: "lighting" }
}
}
}
}
</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" }
 }
 }
 }
}