所以我渲染一個場景到紋理,然後我需要在js中處理紋理,並修改其內容或從一個值數組中創建一個新紋理。
看來我需要獲得WebGL上下文和直接與WebGL接口來完成此任務。有沒有人知道這樣做的最佳方式?如何訪問WebGLRenderTarget紋理內容
回答
我結束了剛剛從演示WebGL的上下文和調用gl.readPixels()
var gl = renderer.getContext();
var framebuffer = renderTarget.__webglFramebuffer;
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
var data = new Uint8Array(renderTarget.width * renderTarget.height * 4);
gl.readPixels(0,0,renderTarget.width,renderTarget.heigh,gl.RGBA,gl.UNSIGNED_BYTE,data);
(渲染目標是THREE.WebGLRenderTarget的一個實例)
相反,你可以使用'WebGLRenderer.readRenderTargetPixels(renderTarget,x,y,width,height,buffer)'方法。 – WestLangley
使用任何一種方法都會導致陣列強烈偏向於0或255。我期待着很多不同的花車。任何想法,爲什麼這些不是我期待的花車?我甚至爲我的渲染器添加了{premultipliedAlpha:false} – Jared
像素被定義爲4個字節的集合。對於R,G,B和A值。如果你想要浮點數,你必須將這個數組中的每個條目映射到255個。最好這樣做可以與處理函數內聯,而不是一次映射數組。 –
- 1. 無法訪問DXGI_FORMAT_R8_UINT紋理
- 2. 訪問內容
- 3. 訪問內容
- 4. 如何訪問WKWebView中的WKWebView內容?
- 5. 如何訪問以下內容?
- 6. 如何從Web API訪問Kentico內容?
- 7. 如何訪問內容的鏈接?
- 8. 如何訪問網頁內容
- 9. 如何訪問的詞典內容
- 10. 如何訪問目錄的內容
- 11. 訪問ImageButton內容
- 12. 訪問transcluded內容
- 13. 訪問DataGridTemplateColumn內容
- 14. NSArraycontroller訪問內容
- 15. XNA內容管道和紋理
- 16. 如何僅顯示內容訪問的一種內容類型
- 17. 如何提高FPS並通過紋理隨機訪問克服內存帶寬?
- 18. 如何檢查或轉儲WebGL中的紋理內容?
- 19. OpenGL的訪問DepthComponent紋理在GLSL 400
- 20. 在OpenGL中,GPU如何訪問紋理數據?
- 21. iOS MetalPerformanceShader:如何訪問MPSImage中的原始紋理數據
- 22. 如何在GPU內創建紋理
- 23. 訪問短信內容iPhone
- 24. 訪問的NSDictionary內容
- 25. 訪問asp:內容代碼
- 26. 訪問TableLayout中的內容
- 27. Jetty.xml訪問靜態內容
- 28. 從ASP.NET訪問Sitecore內容
- 29. SQLite訪問表內容
- 30. FCKEditor:訪問內容區域
如果您添加了一些這將有助於你的代碼。 – Blubberguy22
你是什麼意思處理紋理/修改內容/從數組中創建一個新的紋理?我想你需要的是rendertarget +片段着色器 – Atrahasis