Hook up HWWall and use the real main.fp shader for the level mesh
This commit is contained in:
parent
5f50160108
commit
d0d964ae42
8 changed files with 207 additions and 116 deletions
|
|
@ -314,7 +314,6 @@ void VkRaytrace::UploadMeshes(bool dynamicOnly)
|
|||
{
|
||||
info.TextureIndex = 0;
|
||||
}
|
||||
submesh->MeshSurfaceUniforms[j].uTextureIndex = info.TextureIndex; // Bit of a hack, but we don't know the texture index before now
|
||||
|
||||
*(surfaces++) = info;
|
||||
}
|
||||
|
|
@ -331,6 +330,22 @@ void VkRaytrace::UploadMeshes(bool dynamicOnly)
|
|||
const SubmeshBufferLocation& cur = locations[i];
|
||||
auto submesh = cur.Submesh;
|
||||
|
||||
for (int j = 0, count = submesh->MeshSurfaceUniforms.Size(); j < count; j++)
|
||||
{
|
||||
auto& surfaceUniforms = submesh->MeshSurfaceUniforms[j];
|
||||
auto& material = submesh->MeshSurfaceMaterials[j];
|
||||
if (material.mMaterial)
|
||||
{
|
||||
auto source = material.mMaterial->Source();
|
||||
surfaceUniforms.uSpecularMaterial = { source->GetGlossiness(), source->GetSpecularLevel() };
|
||||
surfaceUniforms.uTextureIndex = fb->GetBindlessTextureIndex(material.mMaterial, material.mClampMode, material.mTranslation);
|
||||
}
|
||||
else
|
||||
{
|
||||
surfaceUniforms.uTextureIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
SurfaceUniforms* uniforms = (SurfaceUniforms*)(data + datapos);
|
||||
size_t copysize = submesh->MeshSurfaceUniforms.Size() * sizeof(SurfaceUniforms);
|
||||
memcpy(uniforms, submesh->MeshSurfaceUniforms.Data(), copysize);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue