Re: [程式] OpenGL 用3D Render 2D

看板GameDesign (遊戲設計)作者 (Victor)時間18年前 (2006/06/25 16:50), 編輯推噓6(605)
留言11則, 3人參與, 最新討論串5/7 (看更多)
※ 引述《StubbornLin (Victor)》之銘言: : ※ 引述《StubbornLin (Victor)》之銘言: : : 圖片: : : http://www.kinmen.info/vic/image/opengl_2d_engine.jpg
: : 程式: : : http://www.kinmen.info/vic/files/opengl_2d_engine.zip : : 做差不多了,用3D來Render 2D真的輕鬆太多了 : : 想起我以前用Direct Draw一個一個Pixel去做Alpha blending真的會吐血 : : 現在只要輕鬆打幾行程式它的Alpha blending就出來了 : : 而且,又有Linear可以用,在放大縮小時效果還是很棒 : : 不過用Linear有個缺點,就是圖的邊緣如果很複雜,放大縮小時會有白邊出現 : : 但是,因為以圖通常四週都是整個全透明或半透明來思考的話 : : 其實這樣的問題沒什麼大礙 : : 等我把這個東西完成後,有空的話我來寫幾篇OpenGL 3D 擬 2D經驗的文章 : : 好來拋磚引玉,讓真正的高手出來寫文章,不然這個版都沒有什麼人氣 : 我剛剛用我的NB試了一下= =" : 果然是這樣.... : NB用的是顯示晶片,我在想 : 可能是某種功能顯示晶片不支援才會這樣 我發現原因了 原因出在兩張圖的長寬都不是2的次方 改成2的次方後就OK了 較舊的顯示卡或晶片好像都不支援非2次方的貼圖= =" 這是為什麼? 還有,因為舊顯示卡的使用者還是很多 所以為了能夠讓更多的使用者也能夠玩 必需修改成能讓舊的晶片也能跑 因此要修改這引擎= =" 請問應該用什麼方案來解決呢? 我目前想到的方案,是將非2次方的圖片 切割成幾張2次方的圖片,然後在材質貼圖時組合起來 不知道有沒有更好的方式可以提出來 除了貼圖的問題,我還發現在舊晶片有種問題 那就是,GL_QUADS的四個點的顏色 當圖片的最上邊,超過畫面時,圖片會變暗 不知道為什麼會這樣= =" 然後當我改成兩張三角形去拼出一個矩形時這個問題好像就不見了 還有一個問題也很令我頭痛,就是撕裂的問題 因為Windows為了要全螢幕所以是自己建立的 而更新畫面放在WinMain的回圈裡,更新時如果沒有跟垂直同步那一刻進行 就會產生撕裂,因為以前硬體都幫我處理好= =" 所以我不知道要怎樣解決,誰來告訴我該怎麼做 囧rz 看來= =" 要把2D引擎寫成舊硬體也能跑還有得奮戰 囧rz -- VICTOR工作室 | PTT遊戲設計版隆重開幕! | 不管是新手老手,程式美工音樂企劃.... URL : http://www.kinmen.info/vic/ | 都歡迎來遊戲設計版參與討論 XD | 戰略高手> C/C++ | GameTopics> Visual Basic 6.0 | GameDesign -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.66.105

06/25 17:54, , 1F
直接用繪圖軟體改成2的次方就好了XD
06/25 17:54, 1F

06/25 19:04, , 2F
= =|| 這樣是可以沒錯啦... 但....
06/25 19:04, 2F

06/25 19:04, , 3F
檔案的大小 和記憶體的空間 都平白地犧牲了 囧rz
06/25 19:04, 3F

06/25 19:29, , 4F
反正 千萬不要用切割圖片那方法 轉換貼圖很浪費效能
06/25 19:29, 4F

06/25 19:32, , 5F
那要用什麼方法? 囧rz
06/25 19:32, 5F

06/25 19:35, , 6F
能用 Non-Power-of-Two 就用,不能就直接改圖
06/25 19:35, 6F

06/25 19:38, , 7F
可是要怎樣知道有沒有Non-Power-of-Two = =
06/25 19:38, 7F

06/25 19:40, , 8F
還有 改圖該怎麼改? 讀圖的時候補足power of 2嗎?
06/25 19:40, 8F

06/25 19:42, , 9F
glGetString(GL_EXTENSIONS);
06/25 19:42, 9F

06/25 19:43, , 10F
改圖是說:一樓毀滅巫師大大說的那樣
06/25 19:43, 10F

06/25 19:47, , 11F
囧rz.... 真的沒路可走了嗎? 可憐的空間...
06/25 19:47, 11F
文章代碼(AID): #14dau_vQ (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #14dau_vQ (GameDesign)