An open API service indexing awesome lists of open source software.

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, ...

Awesome Lists containing this project

README

          

# Computer Graphics

[![CodeFactor](https://www.codefactor.io/repository/github/klanting/ua-2023-spring-computer-graphics/badge)](https://www.codefactor.io/repository/github/klanting/ua-2023-spring-computer-graphics)[![Codacy Badge](https://app.codacy.com/project/badge/Grade/8b06cd245c4d47e0940dd264d78df07b)](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