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:
2026-07-31 11:35:57 +02:00
co-authored by Claude Opus 4.8
parent c7154ca690
commit 2882c099b4
6 changed files with 17 additions and 6 deletions
+8 -1
View File
@@ -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