Cleaning
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
A 3D streaming system is a system that progressively collects 3D data.
|
||||
The previous chapter voluntarily remained vague about what \emph{3D data} actually are.
|
||||
The previous chapter voluntarily remained vague about what _3D data_ actually are.
|
||||
This chapter presents in detail the 3D data we consider and how they are rendered.
|
||||
We also give insights about interaction and streaming by comparing the 3D setting to the video one.
|
||||
|
||||
== What is a 3D model?
|
||||
== What is a 3D model?<f:3d>
|
||||
|
||||
The 3D models we are interested in are sets of textured meshes, which can potentially be arranged in a scene graph.
|
||||
Such models can typically contain the following:
|
||||
|
||||
@@ -8,7 +8,7 @@ When it comes to 3D streaming systems, we need two kind of software.
|
||||
|
||||
=== JavaScript
|
||||
|
||||
#heading(level: 4, numbering: none)[THREE.js]
|
||||
==== THREE.js
|
||||
|
||||
On the web browser, it is now possible to perform 3D rendering by using WebGL.
|
||||
However, WebGL is very low level and it can be painful to write code, even to render a simple triangle.
|
||||
@@ -37,7 +37,7 @@ A snippet of the basic usage of these classes is given in @three-hello-world.
|
||||
caption: [A THREE.js _hello world_]
|
||||
)<three-hello-world>
|
||||
|
||||
#heading(level: 4, numbering: none)[Geometries]
|
||||
==== Geometries
|
||||
|
||||
Geometries are the classes that hold the vertices, texture coordinates, normals and faces.
|
||||
THREE.js proposes two classes for handling geometries:
|
||||
@@ -49,7 +49,7 @@ THREE.js proposes two classes for handling geometries:
|
||||
|
||||
In this section, we explain the specificities of Rust and why it is an adequate language for writing efficient native software safely.
|
||||
|
||||
#heading(level: 4, numbering: none)[Borrow checker]
|
||||
==== Borrow checker
|
||||
|
||||
Rust is a system programming language focused on safety.
|
||||
It is made to be efficient (and effectively has performances comparable to C // TODO \footnote{\url{https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust.html}} or C++\footnote{\url{https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust-gpp.html}})
|
||||
@@ -142,7 +142,7 @@ The borrow checker may seem like an enemy to newcomers because it often rejects
|
||||
It is probably for those reasons that Rust is the _most loved programming language_ according to the Stack Overflow
|
||||
Developer Survey // TODO in~\citeyear{so-survey-2016}, \citeyear{so-survey-2017}, \citeyear{so-survey-2018} and~\citeyear{so-survey-2019}.
|
||||
|
||||
#heading(level: 4, numbering: none)[Tooling]
|
||||
==== Tooling
|
||||
|
||||
Moreover, Rust comes with many programs that help developers.
|
||||
- #link("https://github.com/rust-lang/rust")[*`rustc`*] is the Rust compiler. It is comfortable due to the clarity and precise explanations of its error messages.
|
||||
@@ -152,7 +152,7 @@ Moreover, Rust comes with many programs that help developers.
|
||||
- #link("https://github.com/rust-lang/rustfmt")[*`rustfmt`*] auto formats code.
|
||||
- #link("https://github.com/rust-lang/rust-clippy")[*`clippy`*] is a linter that detects unidiomatic code and suggests modifications.
|
||||
|
||||
#heading(level: 4, numbering: none)[Glium]
|
||||
==== Glium
|
||||
|
||||
When we need to perform rendering for 3D content analysis or for evaluation, we use the #link("https://github.com/glium/glium")[*`glium`*] library.
|
||||
Glium has many advantages over using raw OpenGL calls.
|
||||
@@ -163,7 +163,7 @@ Its objectives are:
|
||||
- to be fast: the binary produced use optimized OpenGL functions calls;
|
||||
- to be compatible: glium seeks to support the latest versions of OpenGL functions and falls back to older functions if the most recent ones are not supported on the device.
|
||||
|
||||
#heading(level: 4, numbering: none)[Conclusion]
|
||||
==== Conclusion
|
||||
|
||||
In our work, many tasks will consist in 3D content analysis, reorganization, rendering and evaluation.
|
||||
Many of these tasks require long computations, lasting from hours to entire days.
|
||||
|
||||
Reference in New Issue
Block a user