作者Bencrie ()
看板GameDesign
标题[请益] OpenGL NPOT 与 GL_LUMINANCE
时间Sat Dec 13 18:40:59 2008
OpenGL从2.0版开始将NPOT (Non-Power-Of-Two) 维度的texture纳入核心功能。
不管是1D、2D、3D、还是Cube map都可以不受 POT 限制,这可以省下一些多余的
记忆体消耗。
我想向板友们请教的是,NPOT的使用是否有限制pixel format ?
我遇的的情况是在pixel format为GL_RGBA的时候,glTexImage3D正常工作,
图也能正常的画出来。但是若pixel format为GL_LUMINANCE的话,整个volume画
出来会有偏移的现象。
看起来就像是glTexImage3D的x,y,z维度给错一样,GL会存取超出 x*y*z的范围
(x*y*z为NPOT),Volume的底部会有不正常的东西被画出来。然而,当x*y*z为
POT时 Volume的绘制又变成正确无误。
我用NVIDIA的6200 & 8800 在两个OS平台上测试过,不管Linux还是Windows都有这样的
问题存在。
不知道有没有哪位板友可以提供一些线索,感谢各位 >///<
--
Coding 日志 & Linux 使用心得
Rinoworks Blog
http://rinoworks.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.197.32
1F:推 darkflier:opengl不熟..不过这样看起来很像是范围抓取错误 12/13 19:23
2F:→ darkflier:GL_LUMINANCE应该只占一个byte不是占3个...以上是猜测 12/13 19:23
3F:→ Bencrie:我有确认过我的LUMINACE是16 bits,格式没有传错 orz 12/13 20:13
4F:推 darkflier:16bits?2byte? 那你设给他RGB?? 12/13 20:33
5F:→ darkflier:讲错是RGBA...不过Luminace应该只需一个byte吧印象中 12/13 20:33
6F:推 NDark: glTexImage3D拿来做什麽? 12/13 21:34
7F:→ NDark: 顺便贴一下贴图设定的code 12/13 21:34
8F:→ Bencrie:用来做Volume rendering,利用3D texture做加速 @@" 12/13 21:55
9F:推 darkflier:shadow volume吗还是lighting volume? 12/14 00:12
10F:→ darkflier:前者的话只需要开stencil後者的话只需要depth 12/14 00:13
11F:→ Bencrie:画三维的医学影像,CTscan跟MRI @@ 12/14 00:31
12F:推 darkflier:医学的那就-___-"完全没经验 12/14 01:32
13F:→ Bencrie:应该比你提的那两个简单就是了 XD 12/14 01:32