【问题标题】:GL_TRIANGLE_FAN and Textures ProblemsGL_TRIANGLE_FAN 和纹理问题
【发布时间】:2012-05-30 07:12:02
【问题描述】:

我用三角扇做了半圈,代码如下:

    marco.bind();
    gl.glPushMatrix();
    gl.glTranslated(-3.5,2,10.51);
    gl.glBegin(gl.GL_TRIANGLE_FAN);
    for(int i = 1; i <= 9; i++){
        double x = 0.7 * Math.cos(angulo);
        double y = 0.7 * Math.sin(angulo);
        System.out.println ("Valor de X:" + x + " Valor de Y:" + y);
        gl.glTexCoord2d(x, y);gl.glVertex3d(x, y, -0.5);
    angulo += inc_angle;

但是我还没有达到我想要的视觉效果,我的真实质感是这样的:

相反,我得到了这样的东西:

现在我得到了这个

我的图片有问题吗?我认为需要削减角落。

【问题讨论】:

    标签: java opengl textures primitive


    【解决方案1】:

    纹理坐标在(0,0) - (1,1) 范围内,您的对象坐标在(-0.7,-0.7) - (0.7,0.7) 范围内。您需要将对象坐标转换为纹理上的正确坐标。

    例如:

    double x = Math.cos(angulo);
    double y = Math.sin(angulo);
    gl.glTexCoord2d(x*0.5+0.5, 1.0-y);
    gl.glVertex3d(x*0.7, y*0.7, -0.5);
    

    【讨论】:

    • 我上传了我的帖子,你怎么看?我必须削减图像的角落吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2011-09-28
    • 2013-03-09
    • 1970-01-01
    相关资源
    最近更新 更多