我正在改變頂點着色器內某些頂點的位置,但是我找不到一種方法讓這些新的更新頂點位置回到js中(我目前正在使用THREE.js:我的網格頂點的頂點位置始終保持不變)。 我發現這個鏈接Retrieve Vertices Data in THREE.js,但glGetTexImage不存在於webgl(我也很懷疑這個浮點紋理方法)。 感謝您的幫助!在THREE.js頂點着色器之後得到變換後的頂點位置
2
A
回答
0
如果從緩衝區中讀取的數據是唯一的問題,你可以是這樣做的:
//render the pass into the buffer
renderer.render(rttScene, rttCamera, rttTexture, true);
// ...
//allocate an array to take the data from the buffer
var width = rttTexture.width;
var height = rttTexture.height;
var pixels = new Uint8Array(4 * width * height);
//get gl context bind buffers, read pixels
var gl = renderer.context;
var framebuffer = rttTexture.__webglFramebuffer;
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
gl.viewport(0, 0, width, height);
gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
WebGL - reading pixel data from render buffer
但設置這一切起來是複雜的,和讀取紋理可能很慢,爲什麼不在CPU上做這件事?
+0
感謝您的回覆。即使我沒有測試從緩衝區讀取數據,我明白我的方法是錯誤的(從我到處都是我的搜索,我仍然不確定我是否可能錯過了有關gpu/cpu關係的內容)。無論如何,我接受你的答案。 – user3018088
相關問題
- 1. GLSL如何在着色器處理後檢索頂點位置?
- 2. THREE.js - 廣告牌頂點着色器
- 3. 頂點着色器與頂點
- 4. Three.js - 根據屏幕上像素位置進行着色的頂點着色器
- 5. GLSL片段着色器得到頂點位置
- 6. 爲什麼在頂點着色器之後處理幾何着色器?
- 7. 頂點着色器中的Direct3D11錯誤頂點轉換
- 8. Matrix.CreateRotation VS頂點着色器
- 9. 頂點着色器問題
- 10. 從頂點着色器
- 11. 如何轉換頂點着色器中的頂點以獲得3D廣告牌
- 12. 是否可以使用Three.js存儲着色器頂點位置到紋理中?
- 13. 將頂點變換爲頂點着色器中的視圖空間
- 14. 更改頂點着色器中頂點的顏色
- 15. 移動到ES 3.0後,頂點着色器不會編譯IOS
- 16. GLSL點燃頂點着色器
- 17. 在OpenGL ES 2.0頂點着色器中生成頂點
- 18. Three.js中的當前頂點位置
- 19. 如何使頂點和片段着色器在three.js中工作
- 20. DirectX - 傳遞給頂點着色器的頂點的維數
- 21. 網格VS頂點着色器的頂點結構
- 22. 僅用於某些頂點的頂點着色器
- 23. Jung着色頂點的值
- 24. 金屬在下一個頂點着色器執行之前是否完成一個頂點着色器?
- 25. ThreeJS不更新着色器中的頂點位置
- 26. GLSL:頂點着色器無片段着色片段着色器
- 27. Swizzling頂點數組,頂點緩衝區對象和着色器
- 28. OpenGL:使用頂點着色器添加頂點
- 29. 光線追蹤點雲用自定義的頂點着色器在three.js所
- 30. C++/OpenGL/SFML頂點着色
請包含您嘗試過的代碼。 –