Qt3D Renderer Elements

From Qt Wiki
Revision as of 16:35, 3 March 2015 by AutoSpider (talk | contribs) (Add "cleanup" tag)
Jump to navigation Jump to search
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 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. =====

http://i58.tinypic.com/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. =====

http://i59.tinypic.com/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" }
}
}
}

}