Próbuję przenieść to (http://madebyevan.com/webgl-water/) na TRZY. Myślę, że zbliżam się (po prostu chcę symulację na razie, nie przejmuj się już optyką/załamaniem). Chciałbym, aby działało z shaderem na zwiększenie GPU.Three.js Pobierz dane z WebGLRenderTarget (sim wody)
Oto moje aktualne TRZY konfiguracji za pomocą shaderów: http://jsfiddle.net/EqLL9/2/ (drugi mniejszy samolot jest do debugowania, co jest obecnie w WebGLRenderTarget)
Co mam zmaga się czyta dane z powrotem z WebGLRenderTarget (rtTexture w moim przykładzie). W tym przykładzie zobaczysz, że 4 wierzchołki otaczające punkt środkowy są przesunięte w górę. Jest to poprawne (po 1 etapie symulacji), ponieważ zaczyna się od punktu centralnego będącego jedynym punktem przemieszczenia.
Gdybym mógł odczytać dane z powrotem z rtTexture i zaktualizować teksturę danych (buf1) każdej klatki, to symulacja powinna prawidłowo animować. Jak odczytać dane bezpośrednio z WebGLRenderTarget? Wszystkie przykłady pokazują, jak przesłać dane do celu (renderować do niego), nie czytać z niego. Czy robię to wszystko źle? Coś mi mówi, że będę musiał pracować z wieloma teksturami i jakoś zamieniam się tam iz powrotem jak Evan.
TL; DR: W jaki sposób można skopiować dane z WebGLRenderTarget do DataTexture po wywołaniu takiego:
// render to rtTexture
renderer.render(sceneRTT, cameraRTT, rtTexture, true);
EDIT: może znaleźć rozwiązanie na jsfiddle/gero3/UyGD8/9/ Woli zbadaj i zgłoś ponownie.
OK, poprawiono symulację. Nie implementowałem podwójnego buforowania z podwójnym WebGLRenderTargets. Najnowsze jest: http://jsfiddle.net/EqLL9/4/ – relicweb
Excellent. Oto inny przykład, który implementuje GPGPU w ramach three.js: http://jabtunes.com/labs/3d/gpuflocking/webgl_gpgpu_flocking3.html – WestLangley
@WestLangley Dzięki za to, wygląda fajnie. Zaktualizowałem moją symulację i umieściłem ją na mojej głównej stronie (która nadal jest mocno WIP): [http://relicweb.com/webgl/rt.html](http://relicweb.com/webgl/rt. html) – relicweb