Ich versuche, dies (http://madebyevan.com/webgl-water/) zu DREI zu portieren. Ich denke, dass ich nah dran bin (will nur die Simulation für den Moment, kümmere mich nicht um Ätzmittel/Refraktion). Ich würde es gerne mit Shadern für den GPU-Boost arbeiten lassen.Three.js Abrufen von Daten aus WebGLRenderTarget (Wasser-Sim)
Hier sind meine aktuellen DREI Setup mit Shadern: http://jsfiddle.net/EqLL9/2/ (die zweite kleinere Ebene ist für das Debuggen, was in der WebGLRenderTarget aktuell ist)
Was mit Ich kämpfe Daten lesen wieder aus dem WebGLRenderTarget (rtTexture in meinem Beispiel). In diesem Beispiel sehen Sie, dass die 4 Eckpunkte um den Mittelpunkt herum nach oben verschoben sind. Dies ist korrekt (nach 1 Simulationsschritt), da es damit beginnt, dass der Mittelpunkt der einzige Verschiebungspunkt ist.
Wenn ich die Daten aus der rtTexture lesen und die Datenstruktur (buf1) für jeden Frame aktualisieren könnte, sollte die Simulation richtig animiert werden. Wie liest man die Daten direkt aus einem WebGLRenderTarget? Alle Beispiele zeigen, wie Daten an das Ziel gesendet (rendern), nicht von FROM gelesen werden. Oder mache ich alles falsch? Irgendetwas sagt mir, dass ich mit mehreren Texturen arbeiten muss und irgendwie ähnlich wie Evan hin und her tauschen muss.
TL; DR: Wie kann ich das Kopieren von Daten von einem WebGLRenderTarget zu einem DataTexture nach einem Aufruf wie folgt aus:
// render to rtTexture
renderer.render(sceneRTT, cameraRTT, rtTexture, true);
EDIT: die Lösung bei jsfiddle/gero3/UyGD8/9/ Will gefunden haben recherchieren und melden Sie sich zurück.
Ok, reparierte die Simulation. Ich implementierte keine doppelte Pufferung mit zwei WebGLRenderTargets. Das Neueste ist: http://jsfiddle.net/EqLL9/4/ – relicweb
Ausgezeichnet. Hier ist ein weiteres Beispiel, das GPGPU im Rahmen von three.js implementiert: http://jabtunes.com/labs/3d/gpuflocking/webgl_gpgpu_flocking3.html – WestLangley
@WestLangley Danke dafür, sieht cool aus. Ich habe meine Simulation aktualisiert und auf meiner Hauptseite (die immer noch ein WIP ist) eingefügt: [http://relicweb.com/webgl/rt.html](http://relicweb.com/webgl/rt. html) – relicweb