gKit2 light
Loading...
Searching...
No Matches
gltf.h
Go to the documentation of this file.
1
3
4#ifndef _GLTF_MESH_H
5#define _GLTF_MESH_H
6
7#include <vector>
8
9#include "vec.h"
10#include "color.h"
11#include "mesh.h"
12#include "image_io.h"
13
14
16Mesh read_gltf_mesh( const char *filename );
17
20{
21 float fov;
22 float aspect;
23 float znear;
24 float zfar;
25
26 Transform view;
27 Transform projection;
28};
29
31std::vector<GLTFCamera> read_gltf_cameras( const char *filename );
32
35{
36 Point position;
37 Color emission;
38 float intensity;
39
40 // \todo transform et les autres parametres...
41};
42
44std::vector<GLTFLight> read_gltf_lights( const char *filename );
45
57
58struct GLTFMaterial
59{
62 float metallic;
63 float roughness;
65 float ior;
66 float specular;
68 float thickness;
69 float attenuation_distance;
70 Color attenuation_color;
71 // \todo coating
72
81 int thickness_texture;
82
83 GLTFMaterial( ) :
84 color(White()), emission(), metallic(), roughness(0.8), transmission(), ior(), specular(), specular_color(), thickness(), attenuation_distance(), attenuation_color(),
86 transmission_texture(-1), specular_texture(-1), specular_color_texture(-1), thickness_texture(-1)
87 {}
88};
89
91std::vector<GLTFMaterial> read_gltf_materials( const char *filename );
92
94std::vector<ImageData> read_gltf_images( const char *filename );
95
96
99{
103
104 Point pmin, pmax;
105
106 // buffers...
107 std::vector<unsigned> indices;
108 std::vector<vec3> positions;
109 std::vector<vec2> texcoords;
110 std::vector<vec3> normals;
111};
112
115{
116 std::vector<GLTFPrimitives> primitives;
117 Point pmin, pmax;
118};
119
122{
123 std::vector<Transform> transforms;
125};
126
133
134
149{
150 std::vector<GLTFMesh> meshes;
151 std::vector<GLTFNode> nodes;
152
153 std::vector<GLTFMaterial> materials;
154 std::vector<GLTFLight> lights;
155 std::vector<GLTFCamera> cameras;
156
157 void bounds( Point& pmin, Point& pmax) const;
158 std::vector<GLTFInstances> instances( ) const;
159};
160
162GLTFScene read_gltf_scene( const char *filename );
163
164#endif
165
representation d'un objet / maillage.
Definition mesh.h:121
Point pmax
points extremes de l'englobant dans le repere objet
Definition gltf.h:117
Mesh read_gltf_mesh(const char *filename)
charge un fichier .gltf et construit un mesh statique, sans animation.
Definition gltf.cpp:14
int mesh_index
indice du maillage.
Definition gltf.h:131
int primitives_mode
triangles.
Definition gltf.h:100
std::vector< Transform > transforms
transformation model de chaque instance
Definition gltf.h:123
std::vector< GLTFLight > read_gltf_lights(const char *filename)
charge un fichier .gltf et renvoie les sources de lumiere ponctuelles.
Definition gltf.cpp:461
int material_index
indice de la matiere des primitives.
Definition gltf.h:102
int primitives_index
indice unique.
Definition gltf.h:101
Point pmax
points extremes de l'englobant dans le repere objet
Definition gltf.h:104
GLTFScene read_gltf_scene(const char *filename)
charge un fichier .gltf et construit une scene statique, sans animation.
Definition gltf.cpp:716
std::vector< GLTFPrimitives > primitives
groupes de triangles associes a une matiere.
Definition gltf.h:116
int mesh_index
indice du maillage instancie.
Definition gltf.h:124
std::vector< GLTFCamera > read_gltf_cameras(const char *filename)
charge un fichier .gltf renvoie les cameras.
Definition gltf.cpp:396
std::vector< GLTFMaterial > read_gltf_materials(const char *filename)
charge un fichier .gltf et renvoie les matieres.
Definition gltf.cpp:618
Transform model
transformation model pour dessiner le maillage.
Definition gltf.h:130
std::vector< ImageData > read_gltf_images(const char *filename)
charge un fichier .gltf et charge les images referencees par les matieres.
Definition gltf.cpp:649
description d'une camera.
Definition gltf.h:20
instances d'un maillage.
Definition gltf.h:122
description d'une source de lumiere.
Definition gltf.h:35
description d'un maillage.
Definition gltf.h:115
position et orientation d'un maillage dans la scene.
Definition gltf.h:129
groupe de triangles d'un maillage. chaque groupe est associe a une matiere.
Definition gltf.h:99
Color White()
utilitaire. renvoie une couleur blanche.
Definition color.cpp:23
representation d'une couleur (rgba) transparente ou opaque.
Definition color.h:14
float transmission
transmission, transparent ou pas (= 0)
Definition gltf.h:64
int color_texture
indice de la texture ou -1. cf read_gltf_images() pour charger les textures dans le bon ordre....
Definition gltf.h:73
float roughness
rugosite de la micro surface.
Definition gltf.h:63
int metallic_roughness_texture
indice de la texture ou -1. les valeurs RGB representent les parametres du modele : B= metallic,...
Definition gltf.h:74
int emission_texture
indice de la texture ou -1.
Definition gltf.h:75
Color specular_color
modification de la reflexion speculaire des dielectriques ou pas (= 0)
Definition gltf.h:67
Color emission
emission pour les sources de lumieres ou pas (= noir).
Definition gltf.h:61
int normal_texture
indice de la texture ou -1.
Definition gltf.h:77
float specular
modification de la reflexion speculaire des dielectriques ou pas (= 0)
Definition gltf.h:66
int transmission_texture
indice de la texture ou -1.
Definition gltf.h:78
float ior
indice de refraction des dielectriques ou pas (= 0)
Definition gltf.h:65
float thickness
epaisseur des surfaces transparentes
Definition gltf.h:68
int specular_color_texture
indice de la texture ou -1.
Definition gltf.h:80
float metallic
metallic / dielectrique.
Definition gltf.h:62
int specular_texture
indice de la texture ou -1.
Definition gltf.h:79
Color color
base color.
Definition gltf.h:60
int occlusion_texture
indice de la texture ou -1. //
Definition gltf.h:76
void bounds(Point &pmin, Point &pmax) const
calcule les points extremes de la scene, utile pour regler un orbiter.
Definition gltf.cpp:891
std::vector< GLTFMaterial > materials
matieres.
Definition gltf.h:153
std::vector< GLTFLight > lights
lumieres.
Definition gltf.h:154
std::vector< GLTFInstances > instances() const
regroupe les instances de chaque maillage.
Definition gltf.cpp:874
std::vector< GLTFNode > nodes
noeuds / position et orientation des maillages dans la scene.
Definition gltf.h:151
std::vector< GLTFMesh > meshes
ensemble de maillages.
Definition gltf.h:150
std::vector< GLTFCamera > cameras
cameras.
Definition gltf.h:155
representation d'un point 3d.
Definition vec.h:21
representation d'une transformation, une matrice 4x4, organisee par ligne / row major.
Definition mat.h:21