我正在改变顶点着色器内某些顶点的位置,但是我找不到一种方法让这些新的更新顶点位置回到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顶点着色
请包含您尝试过的代码。 –