Voir #67 pour comprendre les triangles, qui n'est rien d'autres qu'un représentation de trois points dans un order donné.
Blender
Bien que Blender et d'autres logiciels 3D affichent des faces, il est important de comprendre qu'en réalité, tout est composé de triangles lorsqu'il s'agit des calculs effectués par la carte graphique. C'est pourquoi les optimisations de performance exigent de limiter le nombre de triangles.
Unity3D
Pour un MeshFilter dans Unity3D, un triangle est simplement défini par trois points.
Son orientation dépend de l'ordre dans lequel ces points sont spécifiés.
using UnityEngine;
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
public class CreateTriangle : MonoBehaviour
{
void Start()
{
// Créer un nouveau mesh
Mesh mesh = new Mesh();
// Définir les trois sommets du triangle
Vector3[] vertices = new Vector3[]
{
new Vector3(0, 0, 0), // Point A
new Vector3(1, 0, 0), // Point B
new Vector3(0, 1, 0) // Point C
};
// Définir les index des triangles
// L'ordre des sommets est important pour l'orientation
// ABC définit une orientation, ACB en définit une autre
int[] triangles = new int[]
{
0, 1, 2 // Triangle avec les sommets A, B, C (ordre horaire)
};
// Appliquer les sommets et triangles au mesh
mesh.vertices = vertices;
mesh.triangles = triangles;
// Recalculer les normales pour l'éclairage
mesh.RecalculateNormals();
// Appliquer le mesh à l'objet
GetComponent<MeshFilter>().mesh = mesh;
}
}
Computerphile
Voir #67 pour comprendre les triangles, qui n'est rien d'autres qu'un représentation de trois points dans un order donné.
Blender
Bien que Blender et d'autres logiciels 3D affichent des faces, il est important de comprendre qu'en réalité, tout est composé de triangles lorsqu'il s'agit des calculs effectués par la carte graphique. C'est pourquoi les optimisations de performance exigent de limiter le nombre de triangles.
Unity3D
Pour un MeshFilter dans Unity3D, un triangle est simplement défini par trois points. Son orientation dépend de l'ordre dans lequel ces points sont spécifiés.
Voir #wiref