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.