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

来源:互联网 发布:大非农数据一定准确吗 编辑:程序博客网 时间:2024/06/07 17:38

题目是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);}

这里写图片描述

原创粉丝点击