Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | scene: add a way to remove entities and fix the clearscene routine. | rodri | 2024-04-03 | 2 | -1/+12 |
| | |||||
* | add trivial nil checks to some of the cleanup procedures. | rodri | 2024-04-03 | 2 | -1/+10 |
| | |||||
* | scene: implement full cleanup procedures. | rodri | 2024-04-03 | 2 | -2/+22 |
| | |||||
* | scene: fix uninitialized nents field. | rodri | 2024-04-03 | 1 | -0/+1 |
| | |||||
* | viewport: add a way to access front and back buffers. | rodri | 2024-04-01 | 3 | -2/+10 |
| | |||||
* | can't always rely on screen being there. | rodri | 2024-04-01 | 1 | -1/+1 |
| | |||||
* | pass a Viewport in the Renderjob instead of a fb. | rodri | 2024-03-26 | 4 | -6/+15 |
| | | | | | do the frame buffer clearing and swapping as part of the rendering process, not within shootcamera. | ||||
* | implement a (partially) concurrent pipeline. | rodri | 2024-03-25 | 4 | -134/+234 |
| | |||||
* | use the new libgeometry berp routines. add a frame counter to the camstats. | rodri | 2024-03-21 | 5 | -19/+16 |
| | |||||
* | pass material properties to the fshader. | rodri | 2024-03-06 | 2 | -1/+3 |
| | | | | | this way users can refer to per-surface material features when shading pixels. | ||||
* | make the fshader return a Color instead of a Memimage. clean things up. | rodri | 2024-03-06 | 3 | -30/+41 |
| | |||||
* | add a texture sampler with nearest and bilinear routines. | rodri | 2024-03-06 | 4 | -42/+191 |
| | | | | | | pass the material reference along with the vertices. also implemented back-face culling, but it's disabled for now. | ||||
* | add user-defined vertex attributes (varyings) and improve the interpolation ↵ | rodri | 2024-03-03 | 5 | -72/+232 |
| | | | | code. | ||||
* | have separate routines for drawing and memdrawing. | rodri | 2024-02-27 | 4 | -3/+34 |
| | |||||
* | interpolate every vertex attribute when clipping and during rasterization. | rodri | 2024-02-25 | 2 | -23/+43 |
| | | | | added parameters necessary to implement the Phong shading model. | ||||
* | add initial support for OBJMaterial properties. | rodri | 2024-02-21 | 3 | -10/+39 |
| | |||||
* | implement general polygon fan triangulation. | rodri | 2024-02-15 | 1 | -61/+48 |
| | |||||
* | pass an entire entity to the shader unit. fix a bug in cliptriangle. | rodri | 2024-02-14 | 2 | -26/+22 |
| | | | | | | | | | | an entity is passed instead of a model so we can access its frame of reference to perform the model-to-world transformation. the bug in cliptriangle was due to sd[01] being declared as static which, when rendering multiple entities, was causing d0 = d1, which led to division-by-zero. | ||||
* | lay out the grounds for a scene renderer. | rodri | 2024-02-13 | 6 | -137/+234 |
| | | | | | | also fixed an issue with cliptriangle() where an entire tri would get discarded if all its vertices were outside the frustum. | ||||
* | completed homogeneous clipping procedure. | rodri | 2024-02-12 | 2 | -39/+101 |
| | |||||
* | initial clipping implementation. (not fully working yet) | rodri | 2024-02-10 | 1 | -67/+53 |
| | |||||
* | load XRGB32 textures. | rodri | 2024-02-08 | 1 | -6/+11 |
| | |||||
* | implement perspective-correct attribute interpolation. | rodri | 2024-02-07 | 1 | -13/+146 |
| | | | | | | | | | also committing unfinished code for the clipping algorithm. references: - Kok-Lim Low, “Perspective-Correct Interpolation”, 2002 - https://www.scratchapixel.com/lessons/3d-basic-rendering/rasterization-practical-implementation/perspective-correct-interpolation-vertex-attributes.html - https://www.rose-hulman.edu/class/csse/csse351-abet/m10/triangle_fill.pdf, p. 23 | ||||
* | document part of the pipeline. prepare the grounds for triangle clipping. | rodri | 2024-02-03 | 2 | -37/+82 |
| | |||||
* | only create existing indices during quad triangulation. | rodri | 2024-02-01 | 1 | -24/+32 |
| | |||||
* | improve coordinate transformations and fix projections. | rodri | 2024-01-31 | 5 | -93/+42 |
| | | | | | also got rid of Deco. there's no point in having that, just deal with image(6) files. | ||||
* | make the vertex shader process actual vertices. | rodri | 2024-01-30 | 3 | -8/+5 |
| | |||||
* | update readme. | rodri | 2024-01-30 | 1 | -0/+3 |
| | |||||
* | import the new renderer and clean things up. | rodri | 2024-01-30 | 13 | -225/+895 |
| | | | | | | | | | | | | i integrated the renderer i've been developing on the tinyrend repo and got rid of a bunch of stuff that's no longer necessary. also began structuring things to fit the new interface i have in mind. there are still some artifacts with the projection xforms that cause issues with clipping and division by zero. | ||||
* | use the system-wide libgeometry. | rodri | 2024-01-26 | 1 | -3/+1 |
| | |||||
* | add a line clipping procedure based on the Liang-Barsky algorithm. (thanks ↵ | rodri | 2021-07-18 | 2 | -1/+64 |
| | | | | jmi2k!) | ||||
* | move the edge function out into libgeometry. | rodri | 2020-07-05 | 1 | -30/+0 |
| | |||||
* | bring flat triangle rasterization back, with some goodies for future shading ↵ | rodri | 2020-06-29 | 4 | -1/+88 |
| | | | | work. add uv coordinates to the vertex. | ||||
* | transcribe macros into actual functions. remove unused memdraw code. | rodri | 2020-04-28 | 2 | -37/+55 |
| | |||||
* | standalone version release. | rodri | 2020-04-17 | 9 | -0/+904 |