From 2d70b77a00aab5e4e1d3564d4d0a91194b12f61e Mon Sep 17 00:00:00 2001 From: Anthony Rodgers Date: Fri, 7 Nov 2025 13:06:58 +0000 Subject: [PATCH 1/3] fix shader to assume voxel positions are real world positions --- assets/shaders/instancing.wgsl | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/assets/shaders/instancing.wgsl b/assets/shaders/instancing.wgsl index 2c35040..2a30329 100644 --- a/assets/shaders/instancing.wgsl +++ b/assets/shaders/instancing.wgsl @@ -1,4 +1,5 @@ -#import bevy_pbr::mesh_functions::{get_world_from_local, mesh_position_local_to_clip} +#import bevy_pbr::mesh_functions::{mesh_position_local_to_world} +#import bevy_pbr::view_transformations::position_world_to_clip struct Vertex { @location(0) position: vec3, @@ -16,16 +17,10 @@ struct VertexOutput { @vertex fn vertex(vertex: Vertex) -> VertexOutput { - let position = vertex.position * vertex.i_pos_scale.w + vertex.i_pos_scale.xyz; + let world_position = vertex.position * vertex.i_pos_scale.w + vertex.i_pos_scale.xyz; + var out: VertexOutput; - // NOTE: Passing 0 as the instance_index to get_world_from_local() is a hack - // for this example as the instance_index builtin would map to the wrong - // index in the Mesh array. This index could be passed in via another - // uniform instead but it's unnecessary for the example. - out.clip_position = mesh_position_local_to_clip( - get_world_from_local(0u), - vec4(position, 1.0) - ); + out.clip_position = position_world_to_clip(world_position); out.color = vertex.i_color; return out; } @@ -33,4 +28,4 @@ fn vertex(vertex: Vertex) -> VertexOutput { @fragment fn fragment(in: VertexOutput) -> @location(0) vec4 { return in.color; -} \ No newline at end of file +} From 97b21f7115c3a29b94cb3fa4177b8a074a231fe7 Mon Sep 17 00:00:00 2001 From: Anthony Rodgers Date: Fri, 7 Nov 2025 13:10:02 +0000 Subject: [PATCH 2/3] add clarifying comment --- assets/shaders/instancing.wgsl | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/shaders/instancing.wgsl b/assets/shaders/instancing.wgsl index 2a30329..63b95f4 100644 --- a/assets/shaders/instancing.wgsl +++ b/assets/shaders/instancing.wgsl @@ -17,6 +17,7 @@ struct VertexOutput { @vertex fn vertex(vertex: Vertex) -> VertexOutput { + // NOTE: Assumes vertex positions are real world positions let world_position = vertex.position * vertex.i_pos_scale.w + vertex.i_pos_scale.xyz; var out: VertexOutput; From 65cab1c5e3492870f64548924adc723f64e0ae46 Mon Sep 17 00:00:00 2001 From: Anthony Rodgers Date: Mon, 10 Nov 2025 11:05:00 +0000 Subject: [PATCH 3/3] update changelog --- CHANGELOG.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.MD b/CHANGELOG.MD index a914f80..273cdfd 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -6,7 +6,7 @@ All notable changes to the `bevy voxel plot` crate will be documented in this fi ### Added: -* ... +* Assume voxel vertices are real world coordinates in shader. # 2.0.1