[page:Material] → [page:ShaderMaterial] →


This class works just like [page:ShaderMaterial], except that definitions of built-in uniforms and attributes are not automatically prepended to the GLSL shader code.

Code Example

const material = new THREE.RawShaderMaterial( { uniforms: { time: { value: 1.0 } }, vertexShader: document.getElementById( 'vertexShader' ).textContent, fragmentShader: document.getElementById( 'fragmentShader' ).textContent, } );


[example:webgl_buffergeometry_rawshader WebGL / buffergeometry / rawshader]
[example:webgl_buffergeometry_instancing_billboards WebGL / buffergeometry / instancing / billboards]
[example:webgl_buffergeometry_instancing_dynamic WebGL / buffergeometry / instancing / dynamic]
[example:webgl_buffergeometry_instancing_interleaved_dynamic WebGL / buffergeometry / instancing / interleaved / dynamic]
[example:webgl_buffergeometry_instancing WebGL / buffergeometry / instancing]
[example:webgl_interactive_instances_gpu WebGL / interactive / instances /gpu]
[example:webgl_raymarching_reflect WebGL / raymarching / reflect]


[name]( [param:Object parameters] )

[page:Object parameters] - (optional) an object with one or more properties defining the material's appearance. Any property of the material (including any property inherited from [page:Material] and [page:ShaderMaterial]) can be passed in here.


See the base [page:Material] and [page:ShaderMaterial] classes for common properties.


See the base [page:Material] and [page:ShaderMaterial] classes for common methods.


[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]