Fixing float data bug
This commit is contained in:
@@ -23,17 +23,17 @@ float4 fragmentMain(in FragmentParameter params) : SV_Target
|
|||||||
float3 result = float3(0, 0, 0);
|
float3 result = float3(0, 0, 0);
|
||||||
for(int i = 0; i < pLightEnv.numDirectionalLights; ++i)
|
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)
|
for(uint i = 0; i < pLightEnv.numPointLights; ++i)
|
||||||
{
|
{
|
||||||
//uint lightIndex = pLightCullingData.lightIndexList[startOffset + i];
|
//uint lightIndex = pLightCullingData.lightIndexList[startOffset + i];
|
||||||
//result += pLightEnv.pointLights[i].illuminate(lightingParams, brdf);
|
result += pLightEnv.pointLights[i].illuminate(lightingParams, brdf);
|
||||||
}
|
}
|
||||||
result += brdf.evaluateAmbient();
|
result += brdf.evaluateAmbient();
|
||||||
// gamma correction
|
// gamma correction
|
||||||
//result = result / (result + float3(1.0));
|
//result = result / (result + float3(1.0));
|
||||||
//result = pow(result, float3(1.0/2.2));
|
//result = pow(result, float3(1.0/2.2));
|
||||||
return float4(result, 1.0f);
|
return float4(result, brdf.getAlpha());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ void VertexData::updateMesh(entt::entity id, uint32 meshIndex, PMesh mesh, Compo
|
|||||||
auto [instanceId, meshletOffset] = getCullingMapping(id, meshIndex, data.numMeshlets);
|
auto [instanceId, meshletOffset] = getCullingMapping(id, meshIndex, data.numMeshlets);
|
||||||
|
|
||||||
referencedInstance->updateDescriptor();
|
referencedInstance->updateDescriptor();
|
||||||
if (false && mat->hasTransparency()) {
|
if (mat->hasTransparency()) {
|
||||||
auto params = referencedInstance->getMaterialOffsets();
|
auto params = referencedInstance->getMaterialOffsets();
|
||||||
transparentData.add(TransparentDraw{
|
transparentData.add(TransparentDraw{
|
||||||
.matInst = referencedInstance,
|
.matInst = referencedInstance,
|
||||||
@@ -136,15 +136,11 @@ void VertexData::createDescriptors() {
|
|||||||
instance.offsets.textureOffset = offsets.textureOffset;
|
instance.offsets.textureOffset = offsets.textureOffset;
|
||||||
instance.offsets.samplerOffset = offsets.samplerOffset;
|
instance.offsets.samplerOffset = offsets.samplerOffset;
|
||||||
instance.offsets.floatOffset = offsets.floatOffset;
|
instance.offsets.floatOffset = offsets.floatOffset;
|
||||||
// instance.offsets.cullingCounterOffset = cullingOffsets.size();
|
|
||||||
// instance.numMeshlets = 0;
|
|
||||||
for (size_t i = 0; i < instance.instanceData.size(); ++i) {
|
for (size_t i = 0; i < instance.instanceData.size(); ++i) {
|
||||||
cullingOffsets.add(instance.cullingOffsets[i]);
|
cullingOffsets.add(instance.cullingOffsets[i]);
|
||||||
instanceData.add(instance.instanceData[i]);
|
instanceData.add(instance.instanceData[i]);
|
||||||
instanceMeshData.add(instance.instanceMeshData[i]);
|
instanceMeshData.add(instance.instanceMeshData[i]);
|
||||||
rayTracingScene.add(instance.rayTracingData[i]);
|
rayTracingScene.add(instance.rayTracingData[i]);
|
||||||
// instance.numMeshlets += instance.instanceMeshData[i].numMeshlets;
|
|
||||||
// cullingOffsets.add(numMeshlets);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ void Material::updateDescriptor() {
|
|||||||
.sourceData =
|
.sourceData =
|
||||||
{
|
{
|
||||||
.size = floatData.size() * sizeof(float),
|
.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,
|
floatBuffer->pipelineBarrier(Gfx::SE_ACCESS_TRANSFER_WRITE_BIT, Gfx::SE_PIPELINE_STAGE_TRANSFER_BIT, Gfx::SE_ACCESS_SHADER_READ_BIT,
|
||||||
|
|||||||
Reference in New Issue
Block a user