54 lines
1.8 KiB
GDScript
54 lines
1.8 KiB
GDScript
extends SceneTree
|
|
## Render-Probe Boden-Wiederholung (Steppe, 256 m flach, Sandpfad): Top-Down
|
|
## 60 m + flache Perspektive. Start (BRAUCHT Rendering):
|
|
## godot --path . --rendering-driver opengl3 -s res://tests/probe_steppe_tiling.gd -- <prefix>
|
|
|
|
func _initialize() -> void:
|
|
_run()
|
|
|
|
|
|
func _run() -> void:
|
|
await process_frame
|
|
await process_frame
|
|
var prefix := OS.get_cmdline_user_args()[0] if OS.get_cmdline_user_args().size() > 0 else "/tmp/steppe"
|
|
var size := 256.0
|
|
var res := 129
|
|
var mres := SvmapIO.material_resolution_for(res, size, size)
|
|
var heights := PackedFloat32Array()
|
|
heights.resize(res * res)
|
|
var mats := PackedByteArray()
|
|
mats.resize(mres * mres)
|
|
var mb := PackedByteArray()
|
|
mb.resize(mres * mres)
|
|
var mw := PackedByteArray()
|
|
mw.resize(mres * mres)
|
|
for i in 60:
|
|
var t := float(i) / 59.0
|
|
TerrainField.apply_material_brush_mix(mats, mb, mw, mres, size, size,
|
|
-25.0 + 50.0 * t, -10.0 + 8.0 * sin(t * 3.0), 3.0, 1, 0.0)
|
|
var view := Node3D.new()
|
|
view.set_script(load("res://core/viewport/terrain_mesh.gd"))
|
|
root.add_child(view)
|
|
view.call("set_mix", mb, mw)
|
|
view.call("update_heights", heights, res, size, size, mats)
|
|
view.call("set_contours", false)
|
|
var cam := Camera3D.new()
|
|
root.add_child(cam)
|
|
cam.projection = Camera3D.PROJECTION_ORTHOGONAL
|
|
cam.size = 60.0
|
|
cam.position = Vector3(0.0, 50.0, 10.01)
|
|
cam.look_at(Vector3(0, 0, 10.0), Vector3(0, 0, -1))
|
|
cam.current = true
|
|
for i in 4:
|
|
await process_frame
|
|
await RenderingServer.frame_post_draw
|
|
root.get_texture().get_image().save_png(prefix + "_top.png")
|
|
cam.projection = Camera3D.PROJECTION_PERSPECTIVE
|
|
cam.fov = 70.0
|
|
cam.position = Vector3(0.0, 6.0, 60.0)
|
|
cam.look_at(Vector3(0, 0, 20.0), Vector3.UP)
|
|
for i in 3:
|
|
await process_frame
|
|
await RenderingServer.frame_post_draw
|
|
root.get_texture().get_image().save_png(prefix + "_persp.png")
|
|
quit(0)
|