Nuke binary plugins  14.0.8
slr::SlrPrimInfo Class Reference

Public Member Functions

int32_t nFaces () const
 For MeshPrim types. If -1 the faces count has not been determined yet!
 
int32_t nPoints () const
 For PointsPrim, PointInstancer types. If -1 the point count has not been determined yet!
 

Public Attributes

uint32_t object_index
 Index of this object in the SlrPrimInfoList in SlrRenderContext.
 
usg::StageRef stage
 Stage containing Prim.
 
const usg::Path * prim_path
 Prim path in Stage (stored in Render prim_path_cache)
 
SlrPrimTypeHint prim_type_hint
 To drive render primitive conversion.
 
SlrSurfaceMaterialmaterial
 Render material (stored in SlrRenderContext)
 
bool visible_to_camera
 Should the object be visible to camera?
 
bool casts_shadow
 Does the object cast a shadow?
 
bool receives_shadow
 Does the object get shadowed by lights?
 
bool enabled
 Object is 'on' for this scene.
 
fdk::TimeValue motion_time
 Time of this prim's xform & bbox sampling (scene motion time)
 
fdk::TimeValue topology_time
 Time of this prim's topology sampling (usually shutter open or close)
 
fdk::Box3f bbox
 Local-space bbox.
 
fdk::Mat4dList transforms
 Double-precision scene-transform matrices.
 
int32_t num_sub_indices
 To match motionblur-able topology. ie nFaces for MeshPrim, nPoints for PointsPrim.
 

Friends

std::ostream & operator<< (std::ostream &, const SlrPrimInfo &)
 

Detailed Description

Replacement for legacy GeoInfo structure used in the legacy DD::Image::Render-based architecture like ScanlineRender, DepthMapRender, etc.

This structure represents a single usg::Prim at a single time sample. The Prim's attributes are not copied to time-sampled local arrays, that is left to the render primitive adapters at render time. However the Prim's concatenated scene transform is time sampled and stored in the 'transforms' - note that all matrices are now double-precision.

The previous GeoInfo often contained an internal list of 'atomic' Primitives such as triangles, points and polygons, but these are deprecated in favor of the SlrPrimInfo representing a single 'compound', or complex primitive such as a MeshPrim or PointsPrim, so there's no longer a reason for SlrPrimInfo to contain anything besides what's needed for the renderer to sample the usg::Prim and convert it to its internal render primitives, which is usually triangles.



©2024 The Foundry Visionmongers, Ltd. All Rights Reserved.
www.foundry.com