Итак, я визуализирую сцену текстуры, а затем мне нужно обработать текстуру в 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);
(RenderTarget является экземпляром THREE.WebGLRenderTarget)
Вместо этого вы можете использовать метод 'WebGLRenderer.readRenderTargetPixels (renderTarget, x, y, width, height, buffer)'. – WestLangley
, используя любой метод, приводит к массиву с сильным смещением к 0 или 255. Не так много между ними. Я ожидаю много разных поплавков. Любая идея, почему это не поплавки, которые я ожидаю? Я даже добавил {premultipliedAlpha: false} к моему Renderer – Jared
пикселей определены как наборы из 4 байтов. Для значений R, G, B и A. если вы хотите поплавки, вам нужно будет сопоставить каждую запись в этом массиве на 255. Вероятно, лучше всего сделать это с помощью функции обработки, а не сразу отображать массив. –
- 1. Render содержимое UIView как текстуры OpenGL
- 2. Three.js Извлечь данные из WebGLRenderTarget (water sim)
- 3. Как я могу проверить или сбросить содержимое текстуры в WebGL?
- 4. Получить гистограмму скрытой текстуры OpenGL
- 5. Как получить часть текстуры в SDL2?
- 6. Как получить гладкие/однородные текстуры в Three.js
- 7. Как получить текстуры, прикрепленные к фреймбуферу?
- 8. Как получить UIImage из текстуры EAGLView?
- 9. Как получить пиксельные текстуры в SpriteKit?
- 10. Как получить пиксельные значения текстуры в Starling?
- 11. Как получить размер текстуры в HLSL?
- 12. Как получить содержимое тега?
- 13. Как получить содержимое System.Net.Mail.Attachment
- 14. Как получить содержимое $ _GET
- 15. Как получить содержимое iframe?
- 16. Как получить содержимое тега?
- 17. Как получить содержимое html, включая содержимое javascript?
- 18. Получить позицию из глубинной текстуры
- 19. Получить максимальный размер текстуры OpenGL
- 20. Получить массив байтов из текстуры
- 21. Получить координаты текстуры под мышью
- 22. Как закрасить текстуры [Libgdx]
- 23. Как читать direct3d текстуры пикселей
- 24. Как слить две текстуры
- 25. Копирование глубины текстуры RGBA текстуры
- 26. Как получить содержимое файла tbz?
- 27. Как получить содержимое внутри alt?
- 28. Как получить содержимое вложений файла
- 29. Как получить недостающее содержимое раскадровки?
- 30. Как получить содержимое тегов html
Это поможет, если вы добавили некоторые из ваш код. – Blubberguy22
Что вы подразумеваете под обработкой текстуры/изменения содержимого/создания новой текстуры из массива? Я предполагаю, что вам нужно rendertarget + фрагмент shader – Atrahasis