Square Enix © Goodbye Kansas

Table of Contents

This page provides details on the settings for the GLSL Material in V-Ray.


The VRayMtlGLSL and VRayTexGLSL nodes can be used to load GLSL shaders (.frag, .glsl files) or V-Ray precompiled fragment shaders (.pfrag files) and render them directly with V-Ray. If the shader file describes a material (rather than a texture), it can be rendered with a VRay GLSL Material or by assigning a VRayTexGLSL map to the color slot of a VRayLightMtl material.

Note that both VRayGLSLMtl and VRayTexGLSL share the same user interface.  

This material and the VRayTexGLSL map are part of the first stage of V-Ray implementation of GLSL support. In this version of V-Ray, 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: ||Right-click on the geometry|| > Assign New Material...

||Right-click on the geometry|| > Assign New Material... > VRay section > VRay Mtl GLSL

||V-Ray Shelf|| > Right-click to Create V-Ray Materials button > VRay Mtl GLSL

||Hypershade|| > Window tab > Create... > VRay section > VRay Mtl GLSL

Basic Parameters

Shader File Name – Specifies the .glsl, .frag, or .pfrag file which contains the shader code.

Recreate attributes – Reloads the shader and recreate its parameters.

Save compiled shader – Saves the shader file as a binary precompiled fragment shader file (.pfrag ).

Viewport color – Specifies the diffuse component of the material used in the viewport shading.

Max Ray Depth – Specifies the maximum reflection/refraction depth for the shader.

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.

Use Shader Alpha – Uses the alpha calculated in the shader.

Transparency – Overrides the alpha if Use Shader Alpha off.

Shader Attributes

This section holds all parameters found in the shader itself and can be edited from here.

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.

Always identity matrix.


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.

Only the following are supported:


 vr_trace() Not supported.

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)


 Not supported.


Only the following BRDF calls are supported 2:



The following keywords are ignored: 





  • Randi J. Rost et al, OpenGL Shading Language, second edition, Addison-Wesley, 2006
  • Lighthouse3D.com (link no longer active) - a useful site that describes the basics of GLSL and has many shader examples


1 – This is still work in progress.

2 – Experimental feature.