小编Gou*_*tem的帖子

您如何“组合”ShaderMaterial 和 LambertMaterial?

首先,非常感谢您的出色工作和社区。

我正在尝试编写一个简单的低聚风格的水材料。

我知道写这种东西有不同的方法,我希望尽可能在 js 脚本中做到这一点(我来自 C# dev',我对前端还不是很满意)。

在网上编译信息数小时后,我能理解的一种方法是:

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,
Run Code Online (Sandbox Code Playgroud)

这给了我想要的行为的开始,但这不是我的问题。

现在,如果我想继承让我们说 Lambert 或 Phong 材料属性,那么正确的方法是什么?

这听起来很基本,但这是我找到的唯一相关链接: ThreeJS - …

javascript shader vertex-shader three.js

3
推荐指数
1
解决办法
584
查看次数

标签 统计

javascript ×1

shader ×1

three.js ×1

vertex-shader ×1