[英]OpenGL ES 2.0: Is there a workaround for missing texture access in vertex shader?
我目前正在嘗試使用Android的OpenGL ES 2.0進行游戲。 我的地圖是一個二維網格地圖,每個位置都有一個高度值。 現在我想在紋理中存儲每個坐標的高度,以在頂點着色器中進行高度查找。
這個想法的好處是我可以生成一個通用三角網並將其(帶偏移)放在用戶當前正在查看的地圖位置上。 由於偏移,我可以省略每次用戶移動其視圖位置和我將從紋理讀取的高度輪廓時創建新三角網的需要。
現在存在的問題是許多當前的Android設備(甚至是Galaxy S3)不支持頂點着色器中的紋理查找。 可悲的是,這完全破壞了我目前的做法。
我的問題:還有其他可能從頂點着色器中的圖形卡內存中獲取數據嗎? 如果不直接指定每個頂點的數據,每次用戶更改視圖位置時,會強制我(據我所知)重新創建高度貼圖。 (每次用戶更改視圖位置時創建高度圖都會變慢...)
感謝您的幫助+最好的問候,
安德烈亞斯
texture2DLod()
函數用於在頂點着色器中進行紋理查找。
請參閱GLSL ES規范的第8.7節紋理查找功能 。
根據andy的評論,在使用texture2DLod()
之前不要忘記檢查GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
。 如果不支持頂點紋理查找,則應該回退到沒有此功能的另一個着色器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.