Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | offset fb during drawing based on viewport config. move OBJ-related ↵ | rodri | 2024-08-07 | 1 | -5/+10 |
| | | | | procedures to its own unit. | ||||
* | make the depth buffer 32-bit. | rodri | 2024-08-04 | 1 | -1/+1 |
| | |||||
* | add a viewport upscale filters interface. | rodri | 2024-08-02 | 1 | -0/+9 |
| | |||||
* | reduce the volume of Camera.times records. clean up. | rodri | 2024-07-20 | 1 | -2/+2 |
| | |||||
* | fix stack overflow, skybox fov sensibility and scene duplication. | rodri | 2024-07-15 | 1 | -0/+1 |
| | | | | | | | | | putting the duplicate camera in a local variable turned out to be a bad idea. bring the dynamic version back. the skybox rendering was affected by the camera fov, which made it look like it was not really at infinity, so set it always to 90°. | ||||
* | initial viewport upscaling support. | rodri | 2024-07-14 | 1 | -0/+2 |
| | |||||
* | small improvements and a skybox bugfix. | rodri | 2024-07-14 | 1 | -1/+1 |
| | |||||
* | new camera interface. | rodri | 2024-07-13 | 1 | -2/+8 |
| | |||||
* | enable culling and add a camera knob for it. | rodri | 2024-07-13 | 1 | -11/+14 |
| | |||||
* | fix the geometry glitches when moving things around. | rodri | 2024-07-13 | 1 | -2/+8 |
| | | | | | | | | | | it's possible for interactive programs to keep updating the geometry of the scene during rendering, which caused primitives to look deformed or shattered in the final image. to avoid this we take a snapshot of the current state of things (scene and camera), and render based on that copy. | ||||
* | small improvements. | rodri | 2024-07-12 | 1 | -1/+2 |
| | |||||
* | texture nomenclature changes. fb format RGBA → XRGB. | rodri | 2024-07-09 | 1 | -3/+3 |
| | | | | | | we are still doing alpha blending, so we use the X chan internally, but we don't care about it when (mem)drawing to the screen. | ||||
* | create a new texture interface. | rodri | 2024-07-05 | 1 | -8/+22 |
| | |||||
* | rough color space conversion implementation. | rodri | 2024-07-04 | 1 | -0/+4 |
| | | | | | | | | colors are now properly processed in linear RGB space for lighting, shading and blending. sRGB is assumed for any texture sampled and the destination framebuffer. it's not perfect, but it does the job for now. | ||||
* | fix the barycoords routine to avoid reporting false degenerates. | rodri | 2024-06-14 | 1 | -0/+2 |
| | | | | added a normals buffer for debugging. | ||||
* | replace the Memimage color buffer with a ulong* one. some fixes. | rodri | 2024-06-13 | 1 | -2/+1 |
| | |||||
* | add spotlight params and a light color shading routine. other things. | rodri | 2024-06-10 | 1 | -0/+7 |
| | | | | | | among these other things are clamping the color channels to [0,1] internally, and adding a modulation function for mixing colors/points. | ||||
* | add cubemaps. | rodri | 2024-06-06 | 1 | -2/+15 |
| | |||||
* | add a tangent parameter for normal mapping, and a world2model xform. | rodri | 2024-06-04 | 1 | -1/+3 |
| | |||||
* | add a normal map property to Material. | rodri | 2024-05-28 | 1 | -0/+1 |
| | |||||
* | replace the Framebufctl's Lock with a QLock. | rodri | 2024-05-23 | 1 | -1/+1 |
| | | | | this provides fair scheduling, minimizing contention. | ||||
* | fix the perspective projection and add inverse xform functions. | rodri | 2024-05-20 | 1 | -0/+9 |
| | |||||
* | render: improve line raster (not fixed yet). also tag jobs with an id. | rodri | 2024-05-17 | 1 | -1/+2 |
| | |||||
* | add a name property to Material. | rodri | 2024-05-12 | 1 | -0/+1 |
| | |||||
* | add a general primitive with support for points, lines and triangles. | rodri | 2024-05-03 | 1 | -8/+7 |
| | | | | | | | | 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. | ||||
* | replace the Triangle with a general purpose Primitive. | rodri | 2024-04-16 | 1 | -8/+19 |
| | | | | | this is only an structural replacement and doesn't add support for the other primitive types. | ||||
* | add some instrumentation to measure pipeline stage time. | rodri | 2024-04-15 | 1 | -0/+15 |
| | |||||
* | implement a fully concurrent pipeline based on tiles. | rodri | 2024-04-15 | 1 | -4/+3 |
| | | | | | - got rid of the z-buffer lock to avoid contention. - little improvements to fb.c | ||||
* | simplify the job scheduler. correct two mistakes regarding the Viewport. | rodri | 2024-04-05 | 1 | -7/+5 |
| | | | | | | | | | | > 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. | ||||
* | scene: add a way to remove entities and fix the clearscene routine. | rodri | 2024-04-03 | 1 | -0/+1 |
| | |||||
* | scene: implement full cleanup procedures. | rodri | 2024-04-03 | 1 | -0/+1 |
| | |||||
* | viewport: add a way to access front and back buffers. | rodri | 2024-04-01 | 1 | -0/+1 |
| | |||||
* | pass a Viewport in the Renderjob instead of a fb. | rodri | 2024-03-26 | 1 | -1/+2 |
| | | | | | 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 | 1 | -4/+27 |
| | |||||
* | use the new libgeometry berp routines. add a frame counter to the camstats. | rodri | 2024-03-21 | 1 | -0/+2 |
| | |||||
* | make the fshader return a Color instead of a Memimage. clean things up. | rodri | 2024-03-06 | 1 | -5/+4 |
| | |||||
* | add a texture sampler with nearest and bilinear routines. | rodri | 2024-03-06 | 1 | -0/+28 |
| | | | | | | 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 | 1 | -14/+29 |
| | | | | code. | ||||
* | have separate routines for drawing and memdrawing. | rodri | 2024-02-27 | 1 | -1/+6 |
| | |||||
* | interpolate every vertex attribute when clipping and during rasterization. | rodri | 2024-02-25 | 1 | -2/+8 |
| | | | | added parameters necessary to implement the Phong shading model. | ||||
* | add initial support for OBJMaterial properties. | rodri | 2024-02-21 | 1 | -1/+5 |
| | |||||
* | pass an entire entity to the shader unit. fix a bug in cliptriangle. | rodri | 2024-02-14 | 1 | -1/+1 |
| | | | | | | | | | | 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 | 1 | -7/+25 |
| | | | | | | 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 | 1 | -0/+41 |
| | |||||
* | improve coordinate transformations and fix projections. | rodri | 2024-01-31 | 1 | -5/+2 |
| | | | | | 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 | 1 | -2/+1 |
| | |||||
* | import the new renderer and clean things up. | rodri | 2024-01-30 | 1 | -35/+102 |
| | | | | | | | | | | | | 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. | ||||
* | add a line clipping procedure based on the Liang-Barsky algorithm. (thanks ↵ | rodri | 2021-07-18 | 1 | -0/+1 |
| | | | | jmi2k!) | ||||
* | bring flat triangle rasterization back, with some goodies for future shading ↵ | rodri | 2020-06-29 | 1 | -0/+14 |
| | | | | work. add uv coordinates to the vertex. | ||||
* | transcribe macros into actual functions. remove unused memdraw code. | rodri | 2020-04-28 | 1 | -7/+33 |
| |