marsp0 / phong-software-renderer Goto Github PK
View Code? Open in Web Editor NEWsoftware renderer from scratch
software renderer from scratch
The Flat Rasterization does not have Z-Buffering and attribute interpolation. We should either remove it (there are a lot of visible artifacts when using it) or update it to support the above.
Add attribute interpolation (for now just color i guess). Add both linear
and perspective-correct
interpolation.
Add a Camera
that will be part of the Scene
. The camera should implement both perspective and orthographic projections, it should also implement the view matrix.
Add an action to build + test code in PRs
make shader-reflection
Move all the _ASSERT_TYPE functions into a single templated function. Add ability to pass additional error messages.
Add the below to the Model
class and allow the user to switch between them.
Add documentation to the current code + generate docs.
The Scene
should handle the input logic.
Instead of repeating the same vertex multiple times, we should store vertices once in a vector and use indices to retrieve the correct vertex data when necessary.
The rasterizer uses AABB to check which pixels to color. See what alternatives exist to not have to iterate over the entire AABB
Every object should return its object -> world matrix to the renderer.
Add a basic OBJ paraser that would be able to parse meshes/textures/light sources
Render overlay with
Now that world transform, camera transform and the projection matrix are in update the draw code to
We want to be able to construct a model and draw it in the renderer main loop.
Currently the matrix code has a couple of loops in it. Check if those will be a perf issue, i dont think so but still worth checking.
The scene parser works but is extremely ugly, refactor to avoid having 100 line functions
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.