【发布时间】:2015-05-09 11:13:55
【问题描述】:
我想创建一个半圆形的矩形,当我向这个表单添加纹理时,它会有弯曲的纹理。我创建了一个简单的矩形,它看起来像下面的图像(如果我们从高处看,它就形成了):
我尝试通过顶点着色器来弯曲这个形状。我试着创造这个形状
我使用了这个顶点着色器
attribute vec4 vPosition;
attribute vec4 vTexCoordinate;
uniform mat4 u_MVP;
uniform mat4 textureTransform;
varying vec2 v_TexCoordinate;
void main() {
v_TexCoordinate = (textureTransform * vTexCoordinate).xy;
vec4 try = vPosition;
if(try.x > 0.0 ){
try[2] = try.x - 100.0;
} else {
try[2] = 100.0 - try.x ;
}
gl_Position = u_MVP * try;
}
但我没有看到 Z 坐标有任何变化,也没有看到任何形状的角度。有人可以说我做错了吗?
【问题讨论】:
-
你我们的方法没有意义。顶点着色器对顶点进行操作。无论您如何移动顶点,三角形都会在平面中保持平坦。在您的情况下,您只有 x=-100 或 x=100,因此您的 z 坐标将始终为 0。
标签: opengl opengl-es glsl shader