[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