Xj3D Programmable Shaders Core Spec Modifications

2 Normative References Insert new definitions for the following documents:

GLSL OpenGL Shading Language Specification: http://www.opengl.org/documentation/oglsl.html
HLSL Microsoft High Level Shading Language Specification for DirectX 9.0: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/HLSLReference/HLSLReference.asp
Cg nVidia Cg Shading Language Specification: ftp://download.nvidia.com/developer/cg/Cg_Specification.pdf

11.3.2 X3DComposedGeometryNode Node Definition,

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
Listing text in 3rd para:
If the attrib field is not empty it shall contain a list of per-vertex attribute information for programmable shaders (See X.2.2.4 Per-vertex Attributes for details)

11.4.4 IndexedLineSet Node Definition

Add a new field definition:
  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.5 IndexedTriangleFanSet Node Definition

Add a new field definition:
  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.6 IndexedTriangleSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.7 IndexedTriangleStripSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.8 LineSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.10 PointSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.11 TriangleFanSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.11 TriangleSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
11.4.12 TriangleStripSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
12.4.1 Appearance

Add a new field definition:

  MFNode [in,out] shaders [] [X3DShaderNode]
Add the following new paragraph:

The shaders field contains a listing, in order of preference, of nodes that describe programmable shaders that replace the fixed rendering requirements of this specification with user-provided functionality. If the field is not-empty, one is selected and the fixed rendering requirements defined by this specification are ignored. The field shall contain one of the various types of shader nodes (see X Shading component).

13.3.4 ElevationGrid Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
13.3.6 IndexedFaceSet Node Definition

Add a new field definition:

  MFNode [in,out] attrib [] [X3DVertexAttributeNode]
17.2.2.1 Introduction Append new paragraph:

If a programmable shader is defined for an Appearance node, the lighting model shall be disabled and replaced by the functionality implemented by the shader program.

18.2 Concepts Insert new subclause

18.2.5 Programmable Shaders

If a programmable shader is defined for the Appearance node containing textures, then texture mapping shall be disabled. Textures defined shall be considered as sources of input and/or output for a programmable shader. See X.2.2.5 Per Object Attributes for more details on how to map a textures to shader program inputs.

18.4.4 MultiTextureCoordinate 3rd paragraph

Replace with the following:

If using MultiTexture with a geometry node without a MultiTextureCoordinate node, then all texture coordinates for each stage shall be defined to be zero. Likewise, if there are two fee entries in the texCoord field, the undefined entries are defined to be zero.

18.4.5 MultiTextureTransform 3rd paragraph

Replace with the following:

If using MultiTexture with a geometry node without a MultiTextureTransform node, then identity matrices are assumed for all channels. If there are two few entries, in the textureTransform field, then identity matrices shall be used for all remaining undefined channels.


[ Xj3D Homepage | Xj3D @ Web3d | Screenshots | Dev docs | Dev Releases | Contributors | Getting Started ]
Last updated: $Date: 2004-10-13 17:31:05 $