檔案狀態:    住戶編號:1567581
 窩愛蠶豆酥 的日記本
快速選單
到我的日記本
看他的最新日記
加入我的收藏
瀏覽我的收藏
放屁 《前一篇 回他的日記本 後一篇》 白忙
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵  檢舉
篇名: GLSL 的秘密
作者: 窩愛蠶豆酥 日期: 2012.04.09  天氣:  心情:
大家都知道熊貓最近在研究 android 上寫 GLSL 程式.
ㄟˊ!!我寫的可不是 GLSL1.0 而是只能用 shader 的 GLSL2.0
於是....難度增加了好幾倍.
熊貓我的個性就是不喜歡吃軟柿子 [=D]
原本以為兩天就可以搞定的小小 blur effect 竟然搞了一個多星期還沒完成 [X-D]

話說今天我終於能在動態貼圖上畫出點東西,
動態貼圖在現今 real time 3D 上是很重要的技巧,
包括鏡射,陰影,Post effect 等都會用到,一定要實作看看的ㄚ.
只是有那麼點小怪,畫出來的東西是上下顛倒的. [:|]
很奇怪,靜態貼圖都OK,一但換上動態貼圖就變上下顛倒.
我花了整個下午仔細 trace 程式,最後得到一個結論 [:%%]
那就是"我並沒有寫錯" [:|]

不過我同時發現一個奇怪的現象, android 上的GLSL 它 View Port 上的座標系與OpenGL相同,都是由下而上.
但是貼圖座標卻與OpenGL相反,採用了Direct3D 由上而下的座標系. [8-}]
這真的有怪.可能就是造成動態貼圖上下顛倒的原因吧.至少我是這ㄇ解釋這個現象的.

那要怎ㄇ修正這個問題呢?!基本上有兩個方向,
1.在頂點數據的貼圖資訊中,直接反轉貼圖座標,但這意謂著必須要為正影倒影各自準備一個數據(因為負負得正嘛,等於沒影響),這會造成記憶體的浪費,一般的PC上這不是問題,但Android 上就不適合了.

2.這第二種方法就是,直接在繪製動態貼圖上的shader裡動手腳,把貼圖座標反轉,這就可以避免浪費記憶體,但缺點就是計算耗時較久.不過只要確定這個轉換是在 vertex shader 中進行的,問題就不會太大.

好吧,就醬!!
標籤:
瀏覽次數:150    人氣指數:1350    累積鼓勵:60
 切換閱讀模式  回應  給他日記貼紙   給他愛的鼓勵 檢舉
給本文愛的鼓勵:  最新愛的鼓勵
放屁 《前一篇 回他的日記本 後一篇》 白忙
 
住戶回應
 
時間:2012-04-10 00:55
她, 53歲,台北市,其他
*給你留了一則留言*
  


給我們一個讚!