我有一些乐趣,使我的第一个着色器和我的第一个测试主题是一个100x100四面临的图片。 我以为我会学习如何使用TRIANGLE_STRIP
,所以我切换了它,移动了其中一个顶点调用,以便它再次看起来正方形。打开我的着色器,在它后面有一个重复的只有一张脸,但它有整个纹理。我只有一组绘制调用这个形状....Opengl TRIANGLE_STRIPS创建重复的鬼魂
继承人我的体形码:
glBegin(GL_TRIANGLE_STRIP);
float vx;
float vy;
for(float x=0; x<100; x++){
for(float y=0; y<100; y++){
float vx=x/5.0;
float vy=y/5.0;
glTexCoord2f(0.01*x, 0.01*y);
glVertex3f(vx, vy, 0);
glTexCoord2f(0.01+0.01*x, 0.01*y);
glVertex3f(.2+vx, vy, 0);
glTexCoord2f(0.01*x, 0.01+0.01*y);
glVertex3f(vx, .2+vy, 0);
glTexCoord2f(0.01+0.01*x, 0.01+0.01*y);
glVertex3f(.2+vx, .2+vy, 0);
}}
glEnd();
我的(顶点)着色器代码:
uniform float uTime,uWaveintensity,uWavespeed;
uniform float uZwave1,uZwave2,uXwave,uYwave;
void main(){
vec4 position = gl_Vertex;
gl_TexCoord[0] = gl_MultiTexCoord0;
position.z=((sin(position.x+uTime*uWavespeed)*uZwave1)+(sin(position.y+uTime*uWavespeed))*uZwave2)*uWaveintensity;
position.x=position.x+(sin(position.x+uTime*uWavespeed)*uXwave)*uWaveintensity;
position.y=position.y+(sin(position.y+uTime*uWavespeed)*uYwave)*uWaveintensity;
gl_Position = gl_ModelViewProjectionMatrix * position;
}
如果任何人有任何使用共享顶点更高效地绘制信息(triangle_strips)我已经使用了Google搜索,但目前为止我还不能理解XD。我想知道。
截图: 采用8x8面临
同样的事情同样的角度,线=鬼
我看到什么正在发生,但我不知道如何解决它。
有这样的问题 - 总是有助于张贴屏幕截图。最好还可以使用glPolygonMode(GL_FRONT,GL_LINE)发布截图,以便我们看到顶点发生了什么。 – Ani 2012-08-02 15:13:13
对不起,我不知道你可以张贴截图。或者你的意思是链接... nvm我看到 – Kaliber64 2012-08-02 16:14:13
jo @ Kaliber64你还在吗? – Fattie 2014-08-21 17:12:01