Во-первых, большое спасибо за эту замечательную работу и сообщество.
Я пытаюсь написать простой водный материал в стиле низкого поли.
Я знаю, что есть разные способы написания этогои я хотел бы как можно больше сделать это в js-скрипте (я из C # dev ', и я пока не очень удобен с frontend).
Единственный способ, который я могу понять после нескольких часов компиляции информации в Сети, это:
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,
Это дает мне начало желаемого поведения, но это не моя проблема.
Теперь, если я хочу наследовать, скажем, свойства материала Ламберта или Фонга, каков правильный путь для продолжения?
Звучит очень просто, но это единственная релевантная ссылка, которую я нашел: ThreeJS - Расширьте Lambert Shader с помощью пользовательского VertexShader и ответа нет.
Спасибо за внимание.