Revert "--wip-- [skip ci]"

This reverts commit f0d817f144.
This commit is contained in:
2025-06-29 21:10:08 +01:00
parent fc546c820d
commit 1b6c93f781
2 changed files with 46 additions and 80 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ layout(push_constant) uniform PushConstantData {
mat4 world; mat4 world;
vec3 dimensions; vec3 dimensions;
vec3 lowest_corner; vec3 lowest_corner;
uint enable[16*16*2]; uint enable[16];
} pc; } pc;
layout(set = 0, binding = 0) uniform Lights { layout(set = 0, binding = 0) uniform Lights {
+45 -79
View File
@@ -319,88 +319,54 @@ fn interval_check(csg: &CSG, push_constants: &mut PushConstantData) {
push_constants.dimensions = (highest_corner - lowest_corner).to_array().into(); push_constants.dimensions = (highest_corner - lowest_corner).to_array().into();
push_constants.lowest_corner = lowest_corner.into(); push_constants.lowest_corner = lowest_corner.into();
push_constants.enable = [0; 16 * 16 * 2]; push_constants.enable = [0; 16];
for x in 0..16 { for x in 0..8 {
for y in 0..16 { for y in 0..8 {
for z in 0..2 { let interval_input_z: Interval = Interval::new_unchecked(
let interval_input_z: Interval = Interval::new_unchecked( interpreter::Value::from_array([
interpreter::Value::from_array([ (0.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(((z as f32) / 2.0) (1.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ (0.0 / 16.0)) * push_constants.dimensions[2] (2.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ push_constants.lowest_corner[2], (3.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(((z as f32) / 2.0) (4.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ (1.0 / 16.0)) * push_constants.dimensions[2] (5.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ push_constants.lowest_corner[2], (6.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(((z as f32) / 2.0) (7.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ (2.0 / 16.0)) * push_constants.dimensions[2] ]),
+ push_constants.lowest_corner[2], interpreter::Value::from_array([
(((z as f32) / 2.0) (1.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ (3.0 / 16.0)) * push_constants.dimensions[2] (2.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ push_constants.lowest_corner[2], (3.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(((z as f32) / 2.0) (4.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ (4.0 / 16.0)) * push_constants.dimensions[2] (5.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ push_constants.lowest_corner[2], (6.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(((z as f32) / 2.0) (7.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ (5.0 / 16.0)) * push_constants.dimensions[2] (8.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
+ push_constants.lowest_corner[2], ]),
(((z as f32) / 2.0) );
+ (6.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (7.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
]),
interpreter::Value::from_array([
((((z as f32) / 2.0)
+ (1.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (2.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (3.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (4.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (5.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (6.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (7.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((z as f32) / 2.0)
+ (8.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
]),
);
let mut interpreter = IntervalInterpreter::new(csg); let mut interpreter = IntervalInterpreter::new(csg);
let output = interpreter.scene( let output = interpreter.scene(
Interval::const_splat2( Interval::const_splat2(
(x as f32 / 16.0) * push_constants.dimensions[0] (x as f32 / 8.0) * push_constants.dimensions[0]
+ push_constants.lowest_corner[0], + push_constants.lowest_corner[0],
((x + 1) as f32 / 16.0) * push_constants.dimensions[0] ((x + 1) as f32 / 8.0) * push_constants.dimensions[0]
+ push_constants.lowest_corner[0], + push_constants.lowest_corner[0],
), ),
Interval::const_splat2( Interval::const_splat2(
(y as f32 / 16.0) * push_constants.dimensions[1] (y as f32 / 8.0) * push_constants.dimensions[1]
+ push_constants.lowest_corner[1], + push_constants.lowest_corner[1],
((y + 1) as f32 / 16.0) * push_constants.dimensions[1] ((y + 1) as f32 / 8.0) * push_constants.dimensions[1]
+ push_constants.lowest_corner[1], + push_constants.lowest_corner[1],
), ),
interval_input_z, interval_input_z,
); );
let output = ((output.lower().simd_le(VALUE_0) & output.upper().simd_ge(VALUE_0)) let output = ((output.lower().simd_le(VALUE_0) & output.upper().simd_ge(VALUE_0))
.to_bitmask() as u32) .to_bitmask() as u32)
<< ((y & 0b11) * 8); << ((y & 0b11) * 8);
push_constants.enable[(x << 2) | (y >> 2)] |= output; push_constants.enable[(x << 1) | (y >> 2)] |= output;
}
} }
} }
} }