初次提交
This commit is contained in:
8
第13章 顶点着色器的妙用/Sample13_2/assets/frag_tex.sh
Normal file
8
第13章 顶点着色器的妙用/Sample13_2/assets/frag_tex.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
precision mediump float;
|
||||
varying vec2 vTextureCoord; //接收从顶点着色器过来的参数
|
||||
uniform sampler2D sTexture;//纹理内容数据
|
||||
void main()
|
||||
{
|
||||
//给此片元从纹理中采样出颜色值
|
||||
gl_FragColor =texture2D(sTexture, vTextureCoord);
|
||||
}
|
||||
22
第13章 顶点着色器的妙用/Sample13_2/assets/vertex_tex.sh
Normal file
22
第13章 顶点着色器的妙用/Sample13_2/assets/vertex_tex.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
uniform mat4 uMVPMatrix; //总变换矩阵
|
||||
attribute vec3 aPosition; //顶点位置
|
||||
attribute vec2 aTexCoor; //顶点纹理坐标
|
||||
varying vec2 vTextureCoord; //用于传递给片元着色器的变量
|
||||
uniform float angleSpan;//扭曲总角度跨度
|
||||
uniform float yStart;//Y坐标起始点
|
||||
uniform float ySpan;//Y坐标跨度
|
||||
void main()
|
||||
{
|
||||
//计算当前顶点角度跨度
|
||||
float tempAS= angleSpan*(aPosition.y-yStart)/ySpan;
|
||||
vec3 tPosition=aPosition;
|
||||
//若不是最下面一排顶点计算XZ位置
|
||||
if(aPosition.y>yStart)
|
||||
{
|
||||
tPosition.x=(cos(tempAS)*aPosition.x-sin(tempAS)*aPosition.z);
|
||||
tPosition.z=(sin(tempAS)*aPosition.x+cos(tempAS)*aPosition.z);
|
||||
}
|
||||
gl_Position = uMVPMatrix * vec4(tPosition,1); //根据总变换矩阵计算此次绘制此顶点位置
|
||||
|
||||
vTextureCoord = aTexCoor;//将接收的纹理坐标传递给片元着色器
|
||||
}
|
||||
Reference in New Issue
Block a user