Spaces:
Running on Zero
Running on Zero
File size: 1,411 Bytes
b6a3ea1 e66e0ce b6a3ea1 e5f2a2b b6a3ea1 e0ee6b2 b6a3ea1 6cad89f e5f2a2b b6a3ea1 093fc19 6cad89f ed3d05d 6cad89f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | TEXTURE_REFERENCE_SIZE = 2048
REFERENCE_FACE_BUDGET = 100000
MAX_FACE_BUDGET = 200000
REFERENCE_TEXTURE_STEPS = 1000
MAX_TEXTURE_STEPS = 1000
TEXTURE_INIT = "zeros"
TEXTURE_LEARNING_RATE = 1e-2
MAX_SIMPLIFY_RATIO = 0.999
BAKE_RENDER_VIEWS = 100
def texture_scale(texture_size):
return texture_size / TEXTURE_REFERENCE_SIZE
def faces_for_texture_size(texture_size):
budget = REFERENCE_FACE_BUDGET * texture_scale(texture_size) ** 2
return int(round(min(budget, MAX_FACE_BUDGET)))
def texture_steps_for_texture_size(texture_size):
steps = REFERENCE_TEXTURE_STEPS * texture_scale(texture_size)
return max(1, int(round(min(steps, MAX_TEXTURE_STEPS))))
def simplify_ratio_for_texture_size(texture_size, source_faces):
target_faces = faces_for_texture_size(texture_size)
if source_faces <= target_faces:
return 0.0
return min(MAX_SIMPLIFY_RATIO, 1.0 - target_faces / source_faces)
def balanced_export_settings(simplify, texture_size):
return {
"simplify": simplify,
"texture_size": texture_size,
"fill_holes": True,
"fill_holes_num_views": 250,
"render_views": BAKE_RENDER_VIEWS,
"texture_optimization_steps": texture_steps_for_texture_size(texture_size),
"texture_init": TEXTURE_INIT,
"texture_lr": TEXTURE_LEARNING_RATE,
"uv_backend": "cumesh",
"decimate_backend": "cumesh",
}
|