0
這是我到目前爲止有:OpenGl - 如何重複紋理?
Rectangle::Rectangle(int x, int y)
{
sizeX_ = x * CASE;
sizeY_ = y * CASE;
texture_ = gdl::Image::load("./ressources/floor.jpg");
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
}
void Rectangle::draw()
{
texture_.bind();
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glTexCoord2f(sizeX_/CASE, 0.0f);
glVertex3f(sizeX_, 0.0f, 0.0f);
glTexCoord2f(0.0f, sizeY_/CASE);
glVertex3f(sizeX_, 0.0f, sizeY_);
glTexCoord2f(sizeX_/CASE, sizeY_/CASE);
glVertex3f(0.0f, 0.0f, sizeY_);
glEnd();
}
構造函數的情況下,地圖的大小。例如:(10, 10)
。真實尺寸將爲(10 * CASE)
,其中CASE = 400
。
但是這不是正確地重複紋理。紋理似乎減少(好點),並從左上角點到右下角點。
我做錯了什麼?
'CASE','sizeX_'和'sizeY_'如何定義?你在做整數除法嗎? – Shahbaz
'CASE'是一個宏,'SizeX_'和'sizeY_'是整數。 – Elfayer
你檢查了預測嗎?如果您希望像素座標比率爲1,則應將投影設置爲正交,併爲視口使用正確的大小 –