Skip to content

Commit

Permalink
meh again
Browse files Browse the repository at this point in the history
  • Loading branch information
mockersf committed Feb 28, 2024
1 parent f4fe7f1 commit 4b40be7
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 14 deletions.
23 changes: 14 additions & 9 deletions crates/bevy_pbr/src/pbr_material.rs
Original file line number Diff line number Diff line change
Expand Up @@ -597,12 +597,12 @@ pub struct StandardMaterialUniform {
/// Color white light takes after travelling through the attenuation distance underneath the material surface
pub attenuation_color: Vec4,
/// The x-axis of the mat2 of the transform applied to the UVs corresponding to ATTRIBUTE_UV_0 on the mesh before sampling. Default is [1, 0].
pub uv_transform_x_axis: Vec2,
/// The y-axis of the mat2 of the transform applied to the UVs corresponding to ATTRIBUTE_UV_0 on the mesh before sampling. Default is [0, 1].
pub uv_transform_y_axis: Vec2,
pub uv_transform_xy_axis: Vec4,
// /// The y-axis of the mat2 of the transform applied to the UVs corresponding to ATTRIBUTE_UV_0 on the mesh before sampling. Default is [0, 1].
// pub uv_transform_y_axis: Vec2,
/// The translation of the transform applied to the UVs corresponding to ATTRIBUTE_UV_0 on the mesh before sampling. Default is [0, 0].
pub uv_transform_translation: Vec2,
pub padding: Vec2,
pub uv_transform_translation: Vec4,
// pub padding: Vec2,
/// Linear perceptual roughness, clamped to [0.089, 1.0] in the shader
/// Defaults to minimum of 0.089
pub roughness: f32,
Expand Down Expand Up @@ -737,10 +737,15 @@ impl AsBindGroupShaderType<StandardMaterialUniform> for StandardMaterial {
lightmap_exposure: self.lightmap_exposure,
max_relief_mapping_search_steps: self.parallax_mapping_method.max_steps(),
deferred_lighting_pass_id: self.deferred_lighting_pass_id as u32,
uv_transform_x_axis: self.uv_transform.matrix2.x_axis,
uv_transform_y_axis: self.uv_transform.matrix2.y_axis,
uv_transform_translation: self.uv_transform.translation,
padding: Vec2::ZERO,
uv_transform_xy_axis: self
.uv_transform
.matrix2
.x_axis
.extend(self.uv_transform.matrix2.y_axis.x)
.extend(self.uv_transform.matrix2.y_axis.y),
// uv_transform_y_axis: self.uv_transform.matrix2.y_axis,
uv_transform_translation: self.uv_transform.translation.extend(0.0).extend(0.0),
// padding: Vec2::ZERO,
}
}
}
Expand Down
7 changes: 6 additions & 1 deletion crates/bevy_pbr/src/render/pbr_fragment.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,12 @@ fn pbr_input_from_standard_material(
let NdotV = max(dot(pbr_input.N, pbr_input.V), 0.0001);

#ifdef VERTEX_UVS
let uv_transform = affine2_to_square(pbr_bindings::material.uv_transform);
// let uv_transform = affine2_to_square(pbr_bindings::material.uv_transform);
let uv_transform = mat3x3<f32>(
vec3<f32>(pbr_bindings::material.uv_transform_xy.xy, 0.0),
vec3<f32>(pbr_bindings::material.uv_transform_xy.zw, 0.0),
vec3<f32>(pbr_bindings::material.uv_transform_translation, 0.0),
);
var uv = (uv_transform * vec3(in.uv, 1.0)).xy;

#ifdef VERTEX_TANGENTS
Expand Down
8 changes: 7 additions & 1 deletion crates/bevy_pbr/src/render/pbr_prepass_functions.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,13 @@ fn prepass_alpha_discard(in: VertexOutput) {
var output_color: vec4<f32> = pbr_bindings::material.base_color;

#ifdef VERTEX_UVS
let uv_transform = affine2_to_square(pbr_bindings::material.uv_transform);
// let uv_transform = affine2_to_square(pbr_bindings::material.uv_transform);
let uv_transform = mat3x3<f32>(
vec3<f32>(pbr_bindings::material.uv_transform_xy.xy, 0.0),
vec3<f32>(pbr_bindings::material.uv_transform_xy.zw, 0.0),
vec3<f32>(pbr_bindings::material.uv_transform_translation, 0.0),
);

let uv = (uv_transform * vec3(in.uv, 1.0)).xy;
if (pbr_bindings::material.flags & pbr_types::STANDARD_MATERIAL_FLAGS_BASE_COLOR_TEXTURE_BIT) != 0u {
output_color = output_color * textureSampleBias(pbr_bindings::base_color_texture, pbr_bindings::base_color_sampler, uv, view.mip_bias);
Expand Down
10 changes: 7 additions & 3 deletions crates/bevy_pbr/src/render/pbr_types.wgsl
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ struct StandardMaterial {
base_color: vec4<f32>,
emissive: vec4<f32>,
attenuation_color: vec4<f32>,
uv_transform: mat3x2<f32>,
padding: vec2<f32>,
uv_transform_xy: vec4<f32>,
uv_transform_translation: vec2<f32>,
padding_a: f32,
padding_b: f32,
perceptual_roughness: f32,
metallic: f32,
reflectance: f32,
Expand Down Expand Up @@ -79,7 +81,9 @@ fn standard_material_new() -> StandardMaterial {
material.max_relief_mapping_search_steps = 5u;
material.deferred_lighting_pass_id = 1u;
// scale 1, translation 0, rotation 0
material.uv_transform = mat3x2<f32>(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
// material.uv_transform = mat3x2<f32>(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
material.uv_transform_xy = vec4<f32>(1.0, 0.0, 1.0, 0.0,);
material.uv_transform_translation = vec2<f32>(0.0, 0.0);

return material;
}
Expand Down

0 comments on commit 4b40be7

Please sign in to comment.