CommonSurfaceShader (Standard name: SurfaceShader)
Implements the Blinn-Phong BRDF with normal mapping and a perfect specular component.
Inheritance
Code
XML encoding
<CommonSurfaceShader logFeature='' alphaTextureChannelMask='a' alphaTextureCoordinatesId='0' alphaTextureId='-1' invertAlphaTexture='FALSE' alphaFactor='1' normalBias='-1 -1 -1' normalScale='2 2 2' textureTransformEnabled='0 0 0 0 0 0 0 0' fresnelBlend='0' relativeIndexOfRefraction='1' environmentTextureChannelMask='rgb' environmentTextureCoordinatesId='0' environmentTextureId='-1' environmentFactor='1 1 1' transmissionTextureCoordinatesId='0' transmissionTextureChannelMask='rgb' transmissionTextureId='-1' transmissionFactor='0 0 0' reflectionTextureCoordinatesId='0' reflectionTextureChannelMask='rgb' reflectionFactor='0 0 0' reflectionTextureId='-1' normalTextureChannelMask='rgb' normalTextureCoordinatesId='0' normalTextureId='-1' normalFormat='UNORM' normalSpace='TANGENT' shininessTextureChannelMask='a' shininessTextureId='-1' shininessTextureCoordinatesId='0' shininessFactor='0.2' specularTextureChannelMask='rgb' specularTextureCoordinatesId='0' specularTextureId='-1' specularFactor='0 0 0' diffuseTextureChannelMask='rgb' diffuseTextureId='-1' diffuseTextureCoordinatesId='0' diffuseFactor='0.8 0.8 0.8' ambientTextureChannelMask='rgb' ambientTextureCoordinatesId='0' ambientTextureId='-1' ambientFactor='0.2 0.2 0.2' emissiveTextureChannelMask='rgb' emissiveTextureCoordinatesId='0' emissiveTextureId='-1' emissiveFactor='0 0 0' tangentTextureCoordinatesId='-1' binormalTextureCoordinatesId='-1' />
Classic encoding
CommonSurfaceShader {
logFeature [""]
alphaTextureChannelMask "a"
alphaTextureCoordinatesId 0
alphaTextureId -1
invertAlphaTexture FALSE
alphaFactor 1
normalBias -1 -1 -1
normalScale 2 2 2
textureTransformEnabled [0 0 0 0 0 0 0 0]
fresnelBlend 0
relativeIndexOfRefraction 1
environmentTextureChannelMask "rgb"
environmentTextureCoordinatesId 0
environmentTextureId -1
environmentFactor 1 1 1
transmissionTextureCoordinatesId 0
transmissionTextureChannelMask "rgb"
transmissionTextureId -1
transmissionFactor 0 0 0
reflectionTextureCoordinatesId 0
reflectionTextureChannelMask "rgb"
reflectionFactor 0 0 0
reflectionTextureId -1
normalTextureChannelMask "rgb"
normalTextureCoordinatesId 0
normalTextureId -1
normalFormat "UNORM"
normalSpace "TANGENT"
shininessTextureChannelMask "a"
shininessTextureId -1
shininessTextureCoordinatesId 0
shininessFactor 0.2
specularTextureChannelMask "rgb"
specularTextureCoordinatesId 0
specularTextureId -1
specularFactor 0 0 0
diffuseTextureChannelMask "rgb"
diffuseTextureId -1
diffuseTextureCoordinatesId 0
diffuseFactor 0.8 0.8 0.8
ambientTextureChannelMask "rgb"
ambientTextureCoordinatesId 0
ambientTextureId -1
ambientFactor 0.2 0.2 0.2
emissiveTextureChannelMask "rgb"
emissiveTextureCoordinatesId 0
emissiveTextureId -1
emissiveFactor 0 0 0
tangentTextureCoordinatesId -1
binormalTextureCoordinatesId -1
}
Interface
Filter: X3D only | Avalon only | All
| id | Name | DataType | PartType | Default | ValueType | Description |
|---|---|---|---|---|---|---|
| tangentTextureCoordinatesId | SFInt32 | inputOutput | -1 | Texture coordinate channel that contains the tangents in u. | ||
| binormalTextureCoordinatesId | SFInt32 | inputOutput | -1 | Texture coordinate channel that contains the tangents in v. | ||
| emissiveFactor | SFVec3f | inputOutput | 0 0 0 | The value of emissiveTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| emissiveTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| emissiveTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for emissiveTexture. | ||
| emissiveTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for emissiveTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| ambientFactor | SFVec3f | inputOutput | 0.2 0.2 0.2 | The value of ambientTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| ambientTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| ambientTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for ambientTexture. | ||
| ambientTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for ambientTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| diffuseFactor | SFVec3f | inputOutput | 0.8 0.8 0.8 | The value of diffuseTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| diffuseTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| diffuseTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for diffuseTexture. | ||
| diffuseTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for diffuseTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| specularFactor | SFVec3f | inputOutput | 0 0 0 | The value of specularTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| specularTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| specularTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for specularTexture. | ||
| specularTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for specularTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| shininessFactor | SFFloat | inputOutput | 0.2 | The value of shininessTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| shininessTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| shininessTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for shininessTexture. | ||
| shininessTextureChannelMask | SFString | inputOutput | a | ChannelMask for shininessTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| normalFormat | SFString | inputOutput | UNORM | How normals are stored in normalTexture. Currently only "UNORM" (each component packed into a [0,1] color channel) is supported. | ||
| normalSpace | SFString | inputOutput | TANGENT | Space in which normals in normalTexture are defined. Currently only "TANGENT" (a default tangent space normal map) is supported. | ||
| normalTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| normalTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for normalTexture. | ||
| normalTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for normalTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| reflectionFactor | SFVec3f | inputOutput | 0 0 0 | The value of reflectionTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| reflectionTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| reflectionTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for reflectionTexture. | ||
| reflectionTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for reflectionTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| transmissionFactor | SFVec3f | inputOutput | 0 0 0 | The value of transmissionTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| transmissionTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| transmissionTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for transmissionTexture. | ||
| transmissionTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for transmissionTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| environmentFactor | SFVec3f | inputOutput | 1 1 1 | The value of environmentTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| environmentTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| environmentTextureCoordinatesId | SFInt32 | inputOutput | 0 | [Currently not used, coordinates are computed in shader.] | ||
| environmentTextureChannelMask | SFString | inputOutput | rgb | ChannelMask for environmentTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| relativeIndexOfRefraction | SFFloat | inputOutput | 1 | Relative IOR for perfect specular component. | ||
| fresnelBlend | SFFloat | inputOutput | 0 | To what degree the Fresnel equation for dielectrics should be used to blend the perfect specular reflection and transmission. | ||
| emissiveTexture | SFNode | inputOutput | Texture containing emissive component. | |||
| ambientTexture | SFNode | inputOutput | Texture containing ambient component. | |||
| diffuseTexture | SFNode | inputOutput | Texture containing diffuse component. | |||
| specularTexture | SFNode | inputOutput | Texture containing specular component. | |||
| shininessTexture | SFNode | inputOutput | Texture containing shininess component. | |||
| normalTexture | SFNode | inputOutput | Texture containing normal component for normal mapping. | |||
| reflectionTexture | SFNode | inputOutput | AppearanceProperty | Texture containing reflection component. Perfect specular reflection is modulated by this. | ||
| transmissionTexture | SFNode | inputOutput | Texture containing transmission component. Perfect specular transmission is modulated by this. | |||
| environmentTexture | SFNode | inputOutput | Cube texture containing the environment for perfect specular reflection and transmission. | |||
| textureTransformEnabled | MFBool | initializeOnly | 0 0 0 0 0 0 0 0 | defines if the OpenGL texture transform for a texture coordinate channel should be applied. This transform is applied in the vertex shader before the transformsassiciated with the textures are applied. | ||
| normalScale | SFVec3f | initializeOnly | 2 2 2 | scale to apply to normal sampled from normalTexture | ||
| normalBias | SFVec3f | initializeOnly | -1 -1 -1 | Bias to apply to normal sampled from normalTexture | ||
| alphaFactor | SFFloat | inputOutput | 1 | The value of alphaTexture is multiplied by this value. If no texture is set, the value is used directly. | ||
| invertAlphaTexture | SFBool | inputOutput | FALSE | If true, (1-sampledValue) is used as alpha. If false the sampled value is used. | ||
| alphaTextureId | SFInt32 | inputOutput | -1 | The texture unit. | ||
| alphaTextureCoordinatesId | SFInt32 | inputOutput | 0 | Texture coordinate channel to use for alphaTexture. | ||
| alphaTextureChannelMask | SFString | inputOutput | a | ChannelMask for alphaTexture in the form of a glsl swizzle (e.g. "rgb", "a"). | ||
| alphaTexture | SFNode | inputOutput | Texture containing alpha component. | |||
| isSelected | SFBool | outputOnly | The isSelected output field is used to indicate that this shader instance is the one selected for use by the browser. A TRUE value indicates that this instance is in use. | |||
| isValid | SFBool | outputOnly | The isValid field is used to indicate whether the current shader objects can be run as a shader program. | |||
| activate | SFBool | inputOnly | The activate field forces the shader to activate the contained objects. | |||
| logFeature | MFString | inputOutput | state, child, parent, route, eventIn, eventOut | controls the logging of changes, state: log state changes (e.g. live), child: log child add/remove, parent: log parent add/remove, route: log route add/remove; eventIn: log receiving of events, eventOut: log sending of events: guiView, runtime system should create node-view, guiEdit: runtime system should create node-editeverything: log everything | ||
| metadata | SFNode | inputOutput | MetadataObject | container for payload metadata inside MetadataSet element |
