fix uniform ids and edits uniform recreation
This commit is contained in:
parent
e1cc3737fd
commit
7de732c9f5
@ -9,7 +9,7 @@ var shader_pass2: RID
|
||||
var start_time := Time.get_ticks_msec() / 1000.0
|
||||
var color = Color.CORAL
|
||||
@export var iout_surface_points = []
|
||||
var player_edits = PackedFloat32Array()
|
||||
var player_edits = PackedFloat32Array([0.0, 0.0, 0.0, 1.0])
|
||||
|
||||
var pipeline1
|
||||
var pipeline2
|
||||
@ -75,8 +75,7 @@ func compute_mesh(world_size: int, threshold: float, chunk_pos: Vector3) -> Arra
|
||||
rd.buffer_update(chunk_position_buffer, 0, chunk_position_bytes.size(), chunk_position_bytes)
|
||||
|
||||
var player_edits_bytes = player_edits.to_byte_array()
|
||||
if player_edits_bytes.size() > 0:
|
||||
player_edits_buffer = rd.storage_buffer_create(player_edits_bytes.size())
|
||||
|
||||
rd.buffer_update(player_edits_buffer, 0, player_edits_bytes.size(), player_edits_bytes)
|
||||
|
||||
var u_time := Time.get_ticks_msec() / 1000.0 - start_time
|
||||
@ -131,7 +130,7 @@ func compute_mesh(world_size: int, threshold: float, chunk_pos: Vector3) -> Arra
|
||||
uniform_params.add_id(params_buffer)
|
||||
|
||||
var uniform_set1 := rd.uniform_set_create([uniform_buf, uniform_params, surface_uniform_buf, normal_uniform, idx_uniform, counter_uniform, chunk_position_uniform, player_edits_uniform], shader_pass1, 0) # the last parameter (the 0) needs to match the "set" in our shader file
|
||||
var uniform_set2 := rd.uniform_set_create([uniform_buf, uniform_params, surface_uniform_buf, normal_uniform, idx_uniform, counter_uniform], shader_pass2, 0)
|
||||
var uniform_set2 := rd.uniform_set_create([uniform_buf, uniform_params, surface_uniform_buf, idx_uniform, counter_uniform], shader_pass2, 0)
|
||||
|
||||
var dispatch_count = int(ceil(world_size / 4.0))
|
||||
|
||||
@ -142,6 +141,8 @@ func compute_mesh(world_size: int, threshold: float, chunk_pos: Vector3) -> Arra
|
||||
rd.compute_list_bind_uniform_set(compute_list, uniform_set1, 0)
|
||||
rd.compute_list_dispatch(compute_list, dispatch_count, dispatch_count, dispatch_count)
|
||||
rd.compute_list_end()
|
||||
|
||||
rd.compute_list_add_barrier(compute_list)
|
||||
|
||||
# 2. Dispatch PASS 2 (Generate Indices)
|
||||
pipeline2 = rd.compute_pipeline_create(shader_pass2) # Indices only
|
||||
|
||||
@ -13,6 +13,7 @@ layout(set = 0, binding = 1) uniform Params {
|
||||
int world_size;
|
||||
float threshold;
|
||||
float u_time;
|
||||
float padding;
|
||||
} params;
|
||||
|
||||
layout(set = 0, binding = 2, std430) buffer SurfaceBuffer {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user