OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-tps / scenes / test / proc_nodes_test.gd

79 lines · gd ref:
@tool
extends ProcGeometryNode

func _ready():
	_build_graph()
	call_deferred("_apply_material")

func _apply_material():
	var mesh_child = get_node_or_null("MeshOutput")
	if mesh_child and mesh_child is MeshInstance3D:
		var mat = StandardMaterial3D.new()
		mat.albedo_color = Color(0.45, 0.55, 0.35)
		mesh_child.material_override = mat

func _build_graph():
	var g = ProcNodeGraph.new()

	# 0: High-res grid — 20x20m, 200x200 verts (40K vertices)
	var grid = MeshGridNode.new()
	g.add_node(grid)

	# 1-2: Grid size
	var sx = ValueNode.new()
	sx.value = 20.0
	g.add_node(sx)
	var sy = ValueNode.new()
	sy.value = 20.0
	g.add_node(sy)

	# 3-4: Grid resolution
	var vx = ValueNode.new()
	vx.value = 200.0
	g.add_node(vx)
	var vy = ValueNode.new()
	vy.value = 200.0
	g.add_node(vy)

	# 5: Displace with noise
	var displace = DisplaceNode.new()
	g.add_node(displace)

	# 6: Noise strength
	var strength = ValueNode.new()
	strength.value = 2.0
	g.add_node(strength)

	# 7: Noise scale
	var nscale = ValueNode.new()
	nscale.value = 0.3
	g.add_node(nscale)

	# 8: Noise detail (octaves)
	var ndetail = ValueNode.new()
	ndetail.value = 6.0
	g.add_node(ndetail)

	# 9: Noise roughness
	var nrough = ValueNode.new()
	nrough.value = 0.5
	g.add_node(nrough)

	# --- Connections ---

	# Grid size + resolution
	g.connect_sockets(1, 0, 0, 0)    # sx → grid.SizeX
	g.connect_sockets(2, 0, 0, 1)    # sy → grid.SizeY
	g.connect_sockets(3, 0, 0, 2)    # vx → grid.VertsX
	g.connect_sockets(4, 0, 0, 3)    # vy → grid.VertsY

	# Grid → Displace
	g.connect_sockets(0, 0, 5, 0)    # grid → displace.geometry
	g.connect_sockets(6, 0, 5, 1)    # strength → displace.strength
	g.connect_sockets(7, 0, 5, 2)    # scale → displace.scale
	g.connect_sockets(8, 0, 5, 3)    # detail → displace.detail
	g.connect_sockets(9, 0, 5, 4)    # roughness → displace.roughness

	self.graph = g
	print("ProcNodes terrain: ", g.get_node_count(), " nodes, 40K vertices with noise displacement")