0
我想要做的是在平移,旋轉,縮放後獲取頂點的Position
,並獲得平移,旋轉,縮放後的頂點的Position
,然後將值傳遞給我的C++應用程序,這可能嗎?是否有可能從着色器獲取數據
我想要做的是在平移,旋轉,縮放後獲取頂點的Position
,並獲得平移,旋轉,縮放後的頂點的Position
,然後將值傳遞給我的C++應用程序,這可能嗎?是否有可能從着色器獲取數據
可能是的,但最優雅的方法取決於可用的OpenGL版本配置文件。最優雅的解決方案將是頂點變換反饋https://www.opengl.org/wiki/Transform_Feedback
如果您沒有VTF,您必須將信息寫入framebuffer(在片段緩衝區對象中)進行回讀(這當然會阻止您看到一個「圖像」,但只是給你彩色編碼的信息)。以GL_POINTS模式渲染,使用gl_VertexID
設置片段位置,將轉換後的數據傳遞給片段着色器,並讓片段着色器將其寫入正確的顏色通道。
將它寫入紋理,然後在C++應用程序中獲取紋理數據(您將需要對數據進行編碼以匹配紋理格式),並且還會根據使用的紋理大小限制頂點的數量。也可能你需要添加點的索引到你的網格數據,所以着色器知道紋理內寫入的位置...... – Spektre 2014-12-07 08:31:47