Add documentation
This commit is contained in:
parent
58061786ff
commit
92953e9d7c
BIN
docs/20170609_dtrenderer_demo.gif
Normal file
BIN
docs/20170609_dtrenderer_demo.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.6 MiB |
42
readme.md
Normal file
42
readme.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# DTRenderer
|
||||||
|
DTRenderer is an attempt to build a simple software renderer from the ground up. The main goal is to build an intuitive understanding of graphics mathematics, rendering pipeline and core concepts. It runs as a Win32 program with minimal dependencies.
|
||||||
|
|
||||||
|
![DTRenderer Demo](docs/20170609_dtrenderer_demo.gif)
|
||||||
|
|
||||||
|
The following resouces have been largely informative to my understanding of the software renderer,
|
||||||
|
* [Handmade Hero](http://handmadehero.org/)
|
||||||
|
* [Optimising Software Occclusion Articles](https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/)
|
||||||
|
* [TinyRenderer](https://github.com/ssloy/tinyrenderer)
|
||||||
|
|
||||||
|
## Building
|
||||||
|
DTRenderer is a Win32 program and can be compiled with **build.bat** which requires Microsoft Visual Studio **cl.exe** to be in the Windows path. It is originally built using Visual Studio 2017, older versions are still somewhat compatible, albeit there are some switches which have been renamed in the 2017 edition.
|
||||||
|
|
||||||
|
The Visual Studio solution file is provided as a thin wrapper for interfacing with the Visual Studio debugger and **can not be used to compile.**
|
||||||
|
|
||||||
|
## Milestones
|
||||||
|
* 2D Software Rendering
|
||||||
|
* Alpha Blending
|
||||||
|
* Bilinear Filtering
|
||||||
|
* Correct Color Space Pipeline _(SRGB <-> Linear)_
|
||||||
|
* Rasterisation
|
||||||
|
* Texture Mapping
|
||||||
|
* Translation, Rotation, Scale
|
||||||
|
* 3D Model Rendering
|
||||||
|
* Full Bright, Flat, Gouraud Lighting
|
||||||
|
* Orthographic, Perspective Projections
|
||||||
|
* Translation, Rotation, Scale
|
||||||
|
* Custom Wavefront Obj Loader _(minimal subset)_
|
||||||
|
* Hot-Reloadable DLL for Renderer Code _(taken from Handmade Hero)_
|
||||||
|
* SIMD "Optimisation" _(with a grain of salt, tried to with some % improvements)_
|
||||||
|
|
||||||
|
## Libraries
|
||||||
|
The external libraries that have been used,
|
||||||
|
* STB Single File Libraries
|
||||||
|
* STB Image _(for image loading)_
|
||||||
|
* STB TrueType (and RectPack) _(for creating bitmap font)_
|
||||||
|
|
||||||
|
### Debugging Libraries
|
||||||
|
These libraries are non-essential and used for validating results and debugging the program.
|
||||||
|
* STB ImageWrite _(for debugging renders, TrueType output etc.)_
|
||||||
|
* EasyProfiler _(for profiling)_
|
||||||
|
* TinyRenderer _(for comparing data output for validity of results)_
|
@ -39,7 +39,7 @@ REM wd4100 unused argument parameters
|
|||||||
REM wd4201 nonstandard extension used: nameless struct/union
|
REM wd4201 nonstandard extension used: nameless struct/union
|
||||||
REM wd4189 local variable is initialised but not referenced
|
REM wd4189 local variable is initialised but not referenced
|
||||||
REM wd4505 unreferenced local function not used will be removed
|
REM wd4505 unreferenced local function not used will be removed
|
||||||
set CompileFlags=-EHsc -GR- -Oi -MT -Z7 -W4 -wd4100 -wd4201 -wd4189 -wd4505 -Od -FAsc /I..\src\external\
|
set CompileFlags=-EHsc -GR- -Oi -MT -Z7 -W4 -wd4100 -wd4201 -wd4189 -wd4505 -O2 -FAsc /I..\src\external\
|
||||||
set DLLFlags=/Fm%ProjectName% /Fo%ProjectName% /Fa%ProjectName% /Fe%ProjectName%
|
set DLLFlags=/Fm%ProjectName% /Fo%ProjectName% /Fa%ProjectName% /Fe%ProjectName%
|
||||||
set Win32Flags=/FmWin32DTRenderer /FeWin32DTRenderer
|
set Win32Flags=/FmWin32DTRenderer /FeWin32DTRenderer
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user