shader-school的渲染入門系列(二)

題目是vertex shader的VARYING VARIABLES,當時在網上搜索了不少資料,用線性插值的方法過了。

=_=線性插值的做法可以理解爲,一根直線上,顏色的rgb值由點的位置計算得出。
一個三角形內,簡單一點的理解,點的rgb值由點與三個頂點連接的各個三角形面積得出。

代碼如下:
vertex.glsl

precision highp float;

attribute vec4 position;
attribute vec3 color;
varying vec4 fragPosition;
void main() {
  gl_Position = position;
  fragPosition= position;
}

fragment.glsl

precision highp float;
varying vec4 fragPosition;
void main() {
  float R= fragPosition.y+0.5;
  float G= 0.5*(0.5-2.0*fragPosition.x-fragPosition.y);
  //原本fragPosition.x係數是1.0,根據調試結果修改成2.0通過
  float B= 0.5*(0.5+2.0*fragPosition.x-fragPosition.y);
  gl_FragColor = vec4(R,G,B,1);
}

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章