Three.js: La géométrie sans faces est toujours rendue dans le maillage

Créé le 7 août 2017  ·  3Commentaires  ·  Source: mrdoob/three.js

L'idée est que ma géométrie a toujours les mêmes sommets, mais les faces sont ajoutées facultativement. Cependant, il décide au hasard de dessiner des objets malgré tout. Démo ici .

Bug Won't fix

Commentaire le plus utile

J'ai débogué ce problème aujourd'hui. Geometry est converti en interne en BufferGeometry . Le résultat de cette conversion dépend du type d'objet (maillage, ligne, etc.). Ainsi, dans l'exemple de @makc , la géométrie est convertie comme la géométrie d'un objet Line . Cela créera un attribut de position et de couleur. Lorsque l'instance de Mesh est rendue avec le même objet Geometry , le moteur de rendu renvoie la même instance mise en cache de BufferGeometry .

https://github.com/mrdoob/three.js/blob/ec67749b0767e2727deebd52da2dbd3a4e7ab6a2/src/renderers/webgl/WebGLGeometries.js#L63 -L65

C'est la raison pour laquelle vous voyez ces triangles verts dans la démo. Mesh et Line partagent le même interne BufferGeometry et l'interprètent différemment. Je pense que nous pouvons résoudre ce problème si nous essayons de respecter le type d'objet lors de la mise en cache du BufferGeometry .

Ou nous vous recommandons simplement d'utiliser BufferGeometry en premier lieu: sweat_smile:

Tous les 3 commentaires

Un problème opposé ici - nous ne voyons pas les visages là où ils sont définis. C'est peut-être parce que la géométrie est partagée entre la ligne et le maillage.

J'ai débogué ce problème aujourd'hui. Geometry est converti en interne en BufferGeometry . Le résultat de cette conversion dépend du type d'objet (maillage, ligne, etc.). Ainsi, dans l'exemple de @makc , la géométrie est convertie comme la géométrie d'un objet Line . Cela créera un attribut de position et de couleur. Lorsque l'instance de Mesh est rendue avec le même objet Geometry , le moteur de rendu renvoie la même instance mise en cache de BufferGeometry .

https://github.com/mrdoob/three.js/blob/ec67749b0767e2727deebd52da2dbd3a4e7ab6a2/src/renderers/webgl/WebGLGeometries.js#L63 -L65

C'est la raison pour laquelle vous voyez ces triangles verts dans la démo. Mesh et Line partagent le même interne BufferGeometry et l'interprètent différemment. Je pense que nous pouvons résoudre ce problème si nous essayons de respecter le type d'objet lors de la mise en cache du BufferGeometry .

Ou nous vous recommandons simplement d'utiliser BufferGeometry en premier lieu: sweat_smile:

@mrdoob Je suggère d'introduire une nouvelle étiquette Wont't fix , de l'attribuer au problème et de la fermer. Je ne pense pas qu'il soit logique d'ajouter un correctif au moteur de rendu si le projet va de toute façon arrêter le rendu de Geometry . La solution à ce problème est l'utilisation de BufferGeometry .

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

akshaysrin picture akshaysrin  ·  3Commentaires

scrubs picture scrubs  ·  3Commentaires

jlaquinte picture jlaquinte  ·  3Commentaires

Horray picture Horray  ·  3Commentaires

seep picture seep  ·  3Commentaires