簡體   English   中英

OpenGL紋理拉伸

[英]OpenGL Texture Stretching

我正在嘗試將紋理附加到多維數據集。 當前,紋理正在伸展。

我知道這與我的紋理坐標有關,但是我無法弄清楚是什么。

對於所有頂點位置( x,y,z ),我制作了紋理坐標( x,y )。

float [] texCoords = new float [2*allPoints.size()];
int index= 0;
for(int i = 0; index< allPoints.size()-1; i=i+2){
           texCoords[i] = (float)allPoints.get(index).getX();
           texCoords[i+1] = (float)allPoints.get(index).getY();
           index++;
}

glTexParameters:

gl2.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER,GL.GL_NEAREST);
gl2.glTexParameteri( GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER,GL.GL_NEAREST);
gl2.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_S,GL.GL_REPEAT);
gl2.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_T,GL.GL_REPEAT);

電流輸出:

在此處輸入圖片說明

如果您超過GL_REPEATGL_TEXTURE_WRAP_SGL_TEXTURE_WRAP_T參數,則超過該邊界時,OpenGL中的紋理坐標將縮放為0-1。

我不知道allPoints列表的組織,但是對於一個多維數據集,每個頂點將具有多個唯一的紋理坐標,因此您將需要復制頂點。 如果你畫出來用手或想想,紋理坐標1上的頂點也必須是0的相鄰面。

每個面應具有以下紋理坐標:

(0, 1)--(1, 1)
|            |
|            |
|            |
(0, 0)--(1, 0)

現在考慮立方體上的面, (1, 1)點是相鄰面的(0, 1)點。 復制您的頂點以解決該問題。

暫無
暫無

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

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