April 3, 2025

Shader - template


import vertexShader from "./shaders/vertex.glsl";
import fragmentShader from "./shaders/fragment.glsl";

const waterMaterial = new THREE.ShaderMaterial({
  vertexShader: vertexShader,
  fragmentShader: fragmentShader,
});
// vertex.glsl
void main(){
    vec4 modelPosition = modelMatrix * vec4(position, 1.0);

    // 基本圍繞著 modelPosition 去做操作
    vec4 viewPosition = viewMatrix * modelPosition;
    vec4 projectedPosition = projectionMatrix * viewPosition;
    gl_Position = projectedPosition;
}
// fragment.glsl
void main(){
    gl_FragColor = vec4(1,0, 1.0, 1.0, 1.0);

    // 確保顏色渲染正確
    #include <colorspace_fragment>

}