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

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

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

## 代码示例

`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 WebGL / buffergeometry / instancing]
[example:webgl_raymarching_reflect WebGL / raymarching / reflect]
[example:webgl2_volume_cloud WebGL 2 / volume / cloud]
[example:webgl2_volume_instancing WebGL 2 / volume / instancing]
[example:webgl2_volume_perlin WebGL 2 / volume / perlin]

## 构造函数(Constructor)

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

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

## 属性(Properties)

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

## 方法(Methods)

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

## 源码(Source)

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