NewRGBFreeFormTriangleMesh
Ombrages, graphiques
Description
Crée un maillage de triangles libres ombré par la méthode de Gouraud, type d’ombrage PDF 4, et l’enregistre sous ShaderName en couleur DeviceRGB. Les sommets sont consommés par groupes de trois, chaque groupe décrivant un triangle dont les couleurs de coins s’interpolent sur sa surface. Chaque triangle est émis indépendamment avec un indicateur de sommet de départ, si bien qu’aucun partage d’arêtes entre triangles n’est requis
Syntaxe
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Paramètres
| ShaderName | Nom sous lequel l’ombrage est enregistré ; passez-le à SetFillShader ou SetLineShader pour peindre avec le maillage |
|---|---|
| Vertices | Tableau d’enregistrements TPLMeshVertex (X, Y, R, G, B) avec des composantes de couleur dans la plage 0 à 1 ; la longueur doit être d’au moins 3 et un multiple de 3 |
| BitsPerCoordinate | Bits de quantification des coordonnées des sommets, entre 1 et 32 |
| BitsPerComponent | Bits de quantification par composante de couleur, entre 1 et 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Rectangle de décodage qui projette les coordonnées compactées des sommets dans l’espace de coordonnées de l’ombrage |
Valeurs de retour
| 0 | Le maillage n’a pas été créé, parce qu’aucun document n’est sélectionné, que moins d’un triangle complet a été fourni ou qu’un paramètre de bits est hors plage |
|---|---|
| 1 | Le maillage a été enregistré sous ShaderName |
Remarques
Les coordonnées suivent le système à origine en haut à gauche de la bibliothèque et sont traduites en interne (ISO 32000-1 §8.7.4.5.5). Pour des ombrages en dégradé sans données de sommets, voir NewRGBAxialShader
Exemple
SetLength(Vertices, 3);
Vertices[0].X:= 100; Vertices[0].Y:= 100;
Vertices[0].R:= 1; Vertices[0].G:= 0; Vertices[0].B:= 0;
Vertices[1].X:= 400; Vertices[1].Y:= 100;
Vertices[1].R:= 0; Vertices[1].G:= 1; Vertices[1].B:= 0;
Vertices[2].X:= 250; Vertices[2].Y:= 350;
Vertices[2].R:= 0; Vertices[2].G:= 0; Vertices[2].B:= 1;
PDF.NewRGBFreeFormTriangleMesh('tri', Vertices, 16, 8,
100, 100, 400, 350);
PDF.SetFillShader('tri');