Super-Beispiel-Antialiasing mit threejs

8

Ich möchte meine Szene mit der doppelten Auflösung meiner Leinwand rendern und dann verkleinern, bevor sie angezeigt wird. Wie würde ich das mit threejs machen?

    
jorgenfb 14.03.2013, 12:28
quelle

3 Antworten

5

Das ist meine Lösung. Die Quellkommentare sollten erklären, was vor sich geht. Setup (init):

%Vor%

Ändern Sie Ihre Animationsschleife zu:

%Vor%

Hinweis: EffectComposer, RenderPass, ShaderPass und CopyShader sind nicht Teil der Standarddatei three.js. Sie müssen sie zusätzlich zu three.js hinzufügen. Zum Zeitpunkt des Verfassens sind sie im Projekt threejs im Ordner examples zu finden:

%Vor%     
jorgenfb 05.09.2013 11:21
quelle
1

für mich der beste Weg, um eine perfekte AA mit nicht zu viel Arbeit zu haben (siehe den Code unten) ps: Wenn du mehr als 2 erhöhst, beginnt es zu schärfen

renderer = new THREE.WebGLRenderer({antialiasing:true});
renderer.setPixelRatio( window.devicePixelRatio * 1.5 );

    
Cid-Wings 12.06.2017 16:38
quelle
-1

So können Sie das Problem lösen: Wenn Sie Ihren Renderer erstellen, verdoppeln Sie in Ihrem three.js-Initialisierungscode die Dimensionen der primären Zeichenfläche und legen Sie sie so fest, dass sie auf einem sekundären, verborgenen Zeichenflächenelement gerendert werden das ist doppelt so groß wie Ihre primäre Leinwand. Führen Sie die erforderliche Bildbearbeitung auf dem sekundären Zeichenbereich durch, und zeigen Sie das Ergebnis dann auf dem primären Zeichenbereich an.

    
Lee Stemkoski 15.03.2013 14:37
quelle

Tags und Links