https://github.com/klanting/ua-2023-spring-computer-graphics
This Project was made for the course 'Computer Graphics' at the University of Antwerp. This project supports rendering of various objects, lighting, shadowing, ...
https://github.com/klanting/ua-2023-spring-computer-graphics
graphics-engine
Last synced: about 1 year ago
JSON representation
This Project was made for the course 'Computer Graphics' at the University of Antwerp. This project supports rendering of various objects, lighting, shadowing, ...
- Host: GitHub
- URL: https://github.com/klanting/ua-2023-spring-computer-graphics
- Owner: klanting
- Created: 2024-08-03T22:04:31.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-02T21:41:42.000Z (over 1 year ago)
- Last Synced: 2025-01-25T14:24:11.139Z (over 1 year ago)
- Topics: graphics-engine
- Language: C++
- Homepage:
- Size: 372 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Computer Graphics
[](https://www.codefactor.io/repository/github/klanting/ua-2023-spring-computer-graphics)[](https://app.codacy.com/gh/klanting/UA-2023-Spring-Computer-Graphics/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
## Supported Functionality
L-systems
### 2D L-systems
- Generation of 2D L-systems can be done based on L-system rules
- the use of brackets is possible
- stochastic randomization can be applied
### 3D L-systems
- Generation of 3D L-systems can be done based on L-system rules
- the use of brackets is possible
Rendering
3D objects can be rendered to a 2D image/surface.
### Projection
3D objects can be projected to a 2D surface as an image.
### Triangulation
Able to convert a Face having n (>2) amount of points into multiple triangle faces.
### Z-buffering (lines)
When using objects, only consisting of wireframes, this engine will provide Z-buffering support for these lines.
### Z-buffering (triangles)
Support of Z-buffering of triangles.
Platonic Bodies
### Platonic Bodies
The engine has a build in tool to create some basic 3D shapes:
- Cube
- Icosahedron
- Octahedron
- Dodecahedron
- Cone
- Cylinder
- Sphere
- Torus
- Tetrahedron
- MobiusStrip
- Umbilical
- BuckyBall
- MengerSponge
### 3D fractals
Able to create Fractals given a platonic shape.
View Frustum
### View Frustum
When the camera is not able to cover the entire shape, it will cut of some parts, this cutting of is referred to as
View Frustum.
Lighting
### Ambient light
The general color the object has when not applying external light.
### Diffuse light (infinity)
Light provided from an object infinity far away, like sunlight.
### Diffuse light (point)
Light coming from a lamp.
### Specular light
Light that comes from the reflection on an object
Shadows
### Shadows
be able to show shadows on places of the object where light is absent
Textures
### Texture mapping
Map texture on the object using the random surface approach
### UV-coordinates
Make Spheres more realistic when light is present
### Cube mapping
Perform cube mapping
### spheres and cylinders
Make a wireframe of an object, but as wires and corners have very thick cylinders and spheres