Skip to content

NEDJIMAbelgacem/Graphics_Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Graphics_Engine

This is a repository that contains the code for a hobby project I did to learn graphics programming. The code needs the Resources folder that I have locally to compile, I didn't think this code will be usable for other people so I didn't upload it.

Previous work :

Now it's time to showcase some of the things I made with it in no particular order.

1- Uncomplete project : 3D minesweeper

This is the latest thing I tried to make with my engine, It's incomplete but I got the important mecanisms to work (It doesn't have a UI yet) like raycasting for detecting which tile was pressed and making the camera rotate around the displayed globe. For now it's uses triangular tiles but I can use other tiling methods because of the way I create these tiles (I made an isosphere and subdivided each of it's triangle surfaces into 3 other triangles which is the same mecanism I can use for subdividing iteratively untill it forms a sphere, I hope that makes sense I guess). I will try to complete this if I get the time.

2- Getting model loading and multi-textured models to work

That was one of the best moment I experienced working with opengl. I got to integrate Asset Import Library (aka assip) to propoerlty load the model vertices, normals and the textures for the nanosuit model (from crysis). I made a simple .obj files loader before but it wasn't as cool because the .obj format doesn't do as much as what assimp offer. image

3- Simple water rendering, Perlin noise terrain generation and batch rendering :

In this I did a lot of things following Thinmatrix awesome tutorial videos which helped me a lot. The screenshot was from the time I was participating at google hashcode 2019 contest. The code contains some glitches like the white area you see at the bottom left of the image, but I think I fixed it after I took the screenshot (sorry I don't have many screenshots of my previous work, I sometimes don't even commit when I have to). The trees are batch randered using the same model. The text rendering is made using a .obj file for each caracter. image

4- Physics Based Rendering :

Here I tried to learn physics based rendering and how to use BRDF equation to make realistic materials, It wasn't good but an acceptable try I think (Some may even say that it's not physics based but I did my best to use the BRDF properly lol) image

5- Raymarching and simple geometry rendering:

I used signed distance functions to make a sphere and a torus and the compine them using the smoothing union operator and got reflections to work image

5- Mandelbox rendering :

Here I tried using some raymarching techniques to render 3D version of the most know fractal "Mandelbrot", The first one is named mandelbox and the second one is mandelbulb image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published