diff --git a/bin/data/config.json b/bin/data/config.json index 058b5ffc..d80c85a1 100644 --- a/bin/data/config.json +++ b/bin/data/config.json @@ -67,9 +67,9 @@ "vulkan": { "version": 1.3, "validation": { - "enabled": true, - "messages": true, - "checkpoints": true, + "enabled": false, + "messages": false, + "checkpoints": false, "filters": [ // "0xe5d1743c" // VUID-vkCmdDispatch-None-02699 (problem when using VXGI) (seems to be fixed?) // ,"0x6714bd0c" // VUID-vkCmdDispatch-format-07753 (for some dumb shit) (seems to be fixed?) @@ -118,7 +118,7 @@ "gui": true, "vsync": true, // vsync on vulkan side rather than engine-side "hdr": true, - "vxgi": false, + "vxgi": true, "culling": false, "bloom": false, "dof": false, diff --git a/bin/data/shaders/graph/voxelize/frag.glsl b/bin/data/shaders/graph/voxelize/frag.glsl index 6fb0022c..01d20c7f 100644 --- a/bin/data/shaders/graph/voxelize/frag.glsl +++ b/bin/data/shaders/graph/voxelize/frag.glsl @@ -123,7 +123,7 @@ void main() { { vec2 N_E = encodeNormals( normalize( N ) ); uint packedNormal = packHalf2x16(N_E); - imageAtomicMin(voxelNormal[CASCADE], uvw, packedNormal); + imageAtomicMax(voxelNormal[CASCADE], uvw, packedNormal); } { uint l = uint(clamp(luma(A.rgb), 0.0, 1.0) * 15.0) & 0xF; diff --git a/engine/src/engine/ext/voxelizer/behavior.cpp b/engine/src/engine/ext/voxelizer/behavior.cpp index 146d76f1..9c69be15 100644 --- a/engine/src/engine/ext/voxelizer/behavior.cpp +++ b/engine/src/engine/ext/voxelizer/behavior.cpp @@ -132,7 +132,7 @@ void ext::VoxelizerSceneBehavior::initialize( uf::Object& self ) { renderMode.metadata.pipelines.emplace_back(uf::renderer::settings::pipelines::names::vxgi); renderMode.metadata.samples = 1; // renderMode.metadata.subpasses = metadata.cascades; - renderMode.renderTarget.views = metadata.cascades; + renderMode.metadata.views = metadata.cascades; renderMode.width = metadata.fragmentSize.x; renderMode.height = metadata.fragmentSize.y; @@ -322,7 +322,7 @@ void ext::VoxelizerSceneBehavior::tick( uf::Object& self ) { if ( renderMode.metadata.limiter.execute ) { // if ( should ) { auto& controller = scene.getController(); - auto& camera = scene.getCamera( controller ); // controller.getComponent(); + auto& camera = scene.getCamera( controller ); auto controllerTransform = uf::transform::flatten( camera.getTransform() ); float voxelWorldSizeX = (metadata.extents.max.x - metadata.extents.min.x) / (float)(metadata.voxelSize.x); diff --git a/engine/src/engine/scene/scene.cpp b/engine/src/engine/scene/scene.cpp index 218ca981..59e4161a 100644 --- a/engine/src/engine/scene/scene.cpp +++ b/engine/src/engine/scene/scene.cpp @@ -89,7 +89,7 @@ uf::Camera& uf::Scene::getCamera( uf::Entity& controller ) { cachedCamera.setProjection(sourceCamera.getProjection(i), i); } // flatten the transform in the event the parent transform updates later - cachedCamera.setTransform(uf::transform::flatten(cachedCamera.getTransform())); + cachedCamera.setTransform(uf::transform::flatten(sourceCamera.getTransform())); lastFrame = uf::time::frame; } return cachedCamera;