three.js: Wie kann man mehrere Shader-Pässe auf ein einzelnes Objekt einer Szene anwenden?

8

Ich versuche ein Sonnensystem zu rendern. Ich möchte ein paar ausgefallene Shader (Glow, Gauss, etc.) nur auf die Sonne anwenden. Das mache ich bis jetzt:

  • Erstellen Sie eine separate Szene für das System und die Sonne
  • Rendern Sie das System auf eine Textur
  • Rendere die Sonne und wende einige Shader-Pässe an
  • Kombinieren Sie das Rendering der Sonne mit der zuvor erzeugten Textur in einem Misch- / Kompositionsshader

Ich verwende EffectComposer aus den three.js-Beispielen. So sieht mein Setup aus:

%Vor%

Meine Rendermethode ruft dann einfach die Rendermethoden der beiden EffectComposer auf:

%Vor%

Das Problem ist, dass ich die Szene sehen kann, aber nicht die Sonne. Wenn ich nur sunComposer rendere und renderToScreen = true setze, kann ich die Sonne sehen. Es funktioniert einfach nicht in Kombination.

Irgendwelche Tipps, wie ich diesen Effekt erreichen könnte? Ist mein Setup richtig oder kann dies auch mit einem einzigen EffectComposer erreicht werden?

    
thalador 30.10.2015, 10:45
quelle

0 Antworten

Tags und Links