Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3D Object Viewer (Learning Project)

A simple 3D object viewer implemented in C++ using SDL2. This project was created as a learning exercise to understand 3D graphics programming concepts like perspective projection, quaternion rotation, and basic rendering pipelines.

👀 Preview

Simple Object Viewer

Description

This project implements a basic 3D object viewer with the following features:

  • Basic perspective projection
  • Quaternion-based camera rotation
  • Wireframe rendering
  • Basic object loading
  • Simple player/camera movement

Note: This is a learning project and not meant for production use. It lacks many features of a proper 3D viewer (like proper culling, efficient rendering, texture support, etc.) but serves as a practical way to understand 3D graphics fundamentals.

Dependencies

  • SDL2
  • tiny obj loader Github Repo
  • C++11 or higher
  • Make

Installing Dependencies

macOS

brew install sdl2

Building

  1. Clone the repository:
git clone https://github.com/AlexanderDotEXE/SimpleObjViewer.git
cd SimpleObjViewer
  1. Create build directory:
mkdir build
  1. Build the project:
make

Usage

After building, run the executable from the project root:

./build/main

Controls

  • WASD: Move camera
  • Arrow keys: Look around

Learning Resources

If you're interested in learning more about 3D graphics programming, here are some topics this project explores:

  • Perspective projection
  • Quaternion rotations
  • Vector mathematics
  • Basic rendering pipeline
  • Camera transformations

License

MIT License: Use my Software however you want, just give credit where credit is due!

Acknowledgments

This project uses quaternion rotation code adapted from imadr.me/rotations-with-quaternions/

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages