WEBGL-操作及原理2

66 阅读1分钟

varying 变量的使用

const vertexShaderSource = ` attribute vec4 a_position; uniform mat4 u_mat;

varying vec4 v_color;

void main() { gl_Position = a_position; v_color = gl_Position * 0.5 + 0.5; // gl_Postion 值范围是 -1 ~ 1 , * 0.5 => -0.5 ~ 0.5 ,+ 0.5 => 0~1 正好是片元着色器颜色值范 围!!! } `

const fragmentShaderSource = `
  precision lowp float;
  varying vec4 v_color;
  void main() {
   gl_FragColor = v_color;
  }
`

关于着色器:着色器也是一组指令!

着色器语言 glsl opengl shading language, 还有其他着色器语言。

点材质 使用着色器 而不是 使用 pointsMaterial 而是 shaderMaterial

点材质中的点着色器, 那就不可以使用 uv了 而是内置变量 gl_Pointcoord 设置近大远小 效果 : 借助 viewPosition.z