[英]OpenGL - Texture coordinates on quad
我不知道出了什么問題。 一切似乎都很好。 這是代碼(紋理已加載,只是繪圖):
glBegin( GL_QUADS );
float TX1,TX2,TY1,TY2;
TX1=some_numbers_check_below_code;
TX2=some_numbers_check_below_code;
TY1=some_numbers_check_below_code;
TY2=some_numbers_check_below_code;
glTexCoord2f(TX1,TY2);
glVertex3f( float(RectOutput.x), float(RectOutput.y), 0.0f );
glTexCoord2f(TX2,TY2);
glVertex3f( float(RectOutput.x+InputWidth), float(RectOutput.y), 0.0f );
glTexCoord2i(TX2,TY1);
glVertex3f( float(RectOutput.x+InputWidth), float(RectOutput.y+InputHeight), 0.0f );(InputY)/float(Input.H)) );
glTexCoord2f(TX1,TY1);
glVertex3f( float(RectOutput.x), float(RectOutput.y+InputHeight), 0.0f );
glEnd();
沒關系:
TX1=0.0;
TX2=1.0;
TY1=1.0;
TY2=0.0;
(好: http : //i.imgur.com/xLeBm.png )
但是被(例如)打破了:
TX1=0.0;
TX2=0.5;
TY1=1.0;
TY2=0.5;
(像這樣: http : //i.imgur.com/UykBh.png )
真的,這讓我很煩。 可能問題不在這段代碼中。 一切都應該沒問題……但事實並非如此。
有任何想法嗎?
“我不知道出了什么問題。一切似乎都很好”。 那太好了,不用回答了!
您應該首先解釋在第二種情況下您期望得到什么。 我不是 OpenGL 專家,但您的第二組坐標似乎已損壞。
第一個: 0,0 -> 1,0 -> 1,1 -> 0,1
:
0 1
0 x---->x
| |
| |
| v
1 x<----x
第二個: 0,.5 -> .5,.5 -> .5,1 -> 0,1
:
0 1
0 +-----+
| |
x->x |
| v |
1 +--x->x
如果你想縮放紋理(但我不知道你沒有寫出應該是什么結果)那么這顯然是錯誤的。
哦……我覺得自己很傻。 抱歉耽誤了時間。 這是錯誤:
glTexCoord2i(TX2,TY1);
我應該使用 glTexCoord2 f而不是我......只是忘了改變它......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.