[英]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_REPEAT
的GL_TEXTURE_WRAP_S
和GL_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.