feat(world): generic dive site scene fed by a baked site definition
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0e590f2bc7
commit
b1d32f7d81
8 files changed
+286
-6
No files matched your search
@@ -68,10 +68,16 @@ func capture(request: SonarCaptureRequest) -> SonarCaptureResult:
|
||||
var material := SonarMaterial.Value.ROCK
|
||||
var reflectivity := 0.72
|
||||
if collider != null:
|
||||
material = int(collider.get_meta("sonar_material", material))
|
||||
reflectivity = float(
|
||||
collider.get_meta("sonar_reflectivity", reflectivity)
|
||||
)
|
||||
if collider.has_method("sonar_material_at"):
|
||||
material = int(collider.call("sonar_material_at", world_position))
|
||||
reflectivity = float(
|
||||
collider.call("sonar_reflectivity_at", world_position)
|
||||
)
|
||||
else:
|
||||
material = int(collider.get_meta("sonar_material", material))
|
||||
reflectivity = float(
|
||||
collider.get_meta("sonar_reflectivity", reflectivity)
|
||||
)
|
||||
var incidence := clampf(absf(world_normal.dot(Vector3.UP)), 0.18, 1.0)
|
||||
var attenuation := lerpf(1.0, 0.55, distance_ratio)
|
||||
var intensity := clampf(incidence * reflectivity * attenuation, 0.0, 1.0)
|
||||
|
||||
Reference in new issue
Block a user