首先,非常感谢您做出的伟大工作和社区。
我正在尝试编写一个简单的低多边形风格水材质。
我知道有不同的编写方式,而且我尽可能地想在js脚本中完成它(我来自C#开发人员,对前端还不是很熟悉)。
经过数小时的编译网络信息,我能理解的一种方法是这样的:
var waterVertexShader =
"attribute float vertexDisplacement;" +
"uniform float time;" +
"varying vec3 vUv;" +
"void main() {" +
" vUv = position;" +
" vUv.y += sin(time) * 0.01;" +
" gl_Position = projectionMatrix * modelViewMatrix * vec4(vUv, 1.0);"+
"}"
;
var waterFragmentShader =
"void main() {" +
"gl_FragColor = vec4(0.65, 0.88, 1, 1);" +
"}";
},
flatShading : true,
vertexShader: waterVertexShader,
这给了我所需行为的起点,但这不是我的问题所在。
现在,如果我想继承Lambert或Phong材质属性,应该怎样正确地进行?
听起来非常基础,但这是我找到的唯一相关链接: ThreeJS - Extend Lambert Shader with Custom VertexShader 而且没有答案。
感谢您的关注。