mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-28 05:12:27 +00:00
feat(profiles): Bambu Lab H2C and A2L profiles and resources
Machine models and presets, process and filament presets, plus bed models, covers, previews and device images for the H2C and A2L.
This commit is contained in:
@@ -46,6 +46,11 @@ uniform vec2 screen_size;
|
||||
#endif // ENABLE_ENVIRONMENT_MAP
|
||||
|
||||
uniform PrintVolumeDetection print_volume;
|
||||
// BBS H2D/H2C per-extruder printable height (3DScene.cpp): .x = flag (>=1 active), .y/.z = the two
|
||||
// extruders' Z limits. Inert unless the CPU sets .x >= 1.0 (multi-extruder printers only), so the
|
||||
// shared object shader stays pixel-identical for single-extruder printers. See 3DScene.cpp.
|
||||
uniform vec3 extruder_printable_heights;
|
||||
const float ONE_OVER_EPSILON = 1e4;
|
||||
|
||||
uniform float z_far;
|
||||
uniform float z_near;
|
||||
@@ -166,6 +171,16 @@ void main()
|
||||
}
|
||||
color.rgb = (any(lessThan(pv_check_min, ZERO)) || any(greaterThan(pv_check_max, ZERO))) ? mix(color.rgb, ZERO, 0.3333) : color.rgb;
|
||||
|
||||
// BBS per-extruder printable-height shading (H2D/H2C). Gated on the flag so it is inert for
|
||||
// single-extruder printers. Darkens the band between the two extruders' Z limits inside the bed
|
||||
// rect (the zone only the taller extruder can reach). Math kept byte-identical to BBS gouraud.fs.
|
||||
if (extruder_printable_heights.x >= 1.0) {
|
||||
vec3 eph_check_min = (world_pos.xyz - vec3(print_volume.xy_data.x, print_volume.xy_data.y, extruder_printable_heights.y)) * ONE_OVER_EPSILON;
|
||||
vec3 eph_check_max = (world_pos.xyz - vec3(print_volume.xy_data.z, print_volume.xy_data.w, extruder_printable_heights.z)) * ONE_OVER_EPSILON;
|
||||
bool is_out_printable_height = (all(greaterThan(eph_check_min, vec3(1.0))) && all(lessThan(eph_check_max, vec3(1.0))));
|
||||
color.rgb = is_out_printable_height ? mix(color.rgb, ZERO, 0.7) : color.rgb;
|
||||
}
|
||||
|
||||
//BBS: add outline_color
|
||||
if (is_outline) {
|
||||
color = vec4(vec3(intensity.y) + color.rgb * intensity.x, color.a);
|
||||
|
||||
@@ -45,6 +45,11 @@ uniform vec2 screen_size;
|
||||
#endif // ENABLE_ENVIRONMENT_MAP
|
||||
|
||||
uniform PrintVolumeDetection print_volume;
|
||||
// BBS H2D/H2C per-extruder printable height (3DScene.cpp): .x = flag (>=1 active), .y/.z = the two
|
||||
// extruders' Z limits. Inert unless the CPU sets .x >= 1.0 (multi-extruder printers only), so the
|
||||
// shared object shader stays pixel-identical for single-extruder printers. See 3DScene.cpp.
|
||||
uniform vec3 extruder_printable_heights;
|
||||
const float ONE_OVER_EPSILON = 1e4;
|
||||
|
||||
uniform float z_far;
|
||||
uniform float z_near;
|
||||
@@ -167,6 +172,16 @@ void main()
|
||||
}
|
||||
color.rgb = (any(lessThan(pv_check_min, ZERO)) || any(greaterThan(pv_check_max, ZERO))) ? mix(color.rgb, ZERO, 0.3333) : color.rgb;
|
||||
|
||||
// BBS per-extruder printable-height shading (H2D/H2C). Gated on the flag so it is inert for
|
||||
// single-extruder printers. Darkens the band between the two extruders' Z limits inside the bed
|
||||
// rect (the zone only the taller extruder can reach). Math kept byte-identical to BBS gouraud.fs.
|
||||
if (extruder_printable_heights.x >= 1.0) {
|
||||
vec3 eph_check_min = (world_pos.xyz - vec3(print_volume.xy_data.x, print_volume.xy_data.y, extruder_printable_heights.y)) * ONE_OVER_EPSILON;
|
||||
vec3 eph_check_max = (world_pos.xyz - vec3(print_volume.xy_data.z, print_volume.xy_data.w, extruder_printable_heights.z)) * ONE_OVER_EPSILON;
|
||||
bool is_out_printable_height = (all(greaterThan(eph_check_min, vec3(1.0))) && all(lessThan(eph_check_max, vec3(1.0))));
|
||||
color.rgb = is_out_printable_height ? mix(color.rgb, ZERO, 0.7) : color.rgb;
|
||||
}
|
||||
|
||||
//BBS: add outline_color
|
||||
if (is_outline) {
|
||||
color = vec4(vec3(intensity.y) + color.rgb * intensity.x, color.a);
|
||||
|
||||
Reference in New Issue
Block a user