allow overlay texture
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
}
|
||||
#import webview::util::{
|
||||
surface_color,
|
||||
overlay_color,
|
||||
}
|
||||
|
||||
@fragment
|
||||
@@ -21,11 +22,18 @@ fn fragment(
|
||||
var out: FragmentOutput;
|
||||
var pbr_input = pbr_input_from_standard_material(in, is_front);
|
||||
|
||||
var alpha = pbr_input.material.base_color.a;
|
||||
pbr_input.material.base_color *= surface_color(in.uv);
|
||||
// pbr_input.material.base_color = alpha_discard(pbr_input.material, pbr_input.material.base_color);
|
||||
// var alpha = pbr_input.material.base_color.a;
|
||||
|
||||
out.color = pbr_input.material.base_color * alpha;
|
||||
if overlay_color(in.uv).a > 0.0 {
|
||||
pbr_input.material.base_color *= surface_color(in.uv);
|
||||
pbr_input.material.base_color *= overlay_color(in.uv);
|
||||
} else {
|
||||
pbr_input.material.base_color *= surface_color(in.uv);
|
||||
}
|
||||
|
||||
pbr_input.material.base_color = alpha_discard(pbr_input.material, pbr_input.material.base_color);
|
||||
|
||||
out.color = pbr_input.material.base_color;
|
||||
// out.color.a *= alpha;
|
||||
|
||||
return out;
|
||||
|
||||
@@ -30,6 +30,9 @@ pub struct WebviewMaterial {
|
||||
#[texture(101)]
|
||||
#[sampler(102)]
|
||||
pub surface: Option<Handle<Image>>,
|
||||
#[texture(103)]
|
||||
#[sampler(104)]
|
||||
pub overlay: Option<Handle<Image>>,
|
||||
}
|
||||
|
||||
impl Material for WebviewMaterial {}
|
||||
|
||||
@@ -8,7 +8,13 @@
|
||||
@group(#{MATERIAL_BIND_GROUP}) @binding(101) var surface_texture: texture_2d<f32>;
|
||||
@group(#{MATERIAL_BIND_GROUP}) @binding(102) var surface_sampler: sampler;
|
||||
|
||||
@group(#{MATERIAL_BIND_GROUP}) @binding(103) var overlay_texture: texture_2d<f32>;
|
||||
@group(#{MATERIAL_BIND_GROUP}) @binding(104) var overlay_sampler: sampler;
|
||||
|
||||
fn surface_color(uv: vec2<f32>) -> vec4<f32> {
|
||||
// let flip = vec2(1.0 - uv.x, uv.y);
|
||||
return textureSampleBias(surface_texture, surface_sampler, uv, view.mip_bias);
|
||||
}
|
||||
|
||||
fn overlay_color(uv: vec2<f32>) -> vec4<f32> {
|
||||
return textureSampleBias(overlay_texture, overlay_sampler, uv, view.mip_bias);
|
||||
}
|
||||
Reference in New Issue
Block a user