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

# 原始着色器材质([name])

此类的工作方式与[page:ShaderMaterial]类似，不同之处在于内置的uniforms和attributes的定义不会自动添加到GLSL shader代码中。

## 例子(Examples)

[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]

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

## 构造函数(Constructor)

### [name]( [param:Object parameters] )

[page:Object parameters] - (可选)用于定义材质外观的对象，具有一个或多个属性。 材质的任何属性都可以从此处传入(包括从[page:Material] 和 [page:ShaderMaterial]继承的任何属性)。

## 属性(Properties)

共有属性请参见其基类[page:Material]和[page:ShaderMaterial]。

### [property:Boolean isRawShaderMaterial]

用于检查此类或派生类是否为点材质。默认值为 *true*。
因为其通常用在内部优化，所以不应该更改该属性值。

## 方法(Methods)

共有方法请参见其基类[page:Material]和[page:ShaderMaterial]。

## 源码(Source)

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