Come nella Parte 1 e nella Parte2, ci occuperemo di indicare in questo post tutti quegli spunti e riflessioni su Three.js che da uno studio superficiale della libreria potrebbero sfuggire. Sono argomenti tecnici particolari e profondi che però cercano di mettere in guardia lo sviluppatore da potenziali problemi ed errori.
In questo articolo
L’antialiasing sul Render Composer non funziona
E’ bene ricordare che se si utilizza il Render Composer per visualizzare la propria scena, l’attributo antialising:true del renderer non ha valenza. Le uniche due possibilità sono:
- Aggiungere un FXAA Pass dentro il flusso di render pass prima di renderizzare l’output, avendo cura di passare la risoluzione corretta
- Passare al WebGLRenderTarget il parametro “samples: 4” (o un valore definito) durante la sua creazione (ma non è compatibile con WebGL1) – Dalla versione 138 di WebGLMultisampleRenderTarget è stato rimosso in favore del parametro samples
Se si utilizza il MaskPass è necessario abilitare lo Stencil Buffer
Se durante l’utilizzo del Render Composer si rende necessario l’inserimento di MaskPass (e ClearMaskPass) è necessario abilitare nel WebGLRenderTarget, passato al momento delle creazione del Composer, il parametro “stencilBuffer: true”
Debuggare il Frame Buffer non è facile
Qualora servisse avere una visualizzazione chiara di tutti i passaggi di rendering del Frame Buffer della scena corrente, l’unica soluzione è affidarsi ad un sistema di monitoraggio esterno. In questo caso si rende molto utile l’estensione Chrome chiamata Spectator.js, installabile attraverso questo link.
Impostare correttamente l’environment map
Quando si imposta l’environmentMap e la background texture di una scena è sempre necessario impostare un ToneMapping del renderer.