Implementing a Soft Renderer for Learning CG.
Mostly coming from Muli3D, improved by my understanding. It is still a long and hard trip, but worthwhile.
Premake5 is used to build the project, so you need to download a Premake5 execuatable file and put it into the project root directory.
Next, open a command window and type the generating command, e.g.
premake5 vs2017
or
premake5 vs2015
(Currently only support Windows
platform, other platforms like OSX
and Linux
is still on the schedule.)
After executing the command "premake5 vs2017"
, you can find the Visual Studio
solution files at "$(ProjectRoot)/Workspace/vs2017/YwSoftRenderer.sln"
, open it with Visual Studio
and build the solution, all demo executable files are located at "$(ProjectRoot)/Binaries/"
.
- Math support.
- Base rasterization and rendering stuffs as Muli3D supported.
- Premake5 support.
-
Input
module. -
Stencil Buffer
support. -
State Block
optimize with pooling. -
Model Data Loading
module. -
Resource and IO
module. -
Texture Data Loading
module. - More
Basic
demos. - Basic
Shading with Light
demo (Blinn-Phong, Normal-Mapping). -
Triangle Shader
demo. -
PBR
demo. -
Alpha Blending
support. -
Alpha Test
support. -
Triangle Shader with Dynamic Vertex Generating
support. -
Material File
support. -
IBL
support. - New
PBR
demo. [Working on...] -
Linear Color Space
support. -
MSAA
support. -
Skeletal Animation
support. -
Scene Space Managment
module. -
Dynamic Shadow
demo. -
Triangle Subdivide
demo. -
Postprocess Effect
demo. -
Log
module. -
Low Level Memory Pool
support. -
Linux
support -
Mac OS X
support. -
Global Illumination
support. -
Raytracing Core and Raytracing Shader
support. -
Custom Shader Compiler and Runtime
support. - Something unknown...