Shade¶
LXi_TEXLAYER_BLEND_NORMAL
LXi_TEXLAYER_BLEND_ADD
LXi_TEXLAYER_BLEND_SUB
LXi_TEXLAYER_BLEND_DIFF
LXi_TEXLAYER_BLEND_NORMALMULT
LXi_TEXLAYER_BLEND_DIV
LXi_TEXLAYER_BLEND_MULTIPLY
LXi_TEXLAYER_BLEND_SCREEN
LXi_TEXLAYER_BLEND_OVERLAY
LXi_TEXLAYER_BLEND_SOFTLIGHT
LXi_TEXLAYER_BLEND_HARDLIGHT
LXi_TEXLAYER_BLEND_DARKEN
LXi_TEXLAYER_BLEND_LIGHTEN
LXi_TEXLAYER_BLEND_COLORDODGE
LXi_TEXLAYER_BLEND_COLORBURN
LXi_BRDFTYPE_BLINN
LXi_BRDFTYPE_ASHIKHMIN
LXi_BRDFTYPE_GTR
LXi_BRDFTYPE_PRINCIPLED
LXi_SHADERMODEL_MODO
LXi_SHADERMODEL_UNREAL
LXi_SHADERMODEL_UNITY
LXi_SHADERMODEL_PRINCIPLED
LXi_SHADERMODEL_PRINCIPLED_COAT
LXi_SHADERMODEL_PRINCIPLED_SHEEN
LXi_SHADERMODEL_GLTF
LXi_SHADERMODEL_AXF
-
LXi_GLTFSHADINGMODELv_PBR
¶ Two glTF shading models are supported:
LXi_GLTFSHADINGMODELv_UNLIT
LXi_REFLTYPE_FULL
LXi_REFLTYPE_ENVIRON
-
LXf_SMOOTHING_WEIGHT_AREA
¶ Options for normal calculation.
LXf_SMOOTHING_WEIGHT_AREA_SUM
LXf_SMOOTHING_WEIGHT_ANGLE
LXf_SMOOTHING_WEIGHT_DEFAULT
LXi_SMOOTHING_NORMAL_DEFAULT
LXi_SMOOTHING_NORMAL_NEWELL
LXf_SMOOTHING_CREASE_ANGLE
LXf_SMOOTHING_CREASE_GROUPS
LXf_SMOOTHING_CREASE_FORCEGROUPS
LXf_SMOOTHING_CREASE_HARDEDGES
LXf_SMOOTHING_CREASE_DEFAULT
-
LXi_SURF_ALL
¶ The group item has three channels: ‘ptag’ stores the ptag value, ‘ptyp’ stores the ptag type, and ‘subm’ to apply the group textures to its submasks. The item also has an object link to reference objects for masking. The ‘styp’ channel is for surface type which at the moment is (all), triangle or fur:
LXi_SURF_TRIANGLE
LXi_SURF_FUR
LXi_SURF_CURVE_TRIANGLE
LXsITYPE_UNITY_SHADER
LXsITYPE_UNREAL_SHADER
LXsITYPE_GLTF_SHADER
LXsITYPE_AXF_SHADER
ILxTextureLayer¶
-
class
ILxTextureLayer
¶ Public Functions
-
int
Flags
(LXtObjectID self)¶ This is the interface used to get the flags, vector type and 2 evaluation interfaces. ‘Flags’ textures have a number of flags that indicate how the texture behaves in general. For examples flags are used to indicate if a texture references clip or locator items, or if it references things like vmaps. ‘VectorType’ returns the texture global vector type. NOTE: this should probably be implemented as ISA ‘Preview’ is used to process item events and returns preview change flags. ‘PrepFilter’ adds the channels for the texture modifier ‘AllocFilter’ allocates a full texture filter object ‘AllocTexture’ allocates a simpler texture evaluation object.
-
LxResult
VectorType
(LXtObjectID self, void **ppvObj)¶
-
int
Preview
(LXtObjectID self, LXtPreviewEvent *event)¶
-
LxResult
PrepFilter
(LXtObjectID self, LXtObjectID eval)¶
-
LxResult
AllocFilter
(LXtObjectID self, LXtObjectID attr, int *offset, int chan, void **ppvObj)¶
-
LxResult
AllocTexture
(LXtObjectID self, LXtObjectID attr, int offset, void **ppvObj)¶
-
LxResult
LinkSampleChans
(LXtObjectID self, LXtObjectID nodalEtor, int *idx, int *idxLoc)¶
-
int
IsSampleDriven
(LXtObjectID self)¶
-
int
-
LXfSHADERFLAGS_USE_LOCATOR
¶ Flags are used to specify the texture special behaviors.
LXfSHADERFLAGS_USE_CLIP
LXfSHADERFLAGS_USE_LIGHT
LXfSHADERFLAGS_USE_GROUP
LXfSHADERFLAGS_NEED_UVS
LXfSHADERFLAGS_USE_CAMERA
LXtPreviewEvent¶
-
struct
st_LXtPreviewEvent
¶ The preview event structure contains some flags indicating what was changed and the image, item and scene objects that were changed (note that it can represent several events). For item events, the channel index is also set.
-
LXfPREV_EVENT_MESH
¶ These are the preview event flags.
LXfPREV_EVENT_ITEM
LXfPREV_EVENT_IMAGE
LXfPREV_EVENT_CINE
LXfPREV_EVENT_MESH_FEATURE
LXfPREV_EVENT_MESH_BIN
-
LXfPREV_UPDATE_GEOMETRY
¶ These are the preview update flags, returned by the preview interface.
LXfPREV_UPDATE_SHADING
LXfPREV_UPDATE_LIGHT
LXfPREV_UPDATE_BACKDROP
LXfPREV_UPDATE_IMAGE
LXfPREV_UPDATE_CAMERA
LXfPREV_UPDATE_CLIP
LXfPREV_UPDATE_FORCE
LXsTLR_CATEGORY
ILxTextureEval1¶
-
class
ILxTextureEval1
¶ Public Functions
-
LxResult
Setup
(LXtObjectID self, int slice)¶ N5: Item() returns the internal item pointer!
-
void
Cleanup
(LXtObjectID self)¶
-
void
Evaluate
(LXtObjectID self, LXtObjectID etor, LXtObjectID vs, int slice)¶
-
void
Output
(LXtObjectID self, LXtObjectID vtOutput, LXtObjectID *vtSubset)¶
-
int
Slice
(LXtObjectID self, LXtObjectID vtOutput, LXtObjectID tvDesc, LXtMeshBinID meshbin, int srfType)¶
-
void
Select
(LXtObjectID self, LXtObjectID teElt, LXtObjectID tvDesc, LXtMeshBinID meshbin, int srfType)¶
-
int
Smoothing
(LXtObjectID self, double *smooth, double *angle, int *useArea)¶
-
int
Layer
(LXtObjectID self, double *opa, int *invert, int *blend)¶
-
int
Opaque
(LXtObjectID self)¶
-
LxResult
VType
(LXtObjectID self, void **ppvObj)¶
-
LxResult
Effect
(LXtObjectID self, void **ppvObj)¶
-
LxResult
Item
(LXtObjectID self, void **item)¶
-
int
Implicit
(LXtObjectID self)¶
-
int
Shader
(LXtObjectID self)¶
-
int
Material
(LXtObjectID self)¶
-
LxResult
ILxTextureEval¶
-
class
ILxTextureEval
¶ Public Functions
-
LxResult
Setup
(LXtObjectID self, int slice)¶ The new interface supports the updated Smoothing method.
-
void
Cleanup
(LXtObjectID self)¶
-
void
Evaluate
(LXtObjectID self, LXtObjectID etor, LXtObjectID vs, int slice)¶
-
void
Output
(LXtObjectID self, LXtObjectID vtOutput, LXtObjectID *vtSubset)¶
-
int
Slice
(LXtObjectID self, LXtObjectID vtOutput, LXtObjectID tvDesc, LXtMeshBinID meshbin, int srfType)¶
-
void
Select
(LXtObjectID self, LXtObjectID teElt, LXtObjectID tvDesc, LXtMeshBinID meshbin, int srfType)¶
-
int
Smoothing
(LXtObjectID self, double *smooth, double *angle, int *weighting, int *normalMethod, int *creasing)¶
-
int
Layer
(LXtObjectID self, double *opa, int *invert, int *blend)¶
-
int
Opaque
(LXtObjectID self)¶
-
LxResult
VType
(LXtObjectID self, void **ppvObj)¶
-
LxResult
Effect
(LXtObjectID self, void **ppvObj)¶
-
LxResult
Item
(LXtObjectID self, void **item)¶
-
int
Implicit
(LXtObjectID self)¶
-
int
Shader
(LXtObjectID self)¶
-
int
Material
(LXtObjectID self)¶
-
LxResult
ILxTextureVMap¶
-
class
ILxTextureVMap
¶ Public Functions
-
unsigned
Count
(LXtObjectID self)¶ This is the interface used to find out vmaps used by texture layers.
Count This returns the number of vmaps referenced by the texture
Name This returns the name of the vmap given its index
Type This returns the vmap type given its index.
-
LxResult
Name
(LXtObjectID self, unsigned index, const char **name)¶
-
LXtID4
Type
(LXtObjectID self, unsigned index)¶
-
unsigned
ILxTextureMask¶
-
class
ILxTextureMask
¶ Public Functions
-
LXtID4
Tag
(LXtObjectID self)¶ Mask layers have a specific interface used to compute partitioning. Partitioning is done by ptags and objects, it can use either or both at the same time. For example, a mesh can be partionned by a material name and an object ID, so you could have ptag:”Default”, object:”Mesh A”. This would apply the mask on all polygons with the “Default” material ptag on object “Mesh A”.
Tag This returns the polygon tag type used for partioning.
String This returns the name used on polygon tags, like the material name.
Object This returns item ID of the object used for partitioning.
Type This returns the shader type.
Stack This returns the mask evaluation sub-stack, that is the stack for all the mask’s child items. N5: Object() returns the internal item pointer. N5: Stack() returns the internal EvalStackID (for which we currently have no COM option!).
-
LxResult
String
(LXtObjectID self, const char **name)¶
-
LxResult
Object
(LXtObjectID self, void **item)¶
-
unsigned
Type
(LXtObjectID self)¶
-
LxResult
Stack
(LXtObjectID self, void **stack)¶
-
int
ApplyToSub
(LXtObjectID self)¶
-
LXtID4
ILxTextureGL¶
-
class
ILxTextureGL
¶ Public Functions
-
LxResult
Evaluate
(LXtObjectID self, LXtObjectID chan, LXtMeshBinID mbin, LXtObjectID item, void *gls)¶ Texture layers have a specific GL interface used to evaluate GL surface attributes.
-
int
IsShader
(LXtObjectID self, LXtObjectID chan, LXtMeshBinID mbin, LXtObjectID item)¶
-
LxResult
ILxValueTexture1¶
-
class
ILxValueTexture1
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ A value texture is a simple type of texture, also called procedural although that’s incorrect since value textures can come from data sources other than algorithms. A value texture provides a scalar, color or vector value at every point on a surface.
SetupChannels This is called when the item type is first defined to determine the channels that should be added to the item definition.
LinkChannels This is called with an ILxEvaluation interface and the texture should add any channels that it wants to read.
ReadChannels This is called with an ILxAttributes interface so the texture can read any of the values that it needs at the current time. The values read should be cached (along with any other needed scratch space) to an allocated block of data returned indirectly.
Customize After channels are read the value texture can request surface features and sample vector packets. No guarantees.
Evaluate This is called during rendering for every sample where the value texture applies. The function should use the spot parameters of the sample in the input packet, and write results to the output packet.
Cleanup Frees the data block allocated by ReadChannels() method.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
Evaluate
(LXtObjectID self, LXtObjectID vector, LXpTextureOutput *tOut, void *data)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
LxResult
ILxValueTexture¶
-
class
ILxValueTexture
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ The new and current version of the interface support the ‘LinkSampleChannels’, ‘IsSampleDriven’ and ‘Setup’ methods.
LinkSampleChannels This is called with an ILxEvaluation/ILxAttributes interface and the texture should add any channels that it wants to read on a per-sample basis. This method should also be used to store a copy of the CLxUser_Attributes derived from the nodalEtor passed in. If your ‘evalData’ is derived from the CLxSampleRendData user class, then you can simply perform an ‘rd->at.set (nodalEtor)’ as shown in the example below.
IsSampleDriven For efficiency, it helps if the shading system knows if a texture has any channels that are per-sample driven. If not, much of the per-sample setup can be skipped, making rendering faster. This will be called to ask if the texture is in any way sample-driven for the current pass. This can be determined by using the CLxUser_NodalService::AnyDrivenChans() method.
Setup This is called when a new shader slice is created. It may be called multiple times when setting up a render or preview - once for each new slice.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
LinkSampleChannels
(LXtObjectID self, LXtObjectID nodalEtor, LXtObjectID item, int *idx)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
LxResult
Setup
(LXtObjectID self, void *data)¶
-
void
Evaluate
(LXtObjectID self, LXtObjectID etor, int *idx, LXtObjectID vector, LXpTextureOutput *tOut, void *data)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
int
IsSampleDriven
(LXtObjectID self, int *idx)¶
-
LxResult
ILxValueTextureCustom¶
-
class
ILxValueTextureCustom
¶ Public Functions
-
LxResult
AddFeature
(LXtObjectID self, LXtID4 type, const char *name)¶ This interface is passed to the Customize() method.
-
LxResult
AddPacket
(LXtObjectID self, const char *name)¶
-
LxResult
ILxTexture¶
-
class
ILxTexture
¶ Public Functions
-
LxResult
Locator
(LXtObjectID self, void **ppvObj)¶
-
LxResult
SetLocator
(LXtObjectID self, LXtObjectID tloc)¶
-
LxResult
Image
(LXtObjectID self, void **ppvObj)¶
-
LxResult
SetImage
(LXtObjectID self, LXtObjectID img)¶
-
const char *
ImageName
(LXtObjectID self)¶
-
LxResult
EvalImage
(LXtObjectID self, LXtObjectID scene, void **ppvObj)¶
-
int
LocatorProjectionMode
(LXtObjectID self, double time)¶
-
int
LocatorProjectionAxis
(LXtObjectID self, double time)¶
-
const char *
Effect
(LXtObjectID self)¶
-
LxResult
SetEffect
(LXtObjectID self, const char *effect)¶
-
LxResult
LXi_TEXTURE_PROJ_MODE_NONE
LXi_TEXTURE_PROJ_MODE_PLANAR
LXi_TEXTURE_PROJ_MODE_CYLINDRICAL
LXi_TEXTURE_PROJ_MODE_SPHERICAL
LXi_TEXTURE_PROJ_MODE_CUBIC
LXi_TEXTURE_PROJ_MODE_FRONT
LXi_TEXTURE_PROJ_MODE_UVMAP
LXi_TEXTURE_PROJ_MODE_LIGHTPROBE
LXi_TEXTURE_PROJ_MODE_IMPLICIT
LXi_TEXTURE_PROJ_MODE_BOX
LXi_TEXTURE_PROJ_DIR_X
LXi_TEXTURE_PROJ_DIR_Y
LXi_TEXTURE_PROJ_DIR_Z
LXi_IMAGEMAP_PIXBLEND_NEAREST
LXi_IMAGEMAP_PIXBLEND_BILINEAR
LXi_IMAGEMAP_PIXBLEND_BICUBIC
LXi_IMAGEMAP_SWIZZLING_RGB
LXi_IMAGEMAP_SWIZZLING_RGBA
LXi_IMAGEMAP_SWIZZLING_ALPHA_ONLY
LXi_IMAGEMAP_SWIZZLING_RED_ONLY
LXi_IMAGEMAP_SWIZZLING_GREEN_ONLY
LXi_IMAGEMAP_SWIZZLING_BLUE_ONLY
ILxCompShader1¶
-
class
ILxCompShader1
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ A component shader is a simple type of shader that sets the shading component and output packets.
SetupChannels This is called when the item type is first defined to determine the channels that should be added to the item definition.
LinkChannels This is called with an ILxEvaluation interface and the texture should add any channels that it wants to read.
ReadChannels This is called with an ILxAttributes interface so the texture can read any of the values that it needs at the current time. The values read should be cached (along with any other needed scratch space) to an allocated block of data returned indirectly.
Customize After channels are read the value texture can request surface features and sample vector packets. No guarantees.
Evaluate This is called during rendering for every sample where the shader applies. The function gets the raycast object and the shade component and output packets that it can alter.
SetShadeFlags This is called before rendering and allows a component shader to set the shading flags, which allows it do things like be transparent to shadow rays or be double sided, or set a light linking group.
SetOpaque This allows the shader to override its “opaqueness”. For shaders that use other shaders as inputs, such as the cel and halftone shader, it is necessary that they are not opaque.
CustomPacket This allows the shader to specify a custom packet it GETS.
Cleanup Frees the data block allocated by ReadChannels() method.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
Evaluate
(LXtObjectID self, LXtObjectID vector, LXtObjectID rayObj, LXpShadeComponents *sCmp, LXpShadeOutput *sOut, void *data)¶
-
LxResult
SetShadeFlags
(LXtObjectID self, LXpShadeFlags *sFlg)¶
-
LxResult
SetOpaque
(LXtObjectID self, int *opaque)¶
-
LxResult
CustomPacket
(LXtObjectID self, const char **packet)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
LxResult
ILxCompShader¶
-
class
ILxCompShader
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ The new and current version of the interface support the ‘Flags’ method.
Flags This returns some of the LXfSHADERFLAGS_ to describe basic shader behaviors.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
Evaluate
(LXtObjectID self, LXtObjectID vector, LXtObjectID rayObj, LXpShadeComponents *sCmp, LXpShadeOutput *sOut, void *data)¶
-
LxResult
SetShadeFlags
(LXtObjectID self, LXpShadeFlags *sFlg)¶
-
LxResult
SetOpaque
(LXtObjectID self, int *opaque)¶
-
LxResult
CustomPacket
(LXtObjectID self, const char **packet)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
int
Flags
(LXtObjectID self)¶
-
LxResult
ILxCustomMaterial1¶
-
class
ILxCustomMaterial1
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ A custom material is a more advanced type of shader. It can change material attributes AND perform its own shading. The custom material looks like a material item in the shader tree but it also has an implicit shader that is evaluated after the base shader. Because it is a material item it can textured, the texturing works by defining a custom packet (in which the texturable attributes are stored) and number of texture effects, one for each texturable attribute. The easiest way to add such effects is through the ILxPacketEffect.
SetupChannels This is called when the item type is first defined to determine the channels that should be added to the item definition.
LinkChannels This is called with an ILxEvaluation interface and the texture should add any channels that it wants to read.
ReadChannels This is called with an ILxAttributes interface so the texture can read any of the values that it needs at the current time. The values read should be cached (along with any other needed scratch space) to an allocated block of data returned indirectly.
Customize After channels are read the value texture can request surface features and sample vector packets. No guarantees.
MaterialEvaluate This is called during rendering for every sample where the material applies.
ShaderEvaluate This is called during rendering for every sample where the material applies. The function gets the raycast object and the shade component and output packets that it can alter.
SetShadeFlags This is called before rendering and allows a component shader to set the shading flags, which allows it do things like be transparent to shadow rays or be double sided, or set a light linking group.
SetBump This is called before rendering and allows a component shader to set its own bump amplitude, so it is evaluate for bump mapping.
SetDisplacement This works like set bump, but for displacement height.
SetOpaque This allows the shader to override its “opaqueness”. For shaders that use other shaders as inputs, such as the cel and halftone shader, it is necessary that they are not opaque.
SetSmoothing This allows the shader to set its material smoothing amount, angle.
CustomPacket This allows the shader to specify a custom packet it SETS.
Cleanup Frees the data block allocated by ReadChannels() method.
UpdatePreview This allows the shader to specify the update flags it might trigger for Preview.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
MaterialEvaluate
(LXtObjectID self, LXtObjectID vector, void *data)¶
-
void
ShaderEvaluate
(LXtObjectID self, LXtObjectID vector, LXtObjectID rayObj, LXpShadeComponents *sCmp, LXpShadeOutput *sOut, void *data)¶
-
LxResult
SetShadeFlags
(LXtObjectID self, LXpShadeFlags *sFlg)¶
-
LxResult
SetBump
(LXtObjectID self, float *bumpAmplitude, int *clearBump)¶
-
LxResult
SetDisplacement
(LXtObjectID self, float *dispDist)¶
-
LxResult
SetOpaque
(LXtObjectID self, int *opaque)¶
-
LxResult
SetSmoothing
(LXtObjectID self, double *smooth, double *angle)¶
-
LxResult
CustomPacket
(LXtObjectID self, const char **packet)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
LxResult
UpdatePreview
(LXtObjectID self, int chanIdx, int *flags)¶
-
LxResult
ILxCustomMaterial2¶
-
class
ILxCustomMaterial2
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ The previous version of the interface support the ‘Flags’ method.
Flags This returns some of the LXfSHADERFLAGS_ to describe basic shader behaviors.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
MaterialEvaluate
(LXtObjectID self, LXtObjectID vector, void *data)¶
-
void
ShaderEvaluate
(LXtObjectID self, LXtObjectID vector, LXtObjectID rayObj, LXpShadeComponents *sCmp, LXpShadeOutput *sOut, void *data)¶
-
LxResult
SetShadeFlags
(LXtObjectID self, LXpShadeFlags *sFlg)¶
-
LxResult
SetBump
(LXtObjectID self, float *bumpAmplitude, int *clearBump)¶
-
LxResult
SetDisplacement
(LXtObjectID self, float *dispDist)¶
-
LxResult
SetOpaque
(LXtObjectID self, int *opaque)¶
-
LxResult
SetSmoothing
(LXtObjectID self, double *smooth, double *angle)¶
-
LxResult
CustomPacket
(LXtObjectID self, const char **packet)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
LxResult
UpdatePreview
(LXtObjectID self, int chanIdx, int *flags)¶
-
int
Flags
(LXtObjectID self)¶
-
LxResult
ILxCustomMaterial3¶
-
class
ILxCustomMaterial3
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ LinkSampleChannels This is called with an ILxEvaluation/ILxAttributes interface and the texture should add any channels that it wants to read on a per-sample basis. This method should also be used to store a copy of the CLxUser_Attributes derived from the nodalEtor passed in. If your ‘evalData’ is derived from the CLxSampleRendData user class, then you can simply perform an ‘rd->at.set (nodalEtor)’ as shown in the example below.
IsSampleDriven For efficiency, it helps if the shading system knows if a texture has any channels that are per-sample driven. If not, much of the per-sample setup can be skipped, making rendering faster. This will be called to ask if the texture is in any way sample-driven for the current pass. This can be determined by using the CLxUser_NodalService::AnyDrivenChans() method.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
LinkSampleChannels
(LXtObjectID self, LXtObjectID nodalEtor, LXtObjectID item, int *idx)¶
-
int
IsSampleDriven
(LXtObjectID self, int *idx)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
MaterialEvaluate
(LXtObjectID self, LXtObjectID etor, int *idx, LXtObjectID vector, void *data)¶
-
void
ShaderEvaluate
(LXtObjectID self, LXtObjectID vector, LXtObjectID rayObj, LXpShadeComponents *sCmp, LXpShadeOutput *sOut, void *data)¶
-
LxResult
SetShadeFlags
(LXtObjectID self, LXpShadeFlags *sFlg)¶
-
LxResult
SetBump
(LXtObjectID self, float *bumpAmplitude, int *clearBump)¶
-
LxResult
SetDisplacement
(LXtObjectID self, float *dispDist)¶
-
LxResult
SetOpaque
(LXtObjectID self, int *opaque)¶
-
LxResult
SetSmoothing
(LXtObjectID self, double *smooth, double *angle)¶
-
LxResult
CustomPacket
(LXtObjectID self, const char **packet)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
LxResult
UpdatePreview
(LXtObjectID self, int chanIdx, int *flags)¶
-
int
Flags
(LXtObjectID self)¶
-
LxResult
ILxCustomMaterial¶
-
class
ILxCustomMaterial
¶ Public Functions
-
LxResult
SetupChannels
(LXtObjectID self, LXtObjectID addChan)¶ The new and current version of the interface support the updated ‘SetSmoothing’ method.
SetSmoothing This allows the shader to set its material smoothing amount, angle, weighting flags, normal generation method and creasing flags.
-
LxResult
LinkChannels
(LXtObjectID self, LXtObjectID eval, LXtObjectID item)¶
-
LxResult
LinkSampleChannels
(LXtObjectID self, LXtObjectID nodalEtor, LXtObjectID item, int *idx)¶
-
int
IsSampleDriven
(LXtObjectID self, int *idx)¶
-
LxResult
ReadChannels
(LXtObjectID self, LXtObjectID attr, void **ppvData)¶
-
LxResult
Customize
(LXtObjectID self, LXtObjectID custom, void **ppvData)¶
-
void
MaterialEvaluate
(LXtObjectID self, LXtObjectID etor, int *idx, LXtObjectID vector, void *data)¶
-
void
ShaderEvaluate
(LXtObjectID self, LXtObjectID vector, LXtObjectID rayObj, LXpShadeComponents *sCmp, LXpShadeOutput *sOut, void *data)¶
-
LxResult
SetShadeFlags
(LXtObjectID self, LXpShadeFlags *sFlg)¶
-
LxResult
SetBump
(LXtObjectID self, float *bumpAmplitude, int *clearBump)¶
-
LxResult
SetDisplacement
(LXtObjectID self, float *dispDist)¶
-
LxResult
SetOpaque
(LXtObjectID self, int *opaque)¶
-
LxResult
SetSmoothing
(LXtObjectID self, double *smooth, double *angle, int *weighting, int *normalMethod, int *creasing)¶
-
LxResult
CustomPacket
(LXtObjectID self, const char **packet)¶
-
void
Cleanup
(LXtObjectID self, void *data)¶
-
LxResult
UpdatePreview
(LXtObjectID self, int chanIdx, int *flags)¶
-
int
Flags
(LXtObjectID self)¶
-
LxResult