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;
vec3 dimensions;
vec3 lowest_corner;
uint enable[16*16*2];
uint enable[16];
} pc;
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.lowest_corner = lowest_corner.into();
push_constants.enable = [0; 16 * 16 * 2];
push_constants.enable = [0; 16];
for x in 0..16 {
for y in 0..16 {
for z in 0..2 {
let interval_input_z: Interval = Interval::new_unchecked(
interpreter::Value::from_array([
(((z as f32) / 2.0)
+ (0.0 / 16.0)) * push_constants.dimensions[2]
+ push_constants.lowest_corner[2],
(((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],
]),
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],
]),
);
for x in 0..8 {
for y in 0..8 {
let interval_input_z: Interval = Interval::new_unchecked(
interpreter::Value::from_array([
(0.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(1.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(2.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(3.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(4.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(5.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(6.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(7.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
]),
interpreter::Value::from_array([
(1.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(2.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(3.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(4.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(5.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(6.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(7.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
(8.0 / 8.0) * push_constants.dimensions[2] + push_constants.lowest_corner[2],
]),
);
let mut interpreter = IntervalInterpreter::new(csg);
let output = interpreter.scene(
Interval::const_splat2(
(x as f32 / 16.0) * push_constants.dimensions[0]
+ push_constants.lowest_corner[0],
((x + 1) as f32 / 16.0) * push_constants.dimensions[0]
+ push_constants.lowest_corner[0],
),
Interval::const_splat2(
(y as f32 / 16.0) * push_constants.dimensions[1]
+ push_constants.lowest_corner[1],
((y + 1) as f32 / 16.0) * push_constants.dimensions[1]
+ push_constants.lowest_corner[1],
),
interval_input_z,
);
let mut interpreter = IntervalInterpreter::new(csg);
let output = interpreter.scene(
Interval::const_splat2(
(x as f32 / 8.0) * push_constants.dimensions[0]
+ push_constants.lowest_corner[0],
((x + 1) as f32 / 8.0) * push_constants.dimensions[0]
+ push_constants.lowest_corner[0],
),
Interval::const_splat2(
(y as f32 / 8.0) * push_constants.dimensions[1]
+ push_constants.lowest_corner[1],
((y + 1) as f32 / 8.0) * push_constants.dimensions[1]
+ push_constants.lowest_corner[1],
),
interval_input_z,
);
let output = ((output.lower().simd_le(VALUE_0) & output.upper().simd_ge(VALUE_0))
.to_bitmask() as u32)
<< ((y & 0b11) * 8);
push_constants.enable[(x << 2) | (y >> 2)] |= output;
}
let output = ((output.lower().simd_le(VALUE_0) & output.upper().simd_ge(VALUE_0))
.to_bitmask() as u32)
<< ((y & 0b11) * 8);
push_constants.enable[(x << 1) | (y >> 2)] |= output;
}
}
}