作者noodleT (面T)
看板C_and_CPP
标题[问题] OPENGL贴图Z方向没办法 REPEAT
时间Sat Dec 19 17:41:06 2015
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCB XE4
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
Opengl 3.1.0 + glew 1.11.0
http://i.imgur.com/POd32zm.png
//载入图形
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
//设定
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
//应用
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);
glEnable(GL_TEXTURE_2D);
在贴图时, XZ、YZ 平面一直都是使用延伸纹理的方式,
即使加入了
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT);
画出来的图形还是像上面连结那样,
请问有没有什麽办法可以将 XZ、YZ 平面使用 REPEAT 的方式贴图?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.227.200.147
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1450518068.A.41C.html
1F:→ a27417332: R坐标似乎是只有3d纹理和2d纹理阵列才能用 12/19 19:19
2F:→ a27417332: 然後这应该也和坐标设定有关吧,总觉得好像误解了什麽 12/19 19:26
3F:推 Bencrie: 同楼上。R 对你来说无用处。 12/19 21:38
4F:→ noodleT: 那没有其他法可以自动计算Z方向的纹理吗 12/19 22:33
5F:推 longlongint: 画三次四边形? 12/19 22:38
6F:→ a27417332: 你的纹理没有Z座标要怎麽算(汗) 12/19 23:07
7F:→ a27417332: 如果你要每一面都是棋盘状,那就是纹理座标的设定问题 12/19 23:09
8F:→ noodleT: 如果说利用天空盒来做呢? 12/20 10:09