pass

 

Tag: pass
Parent tag: pipeline
Attributes:

  • name (string): the pass name
  • class (string): the pass class. Can be one of: default, depthmap, quad, profiler, compute, optix or optixPrime

Different classes take different subsets of child tags. Class “profiler” does not take any child tags as it has a fixed behaviour: displaying profiler stats on top of the previously rendered stuff.

All pass classes child tags:

Class “default” and “depthmap” child tags:

Class “quad” child tags:

Class “compute” child tags:

Class “optix” child tags:

Class “optixPrime” child tags:

Class “default” example (simple):

			<pass class="default" name="teapotRendering" >
				<viewport name="MainViewport" />
				<scenes>
					<scene name="Teapot" />
				</scenes>
				<camera name="MainCamera" />
				<lights>
					<light name="Sun" />
				</lights>
			</pass>

Class “default” example (with material and injection maps maps):

			<pass class="default" name="pass1">
				<scenes>
					<scene name="Main" />
					<scene name="Trees" />
					<scene name="Other" />
				</scenes>
				<camera name="MainCamera" />
				<viewport name="MainViewport" />				
				<lights>
					<light name="Sun" />
				</lights>
				<materialMaps>
					<map fromMaterial="Glass" 
						 toLibrary="PL3D_Materials" toMaterial="Glass" />
					<map fromMaterial="Water" 
						 toLibrary="PL3D_Materials" toMaterial="Water" />
					<map fromMaterial="skydome" 
						 toLibrary="PL3D_Materials" toMaterial="Sky" />
				</materialMaps>
				<injectionMaps>
					<map toMaterial="BalconyBars*">
						<state name="BalconyBars" fromLibrary="PL3D_Materials" />
					</map>
				</injectionMaps>
			</pass>

Class “quad” examples:

			<pass class="quad" name="pass4">
				<viewport name="MiddleViewport" />
				<texture name="offscreenrender" fromLibrary="Optix Ray Tracer Render Target" />
			</pass>
			<pass class="quad" name="pass5">
				<viewport name="RightViewport" />
				<material name="combine" fromLibrary="Deferred" />
					
			</pass>	

Class “compute” example:

			<pass class="compute" name="pass1">
				<material name="computeShader" fromLibrary="Compute" dimX=64, dimY=64 dimZ=1 />
			</pass>

Class “optix” example:

			<pass class="optix" name="pass2">
				<scenes>
					<scene name="MainScene" />
				</scenes>
				<camera name="MainCamera" />
				<rendertarget name="test" fromLibrary="Optix Ray Tracer Render Target" />
				<lights>
					<light name="Sun" />
				</lights>
				<materialMaps>
					<map fromMaterial="*" toLibrary="nau_material_lib" toMaterial="__Black" />
				</materialMaps>
				<optixEntryPoint>
					<optixProgram type="RayGen" file="optix/deferredShadows.ptx" proc="buffer_camera"/> 
					<optixProgram type="Exception" file="optix/deferredShadows.ptx" proc="exception"/> 
				</optixEntryPoint>
				<optixDefaultMaterial>
					<optixProgram type="Any_Hit"  	 ray="Shadow" file="optix/deferredShadows.ptx" proc="any_hit_shadow"/> 
				</optixDefaultMaterial>
				<optixGeometryProgram>
					<optixProgram type="Geometry_Intersection"   file="optix/deferredShadows.ptx" proc="geometryintersection"/>
					<optixProgram type="Bounding_Box"   file="optix/deferredShadows.ptx" proc="boundingbox"/>
				</optixGeometryProgram>
				<optixVertexAttributes>
					<attribute name="position"/>
				</optixVertexAttributes>
				<optixGlobalAttributes>
					<valueof optixVar="lightDir" type="CURRENT" context="LIGHT" id=0 component="DIRECTION" />
				</optixGlobalAttributes>
				<optixInput>
					<buffer var="pos_buffer" texture="Deferred Render Targets::pos" />
				</optixInput>
			</pass>

Class “optixPrime” example:

			<pass name="Optix Prime" class="optixPrime">
				<scene name="bench" />
				<rays buffer="PrimeShadows::rays" queryType = "ANY"/> 
				<hits buffer ="PrimeShadows::hits" />
			</pass>