From 3deb94aad65d3c22b2f7ccd61c21763c6ef88d89 Mon Sep 17 00:00:00 2001 From: Krzosa Karol Date: Wed, 27 Jul 2022 09:20:15 +0200 Subject: [PATCH] Update README, add images --- .gitignore | 4 +- README.md | 65 +++++++++++++++--------------- assets/Screenshot1.png | Bin 0 -> 5443655 bytes assets/Screenshot2.png | Bin 0 -> 4629842 bytes main.cpp | 89 ++++++++++++++++++++++------------------- optimization_log.cpp | 17 ++++---- 6 files changed, 92 insertions(+), 83 deletions(-) create mode 100644 assets/Screenshot1.png create mode 100644 assets/Screenshot2.png diff --git a/.gitignore b/.gitignore index ffd0c4f..b5f3698 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,6 @@ data.txt *.bin *.4c asset.log.txt -perfclocks.txt \ No newline at end of file +perfclocks* +*.ipynb +zmiany diff --git a/README.md b/README.md index 02d1a50..32cd2c4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,27 @@ +# Realtime Software Renderer + +![screenshot1](assets/Screenshot1.png) +![screenshot2](assets/Screenshot2.png) + + +## Clipping + +There are 3 clipping stages, 2 clipping stages in 3D space against zfar and znear and 1 clipping +stage in 2D against left, bottom, right, top(2D image bounds). + +First the triangles get clipped against the zfar plane, +if a triangle has even one vertex outside the clipping region, the entire triangle gets cut. +So far I didn't have problems with that. It simplifies the computations and splitting triangles +on zfar seems like a waste of power. + +The second clipping stage is znear plane. Triangles get fully and nicely clipped against znear. +Every time a triangle gets partially outside the clipping region it gets cut to the znear and +either one or two new triangles get derived from the old one. + +Last clipping stage is performed in the 2D image space. Every triangle has a corresponding AABB +box. In this box every pixel gets tested to see if it's in the triangle. In this clipping stage +the box is clipped to the image metrics - 0, 0, width, height. ### Things to do: @@ -43,7 +66,7 @@ - [ ] Outlines - [ ] Lightning - [ ] Proper normal interpolation - * `https://hero.handmade.network/episode/code/day101/#105 + * https://hero.handmade.network/episode/code/day101/#105 - [ ] Phong - [x] diffuse - [x] ambient @@ -57,14 +80,15 @@ - [x] Simple profiling tooling - [x] Statistics based on profiler data - [x] Find cool profilers - ExtraSleepy, Vtune -- [ ] Optimizations - - [ ] Inline edge function - - [ ] Expand edge functions to more optimized version - - [ ] Test 4x2 bitmap layout? - - [ ] Edge function to integer - - [ ] Use integer bit operations to figure out if plus. (edge0|edge1|edge2)>=0 - - [ ] SIMD - - [ ] Multithreading +- [x] Optimizations + - [x] Inline edge function + - [x] Expand edge functions to more optimized version + - [-] Test 4x2 bitmap layout? + - [-] Edge function to integer + - [-] Use integer bit operations to figure out if plus. (edge0|edge1|edge2)>=0 + - [x] SIMD + - [x] Optimized SIMD + - [x] Multithreading - [x] Text rendering - [ ] UI @@ -76,32 +100,9 @@ - [x] Gamma correct alpha blending for rectangles and bitmaps - [ ] Plotting of profile data - [x] Simple scatter plot - - -### Urgent: - -- [ ] Simplify the code, especially for the 2d routines - [x] Asset processor as second program -## Clipping - -There are 3 clipping stages, 2 clipping stages in 3D space against zfar and znear and 1 clipping -stage in 2D against left, bottom, right, top(2D image bounds). - -First the triangles get clipped against the zfar plane, -if a triangle has even one vertex outside the clipping region, the entire triangle gets cut. -So far I didn't have problems with that. It simplifies the computations and splitting triangles -on zfar seems like a waste of power. - -The second clipping stage is znear plane. Triangles get fully and nicely clipped against znear. -Every time a triangle gets partially outside the clipping region it gets cut to the znear and -either one or two new triangles get derived from the old one. - -Last clipping stage is performed in the 2D image space. Every triangle has a corresponding AABB -box. In this box every pixel gets tested to see if it's in the triangle. In this clipping stage -the box is clipped to the image metrics - 0, 0, width, height. - ### Resources that helped me build the rasterizer (Might be helpful to you too): diff --git a/assets/Screenshot1.png b/assets/Screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..f105d7d9e4c143f9dddc3a372b17a4504d72a60e GIT binary patch literal 5443655 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%0A;6`oh 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�i(C5zlnml<20IN!~-hSHkO% z4y4U!`66e+EClO)(%BrsjJ5i_5~5XsOXZ$*%2zQ^{YGyruj3i=3ai{rC(Fs7w4Py& zQ8QUQ@TbVnBLie#DZobErE%T=u?2FlD&q=$%SoSZ(=t39x9yra4c^Z2e)%3^PX