3D Lingo Dictionary > O-S > shader |
![]() ![]() ![]() |
shader
Syntax
member(whichCastmember
).shader(whichShader
) member(whichCastmember
).shader[index
] member(whichCastmember
).model(whichModel
).shader member(whichCastmember
).modelResource(whichModelResource
).face[index
].shader
Description
3D element, model property, and face property; the object used to define the appearance of the surface of the model. The shader is the "skin" which is wrapped around the model resource used by the model.
The shader itself is not an image. The visible component of a shader is created with up to eight layers of texture
. These eight texture layers are either created from bitmap cast members or image objects within Director or imported with models from 3D modeling programs. See texture
for more information.
Every model has a linear list of shaders called the shaderList
. The number of entries in this list equals the number of meshes in the model resource used by the model. Each mesh can be shaded by only one shader.
The 3D cast member has a default shader named DefaultShader
which cannot be deleted. This shader is used when no shader has been assigned to a model and when a shader being used by a model is deleted.
The syntax member(
whichCastmember
).model(
whichModel
).shader
gives access to the first shader in the model's shaderList
, and is equivalent to member(
whichCastmember
).model(
whichModel
).shaderList[1]
.
Create and delete shaders with the newShader()
and deleteShader()
commands.
Shaders are stored in the shader palette of the 3D cast member. They can be referenced by name (whichShader
) or palette index (shaderIndex
). A shader can be used by any number of models. Changes to a shader will appear in all models which use that shader.
There are four types of shaders:
#standard
shaders present their textures realistically.
#painter
, #engraver
, and #newsprint
shaders stylize their textures for painting, engraving, and newsprint effects. They have special properties in addition to the #standard
shader properties.
See the 3D Lingo by Feature section for a complete list of shader properties.
The shaders used by individual faces of #mesh
primitives can be set with the syntax member(
whichCastmember
).modelResource(
whichModelResource
).face[
index
].shader
. Changes to this property require a call to the build()
command.
Example
This statement sets the shader property of the model named Wall to the shader named WallSurface.
member("Room").model("Wall").shader = member("Room").shader("WallSurface")
See also
shaderList
, newShader
, deleteShader
, face
, texture
![]() ![]() ![]() |