Programmable X3D Shaders
Overview
The trend in real-time graphics is to provide hardware functionality for programmable shading, to convey better graphics and increased sense of realism in 3D scenes. High-level procedural shading is also one of the abstraction means for such hardware. The X3D Programmable Shaders Working Group has been formed to develop specifications for integrating high-level procedural shading into the X3D architectural framework.
Procedural shaders offer several advantages over the traditional configurable graphics pipeline:
- Procedural shaders are a compact representation of both appearance and light sources. They are often small in size and compile to a few instructions.
- Procedural shaders have no fixed resolution. Multiresolution models are easily represented.
- Procedural shaders are parameterised. A few parameters can yield and convey a large amount of detail. Classes of related shaders can be generated rather than a single one.
Working Group Goals
- To specify a set of new nodes that can abstract and represent the programmable shading pipeline in existing and future commodity graphics hardware in a hardware- and graphics API-independent fashion.
- To study the interaction of these new nodes with the existing X3D nodes. If conflicts exist, the group will propose solutions and recommended practices for resolving those conflicts.
- To provide initial support, in the form of software tools, to enable authoring. These tools can be importers/exporters from content creation tools, or hardware vendor tools (e.g. ATI's RenderMonkey).
- To provide a set of state of the art demos that fully describes the proposed functionality.
Deliverables
- A Programmable Shaders Component specification that includes the proposed node definitions. (see X3D AMD-1)
- Initial Set of Tools to integrate programmable shaders within X3D worlds. These tools will include importer/exporters from DCC tools and IHV tools.
- A Collection of Demos to demonstrate the potential of the programmable shaders component.
Current Shading Language Component and Bindings in X3D Framework Amendment 1
- Programmable Shaders Component Dec 01, 2004
- OpenGL Shading Language (GLSL) binding Dec 01, 2004
- Microsoft high level shading language (HLSL) binding Dec 01, 2004
- nVidia Cg shading language binding Dec 01, 2004
How to join an X3D Working Group
Any Consortium Member can join a Working Group. We offer student, professional, academic and company level memberships.
Consortium members can simply go to the Consortium Member Login area of the website to sign-up to join this work group
