This page provides information on the GLSL Material.
Overview
See the V-Ray GLSL page for more detailed description of the language and examples.
This node is the first stage of the V-Ray implementation of GLSL support. In this version, the shaders are compiled to byte code for a software virtual machine, which is then interpreted. Due to this run-time interpretation, GLSL shaders can be somewhat slower to render than V-Ray shaders written in C++. In future builds of V-Ray, shaders will be directly compiled to machine code for faster rendering.
UI Path
||Node Editor|| > Add > Material > GLSL
Node
Material – An output slot for the GLSL material.
Textures –
Uvw Generators –
Transparency – Texture slot for Transparency.
Parameters
Clamp Result - Determines whether to force the result in the [0, Clamp Value] range or not.
Clamp Value - Specifies the upper clamp limit if Clamp Result is enabled.
Max Ray Depth - Specifies the maximum reflection/refraction depth for the shader.
Shader File - Browses for and loads .glsl, .frag, or .pfrag files which contain the shader code.
Shader Node - Sets a custom name for the shader node.
Transparency - Overrides the alpha if Use Shader Alpha is off. You can either use a single color or connect a texture.
Transparency Tex Mult - A multiplier for the Transparency parameter when a texture is used.
Use Shader Alpha - When enabled, uses the alpha calculated in the shader.
GPU Support
The GLSL shader is supported by V-Ray GPU within limitations. Below you can find detailed information about the GPU support.
Feature | GPU Support |
---|---|
Built-in variables | |
gl_NormalMatrix | Always identity matrix. |
gl_ModelViewMatrixTranspose | Always identity matrix. |
gl_TextureMatrix | Always identity matrix. |
gl_TextureMatrixInverse | Always identity matrix. |
gl_TextureMatrixInverseTranspose | Always identity matrix. |
gl_TextureMatrixTranspose | Always identity matrix. |
gl_ModelViewMatrixInverseTranspose | Always identity matrix. |
gl_FogFragCoord | Always is a zero. |
gl_TexCoord[] | All gl_TexCoord[] elements are identical, i.e. multiple UVW channels are not supported. 1 |
Built-in functions | |
dFdx(); dFdy() | Always return zero. |
fwidth() | Always returns zero. |
V-Ray extensions to GLSL | |
vr_Velocity | Always is a zero. |
vr_NumSuperSamples | Always is 1. |
vr_SuperSampleIndex | Always is 1. |
vr_TextureDu[] | Not supported. |
vr_TextureDv[] | Not supported. |
vr_VertexData[] | Not supported. |
vr_FrameData | Only the following are supported: vr_FrameData.focalLength |
vr_trace() | Not supported. |
vr_evalLight() | Not supported. If attempted to call it will assign the following constants to the output light iterator: light.dot_nl = -1.0 |
vr_intersect() | Not supported. |
BRDF | Only the following BRDF calls are supported 2: vr_brdf_diffuse() |
Keywords | The following keywords are ignored: __channel __persistent __native |
Footnotes
1 – This is still work in progress.
2 – Experimental feature.