2017-08-15 3 views
0

J'essaie d'écrire une visualisation graphique avec Three.js, donc j'ai un bufferGeometry pour sauvegarder mes vertex et je dessine avec ma propre ShaderMaterial pour faire des milliers de Three.Points mais maintenant je veux savoir comment Shader de Three.lineSegments fonctionne pour le changer pour moi-même. Je veux dessiner mes bords avec le même bufferGeometry et utiliser deux index pour les têtes du bord. Je cherchais trop mais je n'ai rien trouvé? est-ce possible?lineSegment shaderMaterial - bufferGeometry (Threejs)

+0

Vous cherchez plutôt ['TROIS.Line'] (https://threejs.org/docs/#api/objects/Line) de 'TROIS.LineSegments'? 'TROIS.Line' fera ce que vous voulez parce qu'il rend les vertices comme une bande de lignes. – TheJim01

+0

Oui, j'ai vu mais je ne veux pas de ligne de fond J'ai besoin de quelque chose qui peut tracer une ligne avec deux index de vertex – MHA15

+0

Ensuite, vous ne pouvez pas utiliser le même objet 'BufferGeometry'. Les deux formes sont de types primitifs différents. ([Primitives de ligne]) (https://www.khronos.org/opengl/wiki/Primitive#Line_primitives) GL_POINTS' dessine évidemment en utilisant un seul sommet. 'THREE.LineSegments' ==' GL_LINES', qui nécessite deux sommets par segment. Fournir une indexation pour permettre aux segments de ligne d'être continus signifie que les indices pour les points seront erronés. Cela peut sembler dessiner correctement, mais ce n'est pas le cas. L'ajout de groupes de dessin expose le problème. – TheJim01

Répondre

0

J'avais trouvé ma réponse. Nous devons utiliser setindex dans le tampon Geometry et utiliser le même attribut de position dans deux bufferGeometry