Commit Graph

86 Commits

Author SHA1 Message Date
51099ae97e Incomplete implementation of back face culling 2024-07-14 16:02:37 +01:00
5a3b143762 Add list_remove function 2024-07-14 16:02:19 +01:00
83fa308a4b Add cross product for 3D vectors 2024-07-14 16:01:55 +01:00
94287ff081 Switch to 1/z for depth buffering 2024-07-14 01:19:12 +01:00
48735adf7b Remove unused data type 2024-07-14 00:50:45 +01:00
f6848b5f4f Start implementing drawing order 2024-07-14 00:49:41 +01:00
77edf714bb Switch to rendering solid objects 2024-07-13 22:44:16 +01:00
5d61e8a616 Add wireframe and solid render types 2024-07-13 22:43:00 +01:00
e236cd8bbe Create vertex_t and move h data to it 2024-07-13 22:00:48 +01:00
b0bf4f593b Add h values for scene_triangle_t 2024-07-13 19:32:02 +01:00
f6f2483b61 Finalise implementing triangle clipping 2024-07-13 18:26:15 +01:00
00e7293b28 Reformat 2024-07-10 00:19:11 +01:00
3c293198bb Start implementing clipping triangles 2024-07-10 00:18:10 +01:00
ae072ec70e Initial implementation of bounding sphere clipping 2024-07-09 23:31:54 +01:00
c3e1aac779 Move scene to raytracer 2024-07-09 19:44:19 +01:00
4430ea872c Increase arena and frame arena capacities 2024-07-07 23:33:36 +01:00
df1620319c Flip camera x rotation controls 2024-07-07 23:30:46 +01:00
26fc513d4a Apply transformation first then project the points 2024-07-07 23:19:29 +01:00
9d929c22ba Add clipping planes to the scene 2024-07-07 23:19:12 +01:00
44c7b6ac1b Add function to multiply 4x4 matrix by 4D vector 2024-07-07 23:18:00 +01:00
7823e92861 Apply projection matrix last to allow for clipping 2024-07-07 22:06:35 +01:00
b7101108a4 Add rasteriser_scene_t struct and render_scene function 2024-07-07 21:58:16 +01:00
39f198e342 Add camera controls 2024-06-30 14:52:29 +01:00
b81304e759 Switch to using transformation matrices 2024-06-30 02:40:04 +01:00
9ba7a8c414 Add vec4 types and functions 2024-06-30 00:09:22 +01:00
01c5def71f Fix project_point function 2024-06-30 00:08:38 +01:00
0911b33981 Add another cube instance 2024-06-29 20:13:30 +01:00
946ea9c307 Add model and instance data types 2024-06-29 20:04:52 +01:00
7f251e7704 Draw cube using vertices and triangles lists 2024-06-29 19:28:57 +01:00
fa5453d399 Add render_object function 2024-06-29 19:28:41 +01:00
7c192d5edf Include vector 2024-06-29 19:28:21 +01:00
33b89a9e44 Fix list type naming 2024-06-29 18:28:41 +01:00
d5a18828c5 Rename arena to frame_arena 2024-06-29 17:47:04 +01:00
c9f3c6ab01 Add colour field to triangle 2024-06-29 17:46:50 +01:00
96c5d21f79 Adjust cube colours 2024-06-29 17:16:48 +01:00
f922980232 Projection equation and first cube 2024-06-29 17:11:31 +01:00
6dc609be14 Update wireframe triangle colour 2024-06-29 15:54:54 +01:00
52dbae227d Switch list to use memory arena 2024-06-27 23:57:14 +01:00
5636fa57fc Remove aliases and add wizapp as submodule 2024-06-27 23:56:52 +01:00
e3c463d2f1 Add ability to draw filled triangle 2024-06-24 00:04:21 +01:00
01ece119ed Add list_pop and list_merge utilities 2024-06-24 00:04:01 +01:00
1c1b611bbb Draw first triangle 2024-06-23 22:33:33 +01:00
e622923e19 Zero memory when allocating list 2024-06-23 21:56:25 +01:00
f72568c135 Namespace list functions 2024-06-23 21:17:54 +01:00
ab469b8f37 Use list in rasteriser 2024-06-23 01:43:31 +01:00
058dba9276 Add basic list implementation 2024-06-23 01:43:18 +01:00
65dcd66f76 Add line_t struct and update draw_line function 2024-06-22 20:41:57 +01:00
5908cf3063 Move ARR_LEN macro to misc_utils 2024-06-22 20:41:23 +01:00
9f4137dac9 Draw first line 2024-06-22 19:27:30 +01:00
05eb1723ee Add vec_swap macro 2024-06-22 19:27:06 +01:00