mirror of
https://github.com/ZDoom/ZDRay.git
synced 2024-11-25 05:11:20 +00:00
Fix shadows not working for non-rt render path
This commit is contained in:
parent
bfc00410c4
commit
3d9cf5bc06
1 changed files with 10 additions and 5 deletions
|
@ -491,6 +491,11 @@ void VkLevelMeshUploader::EndTransfer(size_t transferBufferSize)
|
||||||
Mesh->fb->GetCommands()->TransferDeleteList->Add(std::move(transferBuffer));
|
Mesh->fb->GetCommands()->TransferDeleteList->Add(std::move(transferBuffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FVector3 SwapYZ(const FVector3& v)
|
||||||
|
{
|
||||||
|
return FVector3(v.X, v.Z, v.Y);
|
||||||
|
}
|
||||||
|
|
||||||
void VkLevelMeshUploader::UploadNodes()
|
void VkLevelMeshUploader::UploadNodes()
|
||||||
{
|
{
|
||||||
// Copy node buffer header and create a root node that merges the static and dynamic AABB trees
|
// Copy node buffer header and create a root node that merges the static and dynamic AABB trees
|
||||||
|
@ -509,8 +514,8 @@ void VkLevelMeshUploader::UploadNodes()
|
||||||
nodesHeader.root = locations[1].Node.Offset + locations[1].Node.Size;
|
nodesHeader.root = locations[1].Node.Offset + locations[1].Node.Size;
|
||||||
|
|
||||||
CollisionNode info;
|
CollisionNode info;
|
||||||
info.center = bbox.Center;
|
info.center = SwapYZ(bbox.Center);
|
||||||
info.extents = bbox.Extents;
|
info.extents = SwapYZ(bbox.Extents);
|
||||||
info.left = locations[0].Node.Offset + root0;
|
info.left = locations[0].Node.Offset + root0;
|
||||||
info.right = locations[1].Node.Offset + root1;
|
info.right = locations[1].Node.Offset + root1;
|
||||||
info.element_index = -1;
|
info.element_index = -1;
|
||||||
|
@ -541,8 +546,8 @@ void VkLevelMeshUploader::UploadNodes()
|
||||||
for (auto& node : submesh->Collision->get_nodes())
|
for (auto& node : submesh->Collision->get_nodes())
|
||||||
{
|
{
|
||||||
CollisionNode info;
|
CollisionNode info;
|
||||||
info.center = node.aabb.Center;
|
info.center = SwapYZ(node.aabb.Center);
|
||||||
info.extents = node.aabb.Extents;
|
info.extents = SwapYZ(node.aabb.Extents);
|
||||||
info.left = node.left != -1 ? node.left + cur.Node.Offset : -1;
|
info.left = node.left != -1 ? node.left + cur.Node.Offset : -1;
|
||||||
info.right = node.right != -1 ? node.right + cur.Node.Offset : -1;
|
info.right = node.right != -1 ? node.right + cur.Node.Offset : -1;
|
||||||
info.element_index = node.element_index != -1 ? node.element_index + cur.Index.Offset : -1;
|
info.element_index = node.element_index != -1 ? node.element_index + cur.Index.Offset : -1;
|
||||||
|
@ -551,7 +556,7 @@ void VkLevelMeshUploader::UploadNodes()
|
||||||
|
|
||||||
size_t copysize = submesh->Collision->get_nodes().size() * sizeof(CollisionNode);
|
size_t copysize = submesh->Collision->get_nodes().size() * sizeof(CollisionNode);
|
||||||
if (copysize > 0)
|
if (copysize > 0)
|
||||||
cmdbuffer->copyBuffer(transferBuffer.get(), Mesh->NodeBuffer.get(), datapos, +sizeof(CollisionNodeBufferHeader) + cur.Node.Offset * sizeof(CollisionNode), copysize);
|
cmdbuffer->copyBuffer(transferBuffer.get(), Mesh->NodeBuffer.get(), datapos, sizeof(CollisionNodeBufferHeader) + cur.Node.Offset * sizeof(CollisionNode), copysize);
|
||||||
datapos += copysize;
|
datapos += copysize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue