OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-tps / scenes / test / test_cloud_volume.gd

36 lines · gd ref:
extends Node3D

## Test: DCTerrain in cloud_mode renders chunks as volumetric boxes

func _ready() -> void:
	var terrain = $DCTerrain
	if terrain == null:
		push_error("No DCTerrain child")
		return

	terrain.set("cloud_mode", true)
	terrain.set("voxel_size", 1.0)
	terrain.set("octree_depth", 3)
	terrain.set("use_gpu", false)
	terrain.set("use_noise", true)
	terrain.set("debug_logging", true)
	# Position the terrain node above the ground so cloud boxes are overhead
	terrain.position = Vector3(0, 100, 0)

	# Enable volumetric fog for the environment
	var env: Environment = $WorldEnvironment.environment
	env.volumetric_fog_enabled = false  # not using FogVolume, using spatial shader

	print("[CloudVolumeTest] cloud_mode=true voxel=4.0 depth=5")


func _unhandled_input(event: InputEvent) -> void:
	if event is InputEventKey and event.pressed and event.keycode == KEY_F12:
		var img := get_viewport().get_texture().get_image()
		var ts := Time.get_datetime_string_from_system().replace(":", "-")
		var dir := "/home/fleeky/Desktop/hyper-tps"
		DirAccess.make_dir_recursive_absolute(dir)
		var path := "%s/cloud_vol_%s.png" % [dir, ts]
		img.save_png(path)
		print("[CloudVolumeTest] Screenshot: %s" % path)