Rock Generator 2.11.0: Quader-Proportionen auf gleiches Volumen normiert
Beim Export von Form C (flache Platte) fiel auf: Fels_C_S war 1.45 m, waehrend Fels_A_S nur 0.85 m misst - dieselbe Klasse, aber deutlich groesser, nur weil eine Achse gestreckt ist. Damit waere die Groessen-Klasse formabhaengig gewesen. Die Proportionen werden jetzt auf geometrisches Mittel 1.0 normiert. "M" bedeutet bei jeder Form dasselbe Volumen; eine Platte ist dann flacher UND breiter, aber nicht schwerer. Dass ihre laengste Kante groesser ausfaellt, ist geometrisch zwangslaeufig und Absicht. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
bl_info = {
|
||||
"name": "Stylized Rock Generator",
|
||||
"author": "D4rkst3r",
|
||||
"version": (2, 10, 0),
|
||||
"version": (2, 11, 0),
|
||||
"blender": (4, 2, 0),
|
||||
"location": "View3D > Sidebar > Rock Gen",
|
||||
"description": (
|
||||
@@ -310,6 +310,13 @@ def _build_rock_mesh(context, settings, index, location, rng, name=None):
|
||||
# der Displace nutzt globale Texturkoordinaten, eine Objekt-Skalierung
|
||||
# wuerde das Rauschen mitverzerren statt die Form zu aendern.
|
||||
px, py, pz = settings.box_proportions
|
||||
# Auf gleiches Volumen normieren: sonst waere ein Quader bei gleicher
|
||||
# Groessen-Klasse deutlich groesser als ein Wuerfel, nur weil eine
|
||||
# Achse gestreckt ist. So bedeutet "M" bei jeder Form dasselbe -
|
||||
# die Platte ist dann flacher UND breiter, aber nicht schwerer.
|
||||
gmean = (abs(px) * abs(py) * abs(pz)) ** (1.0 / 3.0)
|
||||
if gmean > 1e-6:
|
||||
px, py, pz = px / gmean, py / gmean, pz / gmean
|
||||
v = settings.box_variation
|
||||
if v > 0.0:
|
||||
px *= 1.0 + rng.uniform(-v, v) * 0.5
|
||||
|
||||
Reference in New Issue
Block a user