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

https://github.com/haxpor/sr_st

Software renderer studying repository
https://github.com/haxpor/sr_st

cpp software-renderer studying

Last synced: about 1 month ago
JSON representation

Software renderer studying repository

Awesome Lists containing this project

README

          

# sr_st

Software Renderer Studying repo.

Target support is `gcc` first then later will add support for `MSVC`.
For now, the former support is there.

Various testbeds are inside `apps`.
In each directory, it's self-contained applications using Makefile to build.
Just go there, and hit `make`.

# Common

Inside `common/` directory, it's common code consisting of the following systems

* `Platform` - platform related utility and macros
* `FrameBuffer` - act as holder for pixels before writing into image file
* `Graphics` - main graphics functions
* `GraphicsUtil` - utility graphics functions
* `Logger` - logging utlity to standard output, or standard error output
* `MathUtil` - math related utility functions i.e. random integer or floating-point number
* `ObjLoader` - `.obj` file loader
* `Profile` - profiler measuring executable time of function or code conveniently
* `TGAImage` - `.tga` image writter
* `Types` - supports essential math structure i.e. `Vec2i` for integer, `Vec2f` for floating-point type, etc

# Plan

Each program in its separate directory inside `apps/` i.e. `apps/wireframe_renderer/` represents validation and testbed
for one or more of software renderer's technique. Whenever it matures, it will be added into the common
code inside `common/` gradually.

See [TODO](TODO.md) for roadmap and TODO.

# License

MIT, Wasin Thonkaew
It will be awesome if you benefit from using any part of this project. Please let me know, it will
make me happy.