Implement Balloon Depth Sampling and Validation Tools
- Added depth.py for MoGe-2 depth sampling and balloon deformation functionality. - Introduced validate_balloon_asset.py to validate balloon shape modifiers and material properties in Blender. - Enhanced test_server.py with new unit tests for balloon depth analysis and job progress tracking. - Updated existing tests to improve code clarity and maintainability.
This commit is contained in:
@@ -93,10 +93,7 @@ def models_status(refresh=False):
|
||||
|
||||
def _model_files_ready(model):
|
||||
directory = runtime.storage_root() / "models" / model.directory_name
|
||||
return all(
|
||||
any(directory.glob(pattern))
|
||||
for pattern in model.ready_patterns
|
||||
)
|
||||
return all(any(directory.glob(pattern)) for pattern in model.ready_patterns)
|
||||
|
||||
|
||||
def model_ready(model_key):
|
||||
@@ -147,6 +144,15 @@ def moge2_model_enum_items(_owner, _context):
|
||||
)
|
||||
|
||||
|
||||
def balloon_depth_model_enum_items(_owner, _context):
|
||||
models = [
|
||||
model
|
||||
for model in model_catalog()
|
||||
if model.get("family") == "moge2" and model.get("enabled")
|
||||
]
|
||||
models.sort(key=lambda model: model.get("key") != DEFAULT_MOGE2_MODEL_KEY)
|
||||
return _model_items(models)
|
||||
|
||||
def depth_plane_model_enum_items(_owner, _context):
|
||||
models = [
|
||||
model
|
||||
@@ -165,8 +171,7 @@ def surface_model_enum_items(_owner, _context):
|
||||
models = [
|
||||
model
|
||||
for model in model_catalog()
|
||||
if model.get("family") in {"moge2", "da3"}
|
||||
and model.get("enabled")
|
||||
if model.get("family") in {"moge2", "da3"} and model.get("enabled")
|
||||
]
|
||||
models.sort(key=lambda model: model.get("key") != DEFAULT_MOGE2_MODEL_KEY)
|
||||
return _model_items(models)
|
||||
@@ -228,17 +233,33 @@ def balloon_reuse_material_property():
|
||||
)
|
||||
|
||||
|
||||
def balloon_ai_refine_property():
|
||||
def balloon_contour_analysis_property():
|
||||
return bpy.props.BoolProperty(
|
||||
name="AI Refine",
|
||||
name="Contour",
|
||||
description=(
|
||||
"Use BEN2 Alpha above 0.5 to refine the lasso before building "
|
||||
"the Balloon"
|
||||
"Use BEN2 Alpha above 0.5 to analyze the lasso contour before "
|
||||
"building the Balloon"
|
||||
),
|
||||
default=False,
|
||||
)
|
||||
|
||||
|
||||
def balloon_depth_analysis_property():
|
||||
return bpy.props.BoolProperty(
|
||||
name="Depth",
|
||||
description=("Use MoGe-2 to add adjustable image depth to the Balloon mesh"),
|
||||
default=False,
|
||||
)
|
||||
|
||||
|
||||
def balloon_depth_model_property():
|
||||
return bpy.props.EnumProperty(
|
||||
name="Depth Model",
|
||||
description="MoGe-2 model used for Balloon depth",
|
||||
items=balloon_depth_model_enum_items,
|
||||
default=0,
|
||||
)
|
||||
|
||||
def balloon_radial_zoom_property(scale):
|
||||
return bpy.props.FloatVectorProperty(
|
||||
size=2,
|
||||
@@ -247,12 +268,15 @@ def balloon_radial_zoom_property(scale):
|
||||
options={"HIDDEN", "SKIP_SAVE"},
|
||||
)
|
||||
|
||||
|
||||
class SnapFormSettings(bpy.types.PropertyGroup):
|
||||
balloon_mode: balloon_mode_property()
|
||||
balloon_thickness: balloon_thickness_property()
|
||||
balloon_resolution: balloon_resolution_property()
|
||||
balloon_reuse_material: balloon_reuse_material_property()
|
||||
balloon_ai_refine: balloon_ai_refine_property()
|
||||
balloon_contour_analysis: balloon_contour_analysis_property()
|
||||
balloon_depth_analysis: balloon_depth_analysis_property()
|
||||
balloon_depth_model: balloon_depth_model_property()
|
||||
balloon_thickness_radial_zoom: balloon_radial_zoom_property(100.0)
|
||||
balloon_resolution_radial_zoom: balloon_radial_zoom_property(1000.0)
|
||||
input_path: bpy.props.StringProperty(
|
||||
|
||||
Reference in New Issue
Block a user