Detail of project Visionaray
This page details the project Visionaray
1. Presentation
The project Visionaray is developed by SEARIS. It is a cross platform ray tracing library. The codes are based on language C++.
The interesting part for us is : visionaray/include/visionaray/math/ (github.com/szellmann/visionaray/tree/master/include/visionaray/math). It detail the mathematical tools.
2. General Structure
The repository consist of the following folders :
-
include/visionaray : regroups the heart of code (tools for traiting surfaces, create ray … )
-
include/visionaray/math : regroups the mathematical tools (Most important part for the internship)
-
src/ :
3. Interseption of ray
The relevant part for this work is the script intercept.h (in include/visionaray/math/), wich details when a ray (represented by an origin \(O\) point and directional vector \(\mathbf{v}\)) is intercepted by a geometrical object in 3D space.
See Visionaray Method for more details on the theoretical geometry. In this section some algebraic conditions should be met in order to verify whether there interception or not.
Cases of interception :
-
A ray with segment (for geometrical theory see Interception by segment)
-
A ray with triangle (see Interception by triangle)
-
A ray with sphere (see Interception by sphere)
-
A ray with plan (see Interception by plan)
The code of visionarray doesn’t take into account ray direction. The intersection is not with semi-right but with right. In geometrical tools, we take into account the sens of ray. |
It introduce the class hit_record<basic_ray<T>, ….> that represent the intersection or not of a ray and geometrical object, it is composed by :
-
mask_type hit : 1 if it intersects, 0 if not
-
prim_id : represents the type of primitive of geometrical object
-
geom_id : represents the type of geometrical object
-
some arguments usefull to calculate the intersection or not
The function hit_record<basic_ray<T>, basic_aabb<U>> intersect calculates the conditon of intersection and returns a corresponding hit_record.
References
-
[Incropera] Fundamentals of Heat and Mass Transfer, Theodore L. Bergman, Adrienne S. Lavine, Frank P. Incropera, David P. DeWitt, Wiley.
-
[Kumaran1996] Kumaran, M. Kumar, Heat, Air and Moisture Transfer in Insulated Envelope Parts, Final Report, Volume 3.
-
[Ozturk] Abdurrahman Ozturk, Implementation of View Factor Model and Radiative Heat Transfer Model in MOOSE. University of South Carolina, Download PDF
-
[Modest] M.F. Modest, Radiative Heat Transfet. Elsevier Science, 2013, ISBN 9780123869906, Chapter 8
-
[Visionray] Visionaray: A Cross-Platform Ray Tracing Template Library, Zellmann, Stefan and Wickeroth, Daniel and Lang, Ulrich, Proceedings of the 10th Workshop on Software Engineering and Architectures for Realtime Interactive Systems (IEEE SEARIS 2017), 2017
-
[Visionary::github] Visionaray, Zellman, github.com/szellmann/visionaray
-
Méthode Numérique pour le EDP, Christophe Prudhomme, feelpp.github.io/csmi-edp/#/, Programmation de le méthode élément fini, Formule de quadrature
-
CEMOSIS, CEMOSIS, www.cemosis.fr/
-
L’Accord de Paris, unfccc.int/fr/process-and-meetings/the-paris-agreement/l-accord-de-paris, UNFCC Sites and platforms
-
[Infographie] Énergie : quel secteur d’activité consomme le plus ?, www.gazprom-energy.fr/gazmagazine/2017/09/consommation-energetique-secteur-activite/, Gazprom Energy
-
L’électricité dans le secteur résidentiel, www.edf.fr/groupe-edf/espaces-dedies/l-energie-de-a-a-z/tout-sur-l-energie/le-developpement-durable/l-electricite-dans-le-secteur-residentiel, EDF
-
Synapse Concept, www.synapse-concept.com/
-
4fastsim-ibat, www.cemosis.fr/projects/4fastsim-ibat/
-
Feel++ Docs, docs.feelpp.org/feelpp/index.html