|
gKit2 light
|
bvh 2 niveaux et instances, charge un fichier gltf... + utilitaires... More...
#include <random>#include <algorithm>#include <vector>#include <cfloat>#include "vec.h"#include "mat.h"#include "color.h"#include "image.h"#include "image_io.h"#include "orbiter.h"#include "gltf.h"Go to the source code of this file.
Classes | |
| struct | Ray |
| rayon. More... | |
| struct | Hit |
| intersection avec un triangle. More... | |
| struct | BBoxHit |
| intersection avec une boite / un englobant. More... | |
| struct | BBox |
| boite englobante. More... | |
| struct | Node |
| construction de l'arbre / BVH. More... | |
| struct | BVHT< T > |
| bvh parametre par le type des primitives, cf triangle et instance... More... | |
| struct | Triangle |
| triangle pour le bvh, cf fonction bounds() et intersect(). More... | |
| struct | Instance |
| instance pour le bvh, cf fonctions bounds() et intersect(). More... | |
| struct | Brdf |
| regroupe tous les parametres de la matiere du point d'intersection. More... | |
| struct | Sampler |
| generation de nombres aleatoires entre 0 et 1. More... | |
Typedefs | |
| typedef BVHT< Triangle > | BVH |
| typedef BVHT< Triangle > | BLAS |
| typedef BVHT< Instance > | TLAS |
Functions | |
| Node | make_node (const BBox &bounds, const int left, const int right) |
| creation d'un noeud interne. More... | |
| Node | make_leaf (const BBox &bounds, const int begin, const int end) |
| creation d'une feuille. More... | |
| Point | hit_position (const Hit &hit, const Ray &ray) |
| renvoie la position du point d'intersection sur le rayon. More... | |
| bool | has_normals (const Hit &hit, const GLTFScene &scene) |
| verifie la presence des normales par sommet. More... | |
| Vector | hit_normal (const Hit &hit, const GLTFScene &scene) |
| renvoie la normale interpolee au point d'intersection dans le repere de la scene. More... | |
| Vector | triangle_normal (const Hit &hit, const GLTFScene &scene) |
| normale geometrique du triangle, si necessaire... ie si has_normals(hit, scene) == false... More... | |
| bool | has_texcoords (const Hit &hit, const GLTFScene &scene) |
| verifie la presence des coordonnees de texture... More... | |
| vec2 | hit_texcoords (const Hit &hit, const GLTFScene &scene) |
| renvoie les coordonnees de texture du point d'intersection, suppose que has_texcoords(hit, scene) == true More... | |
| Color | sample_texture (const vec2 &t, const ImageData &texture) |
| const GLTFMaterial & | hit_material (const Hit &hit, const GLTFScene &scene) |
| renvoie la matiere du point d'intersection. More... | |
| Color | hit_color (const Hit &hit, const GLTFScene &scene) |
| renvoie la couleur de base de la matiere du point d'intersection. More... | |
| Brdf | hit_brdf (const Hit &hit, const GLTFScene &scene, const std::vector< ImageData > &textures) |
| evalue les parametres pbr (couleur, metal, rugosite) de la matiere au point d'intersection, en fonction des textures aussi, si necessaire More... | |
| int | main (int argc, char **argv) |
bvh 2 niveaux et instances, charge un fichier gltf... + utilitaires...
Definition in file tuto_bvh2_gltf_brdf.cpp.
| struct Brdf |
regroupe tous les parametres de la matiere du point d'intersection.
Definition at line 534 of file tuto_bvh2_gltf_brdf.cpp.
| Class Members | ||
|---|---|---|
| Vector | n |
normale interpolee du point d'intersection |
| Color | diffuse | color. |
| Color | F0 | fresnel. |
| Color | emission | emission pour les sources de lumieres ou pas (= noir). |
| float | metallic | metallic / dielectrique. |
| float | alpha | rugosite de la micro surface. |
| float | transmission | transmission, transparent ou pas (= 0) |
creation d'un noeud interne.
Definition at line 114 of file tuto_bvh2_gltf_brdf.cpp.
creation d'une feuille.
Definition at line 122 of file tuto_bvh2_gltf_brdf.cpp.
renvoie la position du point d'intersection sur le rayon.
Definition at line 365 of file tuto_bvh2_gltf_brdf.cpp.
verifie la presence des normales par sommet.
Definition at line 368 of file tuto_bvh2_gltf_brdf.cpp.
renvoie la normale interpolee au point d'intersection dans le repere de la scene.
Definition at line 378 of file tuto_bvh2_gltf_brdf.cpp.
normale geometrique du triangle, si necessaire... ie si has_normals(hit, scene) == false...
Definition at line 413 of file tuto_bvh2_gltf_brdf.cpp.
verifie la presence des coordonnees de texture...
Definition at line 447 of file tuto_bvh2_gltf_brdf.cpp.
renvoie les coordonnees de texture du point d'intersection, suppose que has_texcoords(hit, scene) == true
Definition at line 457 of file tuto_bvh2_gltf_brdf.cpp.
renvoie la couleur d'un pixel d'une texture/image chargee par read_gltf_images() todo : interpolation bilineaire des texels autour de t...
Definition at line 486 of file tuto_bvh2_gltf_brdf.cpp.
| const GLTFMaterial& hit_material | ( | const Hit & | hit, |
| const GLTFScene & | scene | ||
| ) |
renvoie la matiere du point d'intersection.
Definition at line 513 of file tuto_bvh2_gltf_brdf.cpp.
renvoie la couleur de base de la matiere du point d'intersection.
Definition at line 527 of file tuto_bvh2_gltf_brdf.cpp.
| Brdf hit_brdf | ( | const Hit & | hit, |
| const GLTFScene & | scene, | ||
| const std::vector< ImageData > & | textures | ||
| ) |
evalue les parametres pbr (couleur, metal, rugosite) de la matiere au point d'intersection, en fonction des textures aussi, si necessaire
Definition at line 548 of file tuto_bvh2_gltf_brdf.cpp.