[Bf-blender-cvs] [c51692a5689] temp-image-buffer-rasterizer: WIP - Testing other winding order.

Jeroen Bakker noreply at git.blender.org
Wed Feb 16 14:25:07 CET 2022


Commit: c51692a5689eb46661b20b74b695ae678c4e8667
Author: Jeroen Bakker
Date:   Wed Feb 16 14:24:37 2022 +0100
Branches: temp-image-buffer-rasterizer
https://developer.blender.org/rBc51692a5689eb46661b20b74b695ae678c4e8667

WIP - Testing other winding order.

===================================================================

M	source/blender/imbuf/IMB_rasterizer.hh
M	source/blender/imbuf/intern/rasterizer_test.cc

===================================================================

diff --git a/source/blender/imbuf/IMB_rasterizer.hh b/source/blender/imbuf/IMB_rasterizer.hh
index 39f3d76c223..a7b15103148 100644
--- a/source/blender/imbuf/IMB_rasterizer.hh
+++ b/source/blender/imbuf/IMB_rasterizer.hh
@@ -281,6 +281,11 @@ class Rasterizer {
     VertexOutputType left_add = calc_vertex_output_data(left, *left_target);
     VertexOutputType right_add = calc_vertex_output_data(right, *right_target);
 
+    /* Change winding order to match the steepness of the edges. */
+    if (right_add.uv[0] < left_add.uv[1]) {
+      std::swap(left_add, right_add);
+    }
+
     int v;
     for (v = min_v; v < mid_v; v++) {
       if (v >= 0 && v < image_buffer_->y) {
diff --git a/source/blender/imbuf/intern/rasterizer_test.cc b/source/blender/imbuf/intern/rasterizer_test.cc
index 862743c32c4..e1c41abc085 100644
--- a/source/blender/imbuf/intern/rasterizer_test.cc
+++ b/source/blender/imbuf/intern/rasterizer_test.cc
@@ -52,7 +52,7 @@ TEST(imbuf_rasterizer, draw_triangle)
   EXPECT_EQ(rasterizer.stats.drawn_fragments, 0);
 
   rasterizer.draw_triangle(
-      VertexInput(float2(0.1, 0.1)), VertexInput(float2(0.5, 0.2)), VertexInput(float2(0.4, 0.9)));
+      VertexInput(float2(0.1, 0.1)), VertexInput(float2(0.5, 0.9)), VertexInput(float2(0.8, 0.5)));
   rasterizer.flush();
 
   /*



More information about the Bf-blender-cvs mailing list