OpenGL纹理映射bug

时间:2015-04-24 08:42:40

标签: c# opengl

有一点虫子。我正在制作纹理并以这种方式将其映射到Quad ......似乎没事。但如果我设置" Z"到-5.0f或更低,它没有显示。有什么想法吗?

gl.Begin( BeginMode.Quads );
gl.TexCoord( 0.0f, 1.0f ); gl.Vertex( 0, 0, Z );
gl.TexCoord( 1.0f, 1.0f ); gl.Vertex(width, 0, Z);
gl.TexCoord( 1.0f, 0.0f ); gl.Vertex(width, height, Z);
gl.TexCoord( 0.0f, 0.0f ); gl.Vertex(0, height, Z);
gl.End();

1 个答案:

答案 0 :(得分:0)

想象一下鞋盒在长端有一个长方形的洞。透过洞,你可以看到盒子里面的东西。洞是你的视口,盒子里面是你的场景。 gl.Vertex()的第三个参数是到视口的垂直距离。

所以1将四边形正好1个单位“放入”框(你的场景),-1做同样但另一个方向。因此,使用负数将四边形置于框外,而用户正在查看框。四边形基本上落后于你的相机可以这么说。尝试为Z插入一个正数,看看四边形会发生什么。

正如Datenwolf正确指出的那样,使用默认视口配置,低于0意味着进一步进入场景,而高于0意味着你的对象将最终落在摄影机后面。