Représentation d'une géométrie de maillage, de ligne ou de point. Comprend les positions des sommets, les indices de faces, normales, couleurs, UV et attributs personnalisés dans les tampons, réduisant ainsi le coût de transmettre toutes ces données au GPU.
Pour lire et modifier des données dans les attributs BufferGeometry, consultez la documentation [page:BufferAttribute].
const geometry = new THREE.BufferGeometry();
// créer une forme carrée simple. Nous dupliquons le haut à gauche et le bas à droite
// sommets car chaque sommet doit apparaître une fois par triangle.
const vertices = new Float32Array( [
-1.0, -1.0, 1.0,
1.0, -1.0, 1.0,
1.0, 1.0, 1.0,
1.0, 1.0, 1.0,
-1.0, 1.0, 1.0,
-1.0, -1.0, 1.0
] );
// itemSize = 3 parce qu'il y a 3 valeurs (comoosants) par sommet
geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
const mesh = new THREE.Mesh( geometry, material );
[example:webgl_buffergeometry Mesh with non-indexed faces]
[example:webgl_buffergeometry_indexed Mesh with indexed faces]
[example:webgl_buffergeometry_lines Lines]
[example:webgl_buffergeometry_lines_indexed Indexed Lines]
[example:webgl_buffergeometry_custom_attributes_particles Particles]
[example:webgl_buffergeometry_rawshader Raw Shaders]
Ce hashmap a comme identifiant le nom de l'attribut à définir et comme valeur le [page:BufferAttribute buffer] à lui attribuer. Plutôt que d'accéder directement à cette propriété, utilisez [page:.setAttribute] et [page:.getAttribute] pour accéder aux attributs de cette géométrie.
Boîte englobante pour le bufferGeometry, qui peut être calculée avec [page:.computeBoundingBox](). La valeur par défaut est `null`.
Sphère englobante pour le bufferGeometry, qui peut être calculée avec [page:.computeBoundingSphere](). La valeur par défaut est `null`.
Détermine la partie de la géométrie à rendre. Cela ne devrait pas
être défini directement, utilisez à la place[page:.setDrawRange]. La valeur par défaut est
{ start: 0, count: Infinity }
Pour BufferGeometry non indexé, count est le nombre de sommets à rendre.
Pour BufferGeometry indexé, count est le nombre d'indices à rendre.
Divise la géométrie en groupes, dont chacun sera rendu dans un appel de dessin WebGL distinct.
Cela permet d'utiliser un éventail de matériaux avec la géométrie.
Chaque groupe est un objet de la forme :
{ start: Integer, count: Integer, materialIndex: Integer }
où start spécifie le premier élément de cet appel de dessin - le premier sommet de la géométrie non indexée,
sinon le premier indice triangulaire. Count spécifie combien de sommets (ou indices) sont inclus, et
materialIndex spécifie l'index de tableau de matériaux à utiliser.
Utilisez [page:.addGroup] pour ajouter des groupes au lieu de modifier le tableau directement.
Chaque sommet et index doit appartenir à exactement un groupe — les groupes ne doivent pas partager de sommets ou d'indices, et ne doivent pas laisser de sommets ou d'indices inutilisés.
Numéro unique pour cette instance de bufferGeometry.
Permet de réutiliser les sommets sur plusieurs triangles ; c'est ce qu'on appelle utiliser des "triangles indexés". Chaque triangle est associé aux indices de trois sommets. Cet attribut stocke donc l'indice de chaque sommet pour chaque face triangulaire. Si cet attribut n'est pas défini, le [page: WebGLRenderer renderer] suppose que chacun des trois éléments contigus les positions représentent un seul triangle. La valeur par défaut est `null`.
Booléen en lecture seule pour vérifier si un objet donné est de type [name].
Hashmap de [page:BufferAttribute] contenant les détails des cibles de morphing de la géométrie.
Remarque : Une fois la géométrie rendue, les données d'attribut de morphing ne peuvent pas être modifiées. Vous devrez appeler [page:.dispose]() et créer une nouvelle instance de [nom].
Utilisé pour contrôler le comportement de la cible de morphing ; lorsqu'il est défini sur true, les données cibles de morphing sont traitées comme des décalages relatifs, plutôt que comme des positions/normales absolues. La valeur par défaut est "faux".
Nom facultatif pour cette instance de bufferGeometry. La valeur par défaut est une chaîne vide.
Un objet qui peut être utilisé pour stocker des données personnalisées sur le BufferGeometry. Il ne doit pas contenir de références aux fonctions car celles-ci ne seront pas clonées.
[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] de l'instance de l'objet. Celui-ci est automatiquement attribué et ne doit pas être modifié.
Les méthodes [page:EventDispatcher EventDispatcher] sont accessibles depuis cette classe.
Ajoute un groupe à cette géométrie; voir les propriétés des [page:BufferGeometry.groups groups] pour plus de détails.
Applique la transformation matricielle à la géométrie.
Applique la rotation représentée par le quaternion à la géométrie.
Centre la géométrie en fonction de la boîte englobante.
Efface tous les groupes.
Crée un clone de ce BufferGeometry.
Calcule la boîte englobante de la géométrie, met à jour l'attribut [page:.boundingBox].
Les boîtes englobantes ne sont pas calculées par défaut. Ils doivent être calculés explicitement, sinon elles sont `null`.
Calcule la boîte englobante de la géométrie, met à jour l'attribut [page:.boundingSphere].
Les sphères englobantes ne sont pas calculées par défaut. Ils doivent être calculés explicitement, sinon elles sont `null`.
Calcule et ajoute un attribut de tangente à cette géométrie.
Le calcul n'est pris en charge que pour les géométries indexées et si les attributs position, normal et uv sont définis. Lorsque vous utilisez une carte normale d'espace tangent, favorisez l'algorithme MikkTSpace fourni par
[page:BufferGeometryUtils.computeMikkTSpaceTangents].
Calcule les normales des sommets en faisant la moyenne des normales des faces.
Copie un autre BufferGeometry dans ce BufferGeometry.
Efface un [page:BufferAttribute attribute] avec le nom spécifié.
Libère les ressources liées au GPU allouées par cette instance. Appelez cette méthode chaque fois que cette instance n'est plus utilisée dans votre application.
Renvoie un [page:BufferAttribute attribute] avec le nom spécifié.
Retourne le tampon [page:.index].
Renvoie `true` si l'attribut avec le nom spécifié existe.
vector - Un vecteur monde à regarder.
Fait pivoter la géométrie pour faire face à un point dans l'espace. Cela se fait généralement en une seule opération et non pendant une boucle.
Utilisez [page:Object3D.lookAt] pour une utilisation typique du maillage en temps réel.
Chaque vecteur normal dans une géométrie aura une magnitude de 1. Cela corrigera l'éclairage sur les surfaces géométriques.
Fait pivoter la géométrie autour de l'axe X. Cela se fait généralement en une seule opération et non pendant une boucle. Utilisez [page:Object3D.rotation] pour une utilisation typique du maillage en temps réel.
Fait pivoter la géométrie autour de l'axe Y. Cela se fait généralement en une seule opération et non pendant une boucle. Utilisez [page:Object3D.rotation] pour une utilisation typique du maillage en temps réel.
Fait pivoter la géométrie autour de l'axe Z. Cela se fait généralement en une seule opération et non pendant une boucle. Utilisez [page:Object3D.rotation] pour une utilisation typique du maillage en temps réel.
Mettre à l'échelle les données géométriques. Cela se fait généralement en une seule opération et non pendant une boucle. Utilisez [page:Object3D.scale] pour une utilisation typique du maillage en temps réel.
Définit un attribut pour cette géométrie. Utilisez ceci plutôt que la propriété attributs, parce qu'un hashmap interne de [page:.attributes] est maintenu pour accélérer l'itération sur les attributs.
Définissez la propriété [page:.drawRange]. Pour un BufferGeometry non indexé, count est le nombre de sommets à rendre. Pour un BufferGeometry indexé, count est le nombre d'indices à rendre.
Définit les attributs de ce BufferGeometry à partir d'un tableau de points.
Définit le buffer [page:.index].
Convertit la BufferGeometry en three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
Renvoie une version non indexée d'une BufferGeometry indexée.
Déplace la géométrie. Cela se fait généralement en une seule opération et non pendant une boucle. Utilisez [page:Object3D.position] pour un déplacement de maillage en temps réel typique.
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]