summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* scene: add a way to remove entities and fix the clearscene routine.rodri2024-04-032-1/+12
|
* add trivial nil checks to some of the cleanup procedures.rodri2024-04-032-1/+10
|
* scene: implement full cleanup procedures.rodri2024-04-032-2/+22
|
* scene: fix uninitialized nents field.rodri2024-04-031-0/+1
|
* viewport: add a way to access front and back buffers.rodri2024-04-013-2/+10
|
* can't always rely on screen being there.rodri2024-04-011-1/+1
|
* pass a Viewport in the Renderjob instead of a fb.rodri2024-03-264-6/+15
| | | | | do the frame buffer clearing and swapping as part of the rendering process, not within shootcamera.
* implement a (partially) concurrent pipeline.rodri2024-03-254-134/+234
|
* use the new libgeometry berp routines. add a frame counter to the camstats.rodri2024-03-215-19/+16
|
* pass material properties to the fshader.rodri2024-03-062-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.rodri2024-03-063-30/+41
|
* add a texture sampler with nearest and bilinear routines.rodri2024-03-064-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 ↵rodri2024-03-035-72/+232
| | | | code.
* have separate routines for drawing and memdrawing.rodri2024-02-274-3/+34
|
* interpolate every vertex attribute when clipping and during rasterization.rodri2024-02-252-23/+43
| | | | added parameters necessary to implement the Phong shading model.
* add initial support for OBJMaterial properties.rodri2024-02-213-10/+39
|
* implement general polygon fan triangulation.rodri2024-02-151-61/+48
|
* pass an entire entity to the shader unit. fix a bug in cliptriangle.rodri2024-02-142-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.rodri2024-02-136-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.rodri2024-02-122-39/+101
|
* initial clipping implementation. (not fully working yet)rodri2024-02-101-67/+53
|
* load XRGB32 textures.rodri2024-02-081-6/+11
|
* implement perspective-correct attribute interpolation.rodri2024-02-071-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.rodri2024-02-032-37/+82
|
* only create existing indices during quad triangulation.rodri2024-02-011-24/+32
|
* improve coordinate transformations and fix projections.rodri2024-01-315-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.rodri2024-01-303-8/+5
|
* update readme.rodri2024-01-301-0/+3
|
* import the new renderer and clean things up.rodri2024-01-3013-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.rodri2024-01-261-3/+1
|
* add a line clipping procedure based on the Liang-Barsky algorithm. (thanks ↵rodri2021-07-182-1/+64
| | | | jmi2k!)
* move the edge function out into libgeometry.rodri2020-07-051-30/+0
|
* bring flat triangle rasterization back, with some goodies for future shading ↵rodri2020-06-294-1/+88
| | | | work. add uv coordinates to the vertex.
* transcribe macros into actual functions. remove unused memdraw code.rodri2020-04-282-37/+55
|
* standalone version release.rodri2020-04-179-0/+904