diff --git a/res/shaders/BasePass.slang b/res/shaders/BasePass.slang index 4e7e73b..219ab0c 100644 --- a/res/shaders/BasePass.slang +++ b/res/shaders/BasePass.slang @@ -23,17 +23,17 @@ float4 fragmentMain(in FragmentParameter params) : SV_Target float3 result = float3(0, 0, 0); for(int i = 0; i < pLightEnv.numDirectionalLights; ++i) { - //result += pLightEnv.directionalLights[i].illuminate(lightingParams, brdf); + result += pLightEnv.directionalLights[i].illuminate(lightingParams, brdf); } for(uint i = 0; i < pLightEnv.numPointLights; ++i) { //uint lightIndex = pLightCullingData.lightIndexList[startOffset + i]; - //result += pLightEnv.pointLights[i].illuminate(lightingParams, brdf); + result += pLightEnv.pointLights[i].illuminate(lightingParams, brdf); } result += brdf.evaluateAmbient(); // gamma correction //result = result / (result + float3(1.0)); //result = pow(result, float3(1.0/2.2)); - return float4(result, 1.0f); + return float4(result, brdf.getAlpha()); } \ No newline at end of file diff --git a/src/Engine/Graphics/VertexData.cpp b/src/Engine/Graphics/VertexData.cpp index 6acd271..d118154 100644 --- a/src/Engine/Graphics/VertexData.cpp +++ b/src/Engine/Graphics/VertexData.cpp @@ -51,7 +51,7 @@ void VertexData::updateMesh(entt::entity id, uint32 meshIndex, PMesh mesh, Compo auto [instanceId, meshletOffset] = getCullingMapping(id, meshIndex, data.numMeshlets); referencedInstance->updateDescriptor(); - if (false && mat->hasTransparency()) { + if (mat->hasTransparency()) { auto params = referencedInstance->getMaterialOffsets(); transparentData.add(TransparentDraw{ .matInst = referencedInstance, @@ -136,15 +136,11 @@ void VertexData::createDescriptors() { instance.offsets.textureOffset = offsets.textureOffset; instance.offsets.samplerOffset = offsets.samplerOffset; instance.offsets.floatOffset = offsets.floatOffset; - // instance.offsets.cullingCounterOffset = cullingOffsets.size(); - // instance.numMeshlets = 0; for (size_t i = 0; i < instance.instanceData.size(); ++i) { cullingOffsets.add(instance.cullingOffsets[i]); instanceData.add(instance.instanceData[i]); instanceMeshData.add(instance.instanceMeshData[i]); rayTracingScene.add(instance.rayTracingData[i]); - // instance.numMeshlets += instance.instanceMeshData[i].numMeshlets; - // cullingOffsets.add(numMeshlets); } } } diff --git a/src/Engine/Material/Material.cpp b/src/Engine/Material/Material.cpp index bbf6191..061a61f 100644 --- a/src/Engine/Material/Material.cpp +++ b/src/Engine/Material/Material.cpp @@ -75,6 +75,7 @@ void Material::updateDescriptor() { .sourceData = { .size = floatData.size() * sizeof(float), + .data = (uint8*)floatData.data(), }, }); floatBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_SHADER_READ_BIT,