簡體   English   中英

GL_TRIANGLE_FAN和紋理問題

[英]GL_TRIANGLE_FAN and Textures Problems

我用三角扇做了一個半圈,這是代碼:

    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;

但是我沒有達到我想要的視覺效果,我的真實紋理看起來像這樣:

門紋理

相反,我得到了這樣的東西:

真實溫度

現在我明白了

在此處輸入圖片說明

我的形象有問題嗎? 我認為需要減少一些角落。

紋理坐標在(0,0) - (1,1)范圍內(-0.7,-0.7) - (0.7,0.7)對象坐標在(-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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM