L'anticrénelage pas de travail dans Three.js
Je suis nouvelle three.js et ont commencé à travailler avec beaucoup récemment. J'ai vraiment beaucoup de plaisir et j'ai créé des choses incroyables. Cependant, je ne suis pas sûr pourquoi, mais lors de la configuration de l'anticrénelage de vrai, je ne vois pas de différence.
renderer = new THREE.WebGLRenderer({ antialiasing: true });
J'ai cherché des solutions possibles, mais je n'arrive pas à trouver ou à comprendre pourquoi cela ne fonctionne pas. Est-il quelque chose que je suis en manque ou le besoin afin d'obtenir de l'anticrénelage de travail?
EDIT:
Liens qui m'ont aidé à résoudre ce problème:
https://github.com/mrdoob/three.js/blob/master/examples/webgl_materials_normalmap2.html
https://github.com/mrdoob/three.js/tree/master/examples/js
Il a fallu creuser, mais les développeurs pour three.js ont couvert!
- J'ai peur de ne pas comprendre comment ces liens qui vous a conduit à une solution. Pour moi, l'anti-aliasing échoue dans Chrome, et fonctionne dans Firefox.
- est-il censé travailler, dans la toile?
- J'avais travaillé avec le WebGL moteur de rendu. Je ne sais pas si il fonctionne sur la toile.
- M'a pris tout l'après-midi à la figure sur mon système dans les paramètres de google chrome, je n'avais pas coché la case "permettre l'accélération matérielle si disponible", et à l'alto, l'antialiasing est maintenant opérationnel.
Vous devez vous connecter pour publier un commentaire.
Le nom de la propriété que vous utilisez dans l'argument de l'objet de la
WebGLRenderer
constructeur est incorrect. Selon le la documentation,le nom de la propriété doit être
'antialias'
, pas'antialiasing'
.Je l'ai testé dans Google Chrome pour Mac OS et il y avait un notable de lissage dans le rendu des contours dans une démo avec un spinning cube.
La propriété est appelé
antialias
et Il est activé comme ceci:Ne fonctionne pas pour tous les navigateurs, cochez cette question pour plus d'informations.
Remarque:
La propriété n'est PAS accessible au public, le choix de lisser après la construction comme ceci:
ne fonctionnera pas.
renderer = new TROIS.WebGLRenderer( { antialias: true } ); - fonctionne avec mon ordinateur de bureau comp, mais ne fonctionne pas avec les ordinateurs portables, je peux voir la terrible escalier
Dans le cas où votre ordinateur ne supporte pas par défaut WebGL AA, le redimensionnement, le moteur de rendu de la taille et de la largeur du canevas me donne de bien meilleurs résultats que le FXAA. L'esprit vous le CSS détient les vrais valeurs de largeur et hauteur.
renderer.setSize(width * 2, height * 2, false);
, mais de définir ensuite les dimensions réelles CSS est toujours nécessaire.Je crois que cela dépend du navigateur et de système que vous utilisez. Autant que je sache, Firefox ne prend pas en charge l'anticrénelage dès maintenant à tous. Aussi, il peut être la personne à charge sur votre carte graphique et pilotes. Par exemple, je n'ai pas l'antialiasing dans Chrome sur mon vieux MacBook Pro mi-2009, mais je ne reçois anticrénelage sur mon nouvelle la fin de 2012 de la machine.
Aussi, vous pouvez envisager d'utiliser le FXAA shader pour faire du lissage comme un post-traitement de l'étape. Vous pouvez lire à ce sujet le post-traitement ici.