Final skeletal fixes
This commit is contained in:
parent
3efe62ddbe
commit
b37af6da31
|
|
@ -87,8 +87,6 @@ int main()
|
|||
Nz::MeshParams meshParams;
|
||||
meshParams.animated = true;
|
||||
meshParams.center = true;
|
||||
meshParams.vertexOffset = Nz::Vector3f(3.f, 0.f, 0.f);
|
||||
meshParams.vertexRotation = Nz::EulerAnglesf(0.f, 0.f, 0.f);
|
||||
meshParams.vertexScale = Nz::Vector3f(0.1f, 0.1f, 0.1f);
|
||||
meshParams.vertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_Normal_UV_Tangent_Skinning);
|
||||
|
||||
|
|
@ -105,7 +103,7 @@ int main()
|
|||
animParam.jointScale = meshParams.vertexScale;
|
||||
animParam.jointOffset = meshParams.vertexOffset;
|
||||
|
||||
std::shared_ptr<Nz::Animation> bobAnim = Nz::Animation::LoadFromFile(resourceDir / "character/Wave Hip Hop Dance.fbx", animParam);
|
||||
std::shared_ptr<Nz::Animation> bobAnim = Nz::Animation::LoadFromFile(resourceDir / "character/Gangnam Style.fbx", animParam);
|
||||
if (!bobAnim)
|
||||
{
|
||||
NazaraError("Failed to load bob anim");
|
||||
|
|
@ -253,6 +251,14 @@ int main()
|
|||
|
||||
window.EnableEventPolling(true);
|
||||
|
||||
renderSystem.GetFramePipeline().OnTransfer.Connect([&](Nz::FramePipeline* pipeline, Nz::RenderFrame& renderFrame, Nz::CommandBufferBuilder& builder)
|
||||
{
|
||||
auto& skeletalAllocation = renderFrame.GetUploadPool().Allocate(skeletalBufferMem.size());
|
||||
std::memcpy(skeletalAllocation.mappedPtr, skeletalBufferMem.data(), skeletalBufferMem.size());
|
||||
|
||||
builder.CopyBuffer(skeletalAllocation, Nz::RenderBufferView(renderBuffer.get()));
|
||||
});
|
||||
|
||||
Nz::Clock fpsClock, updateClock;
|
||||
float incr = 0.f;
|
||||
unsigned int currentFrame = 0;
|
||||
|
|
@ -388,30 +394,9 @@ int main()
|
|||
playerShipBody.AddForce(Nz::Vector3f::Down() * 3.f * mass, Nz::CoordSys::Local);*/
|
||||
}
|
||||
|
||||
Nz::RenderFrame frame = window.AcquireFrame();
|
||||
if (!frame)
|
||||
continue;
|
||||
|
||||
frame.Execute([&](Nz::CommandBufferBuilder& builder)
|
||||
{
|
||||
builder.BeginDebugRegion("Skeletal UBO Update", Nz::Color::Yellow);
|
||||
{
|
||||
builder.PreTransferBarrier();
|
||||
|
||||
auto& skeletalAllocation = frame.GetUploadPool().Allocate(skeletalBufferMem.size());
|
||||
std::memcpy(skeletalAllocation.mappedPtr, skeletalBufferMem.data(), skeletalBufferMem.size());
|
||||
|
||||
builder.CopyBuffer(skeletalAllocation, Nz::RenderBufferView(renderBuffer.get()));
|
||||
|
||||
builder.PostTransferBarrier();
|
||||
}
|
||||
builder.EndDebugRegion();
|
||||
}, Nz::QueueType::Graphics);
|
||||
|
||||
systemGraph.Update();
|
||||
|
||||
frame.Present();
|
||||
|
||||
fps++;
|
||||
|
||||
if (fpsClock.GetMilliseconds() >= 1000)
|
||||
|
|
|
|||
|
|
@ -214,6 +214,8 @@ namespace Nz
|
|||
{
|
||||
builder.PreTransferBarrier();
|
||||
|
||||
OnTransfer(this, renderFrame, builder);
|
||||
|
||||
for (std::size_t viewerIndex = m_invalidatedViewerInstances.FindFirst(); viewerIndex != m_invalidatedViewerInstances.npos; viewerIndex = m_invalidatedViewerInstances.FindNext(viewerIndex))
|
||||
{
|
||||
ViewerData* viewerData = m_viewerPool.RetrieveFromIndex(viewerIndex);
|
||||
|
|
|
|||
|
|
@ -50,6 +50,10 @@ namespace Nz
|
|||
#include <Nazara/Graphics/Resources/Shaders/Modules/Engine/LightData.nzslb.h>
|
||||
};
|
||||
|
||||
const UInt8 r_skeletalDataModule[] = {
|
||||
#include <Nazara/Graphics/Resources/Shaders/Modules/Engine/SkeletalData.nzslb.h>
|
||||
};
|
||||
|
||||
const UInt8 r_viewerDataModule[] = {
|
||||
#include <Nazara/Graphics/Resources/Shaders/Modules/Engine/ViewerData.nzslb.h>
|
||||
};
|
||||
|
|
@ -233,6 +237,7 @@ namespace Nz
|
|||
RegisterEmbedShaderModule(r_mathCookTorrancePBRModule);
|
||||
RegisterEmbedShaderModule(r_phongMaterialShader);
|
||||
RegisterEmbedShaderModule(r_physicallyBasedMaterialShader);
|
||||
RegisterEmbedShaderModule(r_skeletalDataModule);
|
||||
RegisterEmbedShaderModule(r_textureBlitShader);
|
||||
RegisterEmbedShaderModule(r_viewerDataModule);
|
||||
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ fn billboardMain(input: VertIn) -> VertOut
|
|||
fn main(input: VertIn) -> VertOut
|
||||
{
|
||||
let pos: vec3[f32];
|
||||
const if (HasSkinning && false)
|
||||
const if (HasSkinning)
|
||||
{
|
||||
pos = vec3[f32](0.0, 0.0, 0.0);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue