Table of Contents

This page provides information on the GLSL Material.

 

Overview


This node can be used to load GLSL shaders (.frag, .glsl files), V-Ray precompiled fragment shaders (.pfrag files) and render them directly with V-Ray.  

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. 

FeatureGPU 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_TextureMatrixTransposeAlways 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_FrameData.aperture
vr_FrameData.dofFocus
vr_FrameData.dofRadius
vr_FrameData.imageResolution
vr_FrameData.imagePlaneOffset

 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
light.contribution = vec3(0.0, 0.0, 0.0)
light.direction = vec3(0.0, 0.0, 0.0)

 vr_intersect()  Not supported.
BRDF

Only the following BRDF calls are supported 2:

vr_brdf_diffuse()
vr_brdf_glass()
vr_brdf_mirror()
vr_brdf_ggx()

 Keywords

The following keywords are ignored: 

__channel 

__persistent 

__native 

 

Footnotes


1 – This is still work in progress. 

2 – Experimental feature.