作者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