GithubHelp home page GithubHelp logo

argon3drenderer's Introduction

Argon3DRenderer

Argon is a 3D Software Renderer written in C++ and using SDL2. upng library was used to decode png images and get them into byte buffers.

Argon3D reads in a .obj file with an optional png texture and renders the 3D mesh on the screen. The mesh can be rotated, translated and scaled through the WASD and Arrow Keys.

The different rendering modes supported are shown in the gif below

Usage

Currently the .obj filepath needs to be supplied in the App.cpp file.

Options

  1. Press 1 to render the vertices and the wireframe.
  2. Press 2 to render the wireframe only.
  3. Press 3 to render the flat shaded model.
  4. Press 4 to render the flat shaded model with wireframe.
  5. Press 5 to render the textured model.
  6. Press 6 to render the textured model with wireframe.

The mesh can be rotated, translated and scaled through the WASD and Arrow Keys.

Concepts learnt and applied in this project

  • Vector and Matrix Transformations in 3D graphics
  • Line Drawing and Rasterization algorithms
  • Reading in OBJ files and using the data to render meshes
  • Projection Matrices
  • Light and Flat Shading
  • Culling and clipping of polygons: Backface culling and frustum clipping
  • Texture Mapping with PNG files
  • Perspective Correct Interpolation
  • Z-Buffer for hidden surface detection

argon3drenderer's People

Contributors

h0mtanks avatar

Stargazers

Prashant avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.