summaryrefslogtreecommitdiff
path: root/main.c
Commit message (Collapse)AuthorAgeFilesLines
* added a knob to scale the model.rodri2023-12-191-3/+14
|
* don't test for locking, just do it.rodri2023-12-191-13/+10
|
* initialize the zbuflk to zero.rodri2023-12-191-0/+1
|
* put the zbuflk in the Framebuf.rodri2023-12-191-4/+4
|
* fix memory leak when counting faces during shading.rodri2023-12-181-20/+23
| | | | since the model won't change, instead of freeing the elems on every run i decided to make the relevant counts statically allocated, and do the counting once.
* implemented double-buffering.rodri2023-12-181-49/+124
|
* remove unnecessary matrix xforms from the vertex shaders.rodri2023-12-181-12/+5
|
* fix the vertex shader for some of the shading pipelines.rodri2023-12-181-4/+21
|
* added a rotating animation with a corresponding knob to tweak the speed.rodri2023-12-181-26/+41
|
* add knobs to control fb's dimensions. make the light an actual global.rodri2023-12-171-31/+35
|
* added a time uniform bind for cool animations.rodri2023-12-171-11/+29
| | | | also changed the default fb size to get higher frame rates.
* render in a loop and gather stats about frame latency.rodri2023-12-171-26/+34
|
* added a table of shaders to choose from.rodri2023-12-171-17/+55
|
* added a diablo3 model.rodri2023-12-161-1/+1
|
* added a toon shader.rodri2023-12-161-2/+19
|
* got stuck and skipped to Lesson 6: Shaders for the software renderer.rodri2023-12-161-273/+219
| | | | | | i was unable to find a fix for the rendering artifacts i was getting and decided to skip to a later chapter, with a new architecture based on actual shaders, that made things easier to understand. right after the move i spotted the problem (and others that showed up) and was finally able to fix them. it's working now!
* Lesson 5 prelude: Gouraud shading (not fully working.)rodri2023-12-131-15/+54
| | | | | the normals from the file don't seem to be well formed, maybe the order is wrong or the indices.
* add the option to visualize normals.rodri2023-11-191-9/+38
|
* put all the transformations in a single matrix.rodri2023-11-181-4/+1
|
* implemented perspective projection and a new rendering procedure (flag2).rodri2023-11-181-16/+255
|
* correct zfb color rendering.rodri2023-11-151-3/+3
|
* got rid of unused code. implemented memsetd for double sized filling.rodri2023-11-141-23/+14
|
* show the rendering as it happens, with the option of visualizing the z-buffer.rodri2023-11-141-19/+70
|
* add some shaping function experiments.rodri2023-11-121-16/+65
|
* remove unnecessary cbuf2 variable.rodri2023-11-121-5/+2
|
* correct rgb to rgba conversion.rodri2023-11-121-1/+1
|
* added texture mapping.rodri2023-11-121-28/+98
|
* Lesson 2: Hidden faces removal (z-buffer)rodri2023-11-121-72/+33
|
* Lesson 1: Triangle rasterization and back-face culling—Flat shading renderrodri2023-11-111-7/+25
|
* adapted to the new libobj element format.rodri2023-11-111-39/+57
| | | | now african_head.obj doesn't fail to parse, and we will use those texture indices soon.
* add support for OBJ models (triangles only).rodri2023-11-111-26/+132
| | | | also put a guard on the filltriangle slopes to avoid division by zero.
* parallelize shader execution.rodri2023-11-101-19/+85
|
* correct the fb's rframe and use another Memimage for fragments.rodri2023-11-101-15/+13
|
* experiments with triangle and circle shaders.rodri2023-11-101-4/+38
|
* track nanosec.c and fix some things.rodri2023-11-091-10/+8
|
* Lesson 1: Triangle rasterization and back-face culling—Triangle shaderrodri2023-11-091-11/+72
|
* cleanup.rodri2023-11-091-7/+6
|
* Lesson 1: Triangle rasterization and back-face culling—First attemptrodri2023-11-091-10/+69
|
* Lesson 1: Triangle rasterization and back-face culling—Preparationrodri2023-11-091-2/+13
|
* Lesson 0: Bresenham's Line Drawing Algorithm—Fifth attemptrodri2023-11-091-10/+10
|
* Lesson 0: Bresenham's Line Drawing Algorithm—Third attemptrodri2023-11-091-9/+39
|
* Lesson 0: Bresenham's Line Drawing Algorithm—First attemptrodri2022-06-221-0/+222