Commit: bcc84007dddd99ee27653fcb8578574ecffc049e
Author: Mai Lavelle
Date: Wed Jun 22 01:49:41 2016 -0400
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rBbcc84007dddd99ee27653fcb8578574ecffc049e
Improved splitting
Split subpatches such that the ratio of T for opposite edges doesn't
exceed 1.5, this reduces over tessellation for some patches
===================================================================
M intern/cycles/subd/subd_split.cpp
===================================================================
diff --git a/intern/cycles/subd/subd_split.cpp
b/intern/cycles/subd/subd_split.cpp
index 15df4e4..401216b 100644
--- a/intern/cycles/subd/subd_split.cpp
+++ b/intern/cycles/subd/subd_split.cpp
@@ -140,6 +140,12 @@ void DiagSplit::split(QuadDice::SubPatch& sub,
QuadDice::EdgeFactors& ef, int de
bool split_u = (ef.tu0 == DSPLIT_NON_UNIFORM || ef.tu1 ==
DSPLIT_NON_UNIFORM);
bool split_v = (ef.tv0 == DSPLIT_NON_UNIFORM || ef.tv1 ==
DSPLIT_NON_UNIFORM);
+ bool tmp_split_v = split_v;
+ if(!split_u && min(ef.tu0, ef.tu1) > 8 && min(ef.tu0, ef.tu1)*1.5f <
max(ef.tu0, ef.tu1))
+ split_v = true;
+ if(!tmp_split_v && min(ef.tu0, ef.tu1) > 8 && min(ef.tv0, ef.tv1)*1.5f
< max(ef.tv0, ef.tv1))
+ split_u = true;
+
if(split_u && split_v) {
split_u = depth % 2;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs