[Bf-blender-cvs] [0f7433a4c87] universal-scene-description: USD export: fix curve widths calculation.

Michael Kowalski noreply at git.blender.org
Wed Nov 2 21:29:05 CET 2022


Commit: 0f7433a4c871b70371423ad3aca203d10fb4f179
Author: Michael Kowalski
Date:   Wed Nov 2 16:27:57 2022 -0400
Branches: universal-scene-description
https://developer.blender.org/rB0f7433a4c871b70371423ad3aca203d10fb4f179

USD export: fix curve widths calculation.

Now multiplying the curve radius values by the bevel radius
when calculating curve widths.  Change authored by
Charles Wardlaw.

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

M	source/blender/io/usd/intern/usd_writer_curve.cc

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

diff --git a/source/blender/io/usd/intern/usd_writer_curve.cc b/source/blender/io/usd/intern/usd_writer_curve.cc
index f779bd7a1ba..3e27de3798a 100644
--- a/source/blender/io/usd/intern/usd_writer_curve.cc
+++ b/source/blender/io/usd/intern/usd_writer_curve.cc
@@ -118,7 +118,7 @@ void USDCurveWriter::do_write(HierarchyContext &context)
       for (int i = 0; i < totpoint; i++, point++) {
         verts.push_back(pxr::GfVec3f(point->vec));
         weights.push_back(point->vec[3]);
-        widths.push_back(point->radius * 2.0f);
+        widths.push_back(point->radius * curve->bevel_radius * 2.0f);
       }
     }
     else if (nurbs->bezt) {
@@ -137,24 +137,24 @@ void USDCurveWriter::do_write(HierarchyContext &context)
 
         if (i > 0) {
           verts.push_back(pxr::GfVec3f(bezier->vec[0]));
-          widths.push_back(bezier->radius * 2.0f);
+          widths.push_back(bezier->radius * curve->bevel_radius * 2.0f);
         }
 
         verts.push_back(pxr::GfVec3f(bezier->vec[1]));
-        widths.push_back(bezier->radius * 2.0f);
+        widths.push_back(bezier->radius * curve->bevel_radius * 2.0f);
 
         if (i < totpoint - 1 || is_cyclic) {
           verts.push_back(pxr::GfVec3f(bezier->vec[2]));
-          widths.push_back(bezier->radius * 2.0f);
+          widths.push_back(bezier->radius * curve->bevel_radius * 2.0f);
         }
       }
 
       if (is_cyclic) {
         verts.push_back(pxr::GfVec3f(nurbs->bezt->vec[0]));
-        widths.push_back(nurbs->bezt->radius * 2.0f);
+        widths.push_back(nurbs->bezt->radius * curve->bevel_radius * 2.0f);
 
         verts.push_back(pxr::GfVec3f(nurbs->bezt->vec[1]));
-        widths.push_back(nurbs->bezt->radius * 2.0f);
+        widths.push_back(nurbs->bezt->radius * curve->bevel_radius * 2.0f);
       }
     }
     // TODO: Implement knots



More information about the Bf-blender-cvs mailing list