| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
mixed up CLIP[TB] and the slope was being computed as
an integer division, which caused artifacts.
|
|
|
|
|
|
|
|
| |
also got rid of the dependency on OBJ for the entire renderer,
instead letting the user load a Model from any given OBJ. this
modularity will allow for other formats to be used in the same
way, relying on a single, internal representation for the
entire pipeline.
|
| |
|
|
|
|
|
|
| |
this fixes a bug i introduced with the fully concurrent pipeline,
where instead of testing whether the triangle *crossed* any of the
tiles, i checked whether any of the points *were inside*.
|
| |
|
|
|
|
|
| |
this is only an structural replacement and doesn't add
support for the other primitive types.
|
|
|
|
|
| |
this makes more sense memory-wise, and it also fixes a
clipping glitch that was occurring at tile boundaries.
|
| |
|
|
|
|
|
| |
- got rid of the z-buffer lock to avoid contention.
- little improvements to fb.c
|
|
|
|
|
|
|
|
|
|
| |
> They made two mistakes. they hanged the wrong man and they didn't finish the job.
so Clint Eastwood came back to kick my ass. the mistakes in
question were that the Viewport shouldn't know about double
buffering, conceptually it has a framebuffer and that's it.
the second one was passing it to the renderer, when the
renderer couldn't care less about what a viewport is.
|
| |
|
|
|
|
|
| |
do the frame buffer clearing and swapping as part
of the rendering process, not within shootcamera.
|
| |
|
| |
|
|
|
|
|
| |
this way users can refer to per-surface material features
when shading pixels.
|
| |
|
|
|
|
|
|
| |
pass the material reference along with the vertices.
also implemented back-face culling, but it's disabled
for now.
|
|
|
|
| |
code.
|
| |
|
|
|
|
| |
added parameters necessary to implement the Phong shading model.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
also fixed an issue with cliptriangle() where an
entire tri would get discarded if all its vertices
were outside the frustum.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
| |
also got rid of Deco. there's no point in having that,
just deal with image(6) files.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
jmi2k!)
|
| |
|
|
|