vendredi 23 septembre 2016

3d rendering engine - Raytracing


Always in the way of my school, we had to create a big team project because of allowed us to search a internship in a company.

In a team of 4 students, we have choose to develop a 3d rendering engine, using the raytracing technic. It's use for generate realistic image by reproduce the behavior of light. We had to create the engine from scratch, so, we have choose to develop it in C with the SDL2 library.
This is the list of features that we implemented:

- The program run in multithread.
- We have develop our shader system, can be blend like the Photoshop layers.
- We support Diffuse, Specular shaders..
- Reflection
- Refraction, according to the Snell-Descartes law.
- Primitif rendering: Sphere, Cube, Cone, Cylinder..
- 3d Model rendering: Wavefront .obj parsing, composed with triangles.
- Textures (.jpg, .png..)
- Procedural Textures (Damier, Perlin noise..)
- Normal map rendering.
- Colored shadows: if the light passes though a transparent object, then the colors are projected, like a stained glass window.
- Manage scenes contents with tree system. (Object can be child of another object, relative position etc..)
- Hitbox system for optimisation, ray can ignore some objects that are not in the trajectory.
- Bitmap (BMP) export.
- Live scenes edit with a GUI.

You can found the source code here: http://github.com/Chr0nos/rt

mercredi 15 juin 2016

Car Gameplay Prototype

The idea was simple, developed a car gameplay. In the reality, i have see that we need to takes some points of consideration: In a car game like Need For Speed, the rotation of a car depending of her speed. 
So, firstly, in my script, i'm changing in real time the "potential" torque.
Secondly, i'm changing the damping, because the wheels hang greater or lesser depending on their orientation, which allows to manage skids for example.

vendredi 27 mai 2016

Global Game Jam 2016 !

During the Global Game Jam 2016, in the Cité des Sciences of Paris, we have create a team of 6 persons (3 developers, 2 artists, 1 sound-designer) for develop a game in 48 hours.

The theme of this year was "The Ritual". This is a description of our game : 
Once upon a time there was Sun, a bright ball of fire! And then there was Earth, a frozen rock floating around in empty space! And then Sun, being lonely, shined on Earth which created Life. Life started worshipping Sun, which made Sun happy. Happy Sun shined brighter and brighter, warming the Earth. Earth, noticing it was getting warmer and warmer, knew it had to act. Earth created You and Him to stop Sun from getting too happy but at the same time keep him just happy enough so Earth could enjoy a healthy amount of Sun. And so the ‘Ritual Of Just Enough Worship’ was created, an endless cycle of turning Life into happy Worshippers or unclean Heathens. (ps, heathens and other features might not be implemented)
The game is built on an in-house engine, using SDL2, OpenAL and Spriter. It was a amazing experience!  You can download the game (for windows) here: http://globalgamejam.org/2016/games/twinkle-twinkle-little-star

3D wireframe engine



For my first graphic project at my school (42), i developed in C a little 3d wireframe engine. The goal of this project was to create a graphic representation of simple maps (save into text file). I choosed to use perspective projection formula for create a complete 3d representation.

For this project, we don't have the choose of the library, so students use a lib created by the school, which has only simple low level functions (put pixel and.. nothing other).

Source code available here: https://github.com/Hantlowt/fdf

jeudi 26 mai 2016

Raycasting engine - Wolfenstein 3d like

At the time the 3d engines in the video game did not exist, a technique was beginning to emerge, the raycasting. It allowed simulate 3d basic, limited display cube and horizontal planes.
One of my school projects was to reproduce this technique. I am amused by this opportunity to add textures and a skybox. The project uses a library from the school.
Find the source code here: https://github.com/Hantlowt/wolf3d

mercredi 25 mai 2016

Fractal

Little 42's project for explore some famous fractals (with movement, zoom with dynamic iteration, and multiple colors) ! (Mandelbrot, Julia, BurningShip ..)