Real Time 3D Visualization
graduate course, Jean Monnet University, 2023
This repository contains the results of practical works for the Real Time 3D Visualization class in Jean Monnet University, lectured by Professor Philippe Colantoni. The first aim of this course is to understand the modern GPU architectures and capabilities. The second is to understand and apply the basic and advanced techniques of real-time 3D rendering in the context of XR. A focus will be placed on the web technologies (WebGL, WebVR and WebXR) that will be used to implement these techniques.
Path | Description |
---|---|
Primitives | Practical Work 1: Tasks 1 + 2 |
Custom Geometry | Practical Work 1: Task 3 |
Cubeman | Practical Work 1: Tasks 4 + 5 |
Cornell Box | Practical Work 2 |
Color Cloud | Practical Work 3: Sprint project |
Practical Work 1: Tasks 1 + 2 Primitives, Cameras and Controls
in the first task we were asked to create a scene that contains on the same plane (XY) all the primitives available in three.js. next, reproduce these primitives 3 times on the Z axis by modifying at least one parameter of their geometry. next, write a function allowing to create marks (cross based on segments) on the ground of a 3D environment that fade away as it goes far from the primitives. in the second task we were asked in the same web page, display the previous scene twice: one scene with an orthographic camera and second one with a perspective camera. next, use the different control techniques available in three.js to interact with these 2 types of cameras.
Practical Work 1: Task 3 Custom Geometry and Texture coordinates
for the third task we were asked to consider the 3D scene with 3 boxes in a given file and make a square hole on each face of these box. For this we must modify the geometry structure of each face in the custom geometry object, faces which are now defined as a set of 4 rectangles (which correspond to 8 triangles) instead of one initially used (which was corresponding to 2 triangles). To keep the textures correctly mapped we also must assign correct values to the texture coordinates associated to each vertex.
Practical Work 1: Task 4 + 5 Hierarchical transformations and VR experimentation
for the third task we were asked to build a scene allowing to simulate in 3D the movements of Cubeman. Your 3D model must be identical, and it must be able to move with the same degrees of freedom. Animate this model and transform the scene in a VR experience.
Acknowledgements
parts of the code borrowed from code given in class and from three.js documantation.