【发布时间】:2013-08-14 11:34:30
【问题描述】:
我有一个带有纹理的GL.GL_QUAD_STRIP,因为GL.GL_QUAD_STRIP 的大小比纹理图像的大小要大得多,所以这个图像会被拉伸和模糊,所以我想也许有一种方法可以在“切片”中设置这个纹理” 模式 使其 更加 清晰 和 锐利 .
编辑:“切片”我的意思是在图像结束的位置,我将再次开始绘制,除了看起来有点硬拉伸。
这就是我目前所拥有的 -
double m_x , m_y , m_z ;
Texture m_cubeSides ;
public void display(GLAutoDrawable gLDrawable)
{
final GL gl = gLDrawable.getGL();
gl.glTexParameteri ( GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_T,GL.GL_LINEAR_MIPMAP_LINEAR);
gl.glTexParameteri( GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_S,GL.GL_LINEAR_MIPMAP_LINEAR);
m_cubeSides.bind();
gl.glBegin(GL.GL_QUAD_STRIP);
// Quad 1
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3d(m_x, m_y, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3d(m_x, 0, 0);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3d(0, m_y, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3d(0, 0, 0);
// Quad 2 - front
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3d(0, m_y, m_z);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3d(0, 0, m_z);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3d(m_x, m_y, m_z);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3d(m_x, 0, m_z);
// Quad 3 - east side
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3d(m_x, m_y, m_z);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3d(m_x, 0, m_z);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3d(m_x, m_y, 0);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3d(m_x, 0, 0);
// Quad 4 - west side
gl.glTexCoord2f(1.0f, 0.0f);
gl.glVertex3d(0, m_y, 0);
gl.glTexCoord2f(1.0f, 1.0f);
gl.glVertex3d(0, 0, 0);
gl.glTexCoord2f(0.0f, 0.0f);
gl.glVertex3d(0, m_y, m_z);
gl.glTexCoord2f(0.0f, 1.0f);
gl.glVertex3d(0, 0, m_z);
gl.glEnd();
}
【问题讨论】: