我一直在尝试使用此链接来学习在Three.js中使用着色器,但不幸的是,这已经有些过时了,在尝试更新代码时,我到目前为止:
<script id="vshader" type="x-shader/x-vertex">
attribute float displacement;
varying vec3 vNormal;
void main() {
vNormal = normal;
vec3 newPosition = position + normal * vec3(displacement);
gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0);
}
</script>
<script id="fshader" type="x-shader/x-fragment">
varying vec3 vNormal;
void main() {
vec3 light = vec3(0.5, 0.2, 1.0);
light = normalize(light);
float dprod = max(0.0, dot(vNormal, light));
gl_FragColor = vec4(dprod, dprod, dprod, 1.0);
}
</script>
var shaderProperties = {
vertexShader: document.getElementById("vshader").textContent,
fragmentShader: document.getElementById("fshader").textContent
};
var shaderMaterial = …Run Code Online (Sandbox Code Playgroud)