Skip to content

A lightweight OBJ file renderer written in C# using the SFML library.

Notifications You must be signed in to change notification settings

the-man-w-laughs/Obj-Renderer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OBJ File Renderer

Project Image

A lightweight OBJ file renderer written in C# using the SFML library. This project includes XUnit tests, an SFML-based presentation, manual matrix transformation capabilities, and dependency injection for extensibility. It also features a manual OBJ file parser for maximum control.

Features

  • Rendering of OBJ files
  • Manually parsed OBJ files
  • XUnit tests for code validation
  • SFML-based presentation for 3D visualization
  • Manual matrix transformation for manipulating models
  • Camera Position Adjustment
  • Lambertian light distribution model
  • Light Position Adjustment
  • Z-Buffer
  • Flat Shadowing
  • Dependency injection for flexibility and modularity

Manual Matrix Transformation

For manual matrix transformations and a deeper understanding of coordinate systems and transformations, you can refer to the LearnOpenGL tutorial.

Camera Position Adjustment

This application also provides users with the ability to dynamically change the camera position.
For a deeper understanding of camera positioning and the spherical coordinate system, you can refer to the Wikipedia article on Spherical Coordinate Systems.

Flat Shadowing

If you'd like to delve deeper into the concept and implementation of flat shadowing, you can watch this informative video tutorial: Flat Shadowing Tutorial.

To run this project, you need to have the following prerequisites installed:

  • .NET Core SDK
  • SFML.NET