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
- Host: GitHub
- URL: https://github.com/haxpor/sr_st
- Owner: haxpor
- Created: 2019-12-14T09:39:48.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-25T16:04:06.000Z (over 6 years ago)
- Last Synced: 2025-01-20T07:35:22.159Z (over 1 year ago)
- Topics: cpp, software-renderer, studying
- Language: C++
- Size: 1.06 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.