Final skeletal fixes
This commit is contained in:
parent
3efe62ddbe
commit
b37af6da31
|
|
@ -87,8 +87,6 @@ int main()
|
||||||
Nz::MeshParams meshParams;
|
Nz::MeshParams meshParams;
|
||||||
meshParams.animated = true;
|
meshParams.animated = true;
|
||||||
meshParams.center = 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.vertexScale = Nz::Vector3f(0.1f, 0.1f, 0.1f);
|
||||||
meshParams.vertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_Normal_UV_Tangent_Skinning);
|
meshParams.vertexDeclaration = Nz::VertexDeclaration::Get(Nz::VertexLayout::XYZ_Normal_UV_Tangent_Skinning);
|
||||||
|
|
||||||
|
|
@ -105,7 +103,7 @@ int main()
|
||||||
animParam.jointScale = meshParams.vertexScale;
|
animParam.jointScale = meshParams.vertexScale;
|
||||||
animParam.jointOffset = meshParams.vertexOffset;
|
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)
|
if (!bobAnim)
|
||||||
{
|
{
|
||||||
NazaraError("Failed to load bob anim");
|
NazaraError("Failed to load bob anim");
|
||||||
|
|
@ -253,6 +251,14 @@ int main()
|
||||||
|
|
||||||
window.EnableEventPolling(true);
|
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;
|
Nz::Clock fpsClock, updateClock;
|
||||||
float incr = 0.f;
|
float incr = 0.f;
|
||||||
unsigned int currentFrame = 0;
|
unsigned int currentFrame = 0;
|
||||||
|
|
@ -388,30 +394,9 @@ int main()
|
||||||
playerShipBody.AddForce(Nz::Vector3f::Down() * 3.f * mass, Nz::CoordSys::Local);*/
|
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();
|
systemGraph.Update();
|
||||||
|
|
||||||
frame.Present();
|
|
||||||
|
|
||||||
fps++;
|
fps++;
|
||||||
|
|
||||||
if (fpsClock.GetMilliseconds() >= 1000)
|
if (fpsClock.GetMilliseconds() >= 1000)
|
||||||
|
|
|
||||||
|
|
@ -214,6 +214,8 @@ namespace Nz
|
||||||
{
|
{
|
||||||
builder.PreTransferBarrier();
|
builder.PreTransferBarrier();
|
||||||
|
|
||||||
|
OnTransfer(this, renderFrame, builder);
|
||||||
|
|
||||||
for (std::size_t viewerIndex = m_invalidatedViewerInstances.FindFirst(); viewerIndex != m_invalidatedViewerInstances.npos; viewerIndex = m_invalidatedViewerInstances.FindNext(viewerIndex))
|
for (std::size_t viewerIndex = m_invalidatedViewerInstances.FindFirst(); viewerIndex != m_invalidatedViewerInstances.npos; viewerIndex = m_invalidatedViewerInstances.FindNext(viewerIndex))
|
||||||
{
|
{
|
||||||
ViewerData* viewerData = m_viewerPool.RetrieveFromIndex(viewerIndex);
|
ViewerData* viewerData = m_viewerPool.RetrieveFromIndex(viewerIndex);
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,10 @@ namespace Nz
|
||||||
#include <Nazara/Graphics/Resources/Shaders/Modules/Engine/LightData.nzslb.h>
|
#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[] = {
|
const UInt8 r_viewerDataModule[] = {
|
||||||
#include <Nazara/Graphics/Resources/Shaders/Modules/Engine/ViewerData.nzslb.h>
|
#include <Nazara/Graphics/Resources/Shaders/Modules/Engine/ViewerData.nzslb.h>
|
||||||
};
|
};
|
||||||
|
|
@ -233,6 +237,7 @@ namespace Nz
|
||||||
RegisterEmbedShaderModule(r_mathCookTorrancePBRModule);
|
RegisterEmbedShaderModule(r_mathCookTorrancePBRModule);
|
||||||
RegisterEmbedShaderModule(r_phongMaterialShader);
|
RegisterEmbedShaderModule(r_phongMaterialShader);
|
||||||
RegisterEmbedShaderModule(r_physicallyBasedMaterialShader);
|
RegisterEmbedShaderModule(r_physicallyBasedMaterialShader);
|
||||||
|
RegisterEmbedShaderModule(r_skeletalDataModule);
|
||||||
RegisterEmbedShaderModule(r_textureBlitShader);
|
RegisterEmbedShaderModule(r_textureBlitShader);
|
||||||
RegisterEmbedShaderModule(r_viewerDataModule);
|
RegisterEmbedShaderModule(r_viewerDataModule);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ fn billboardMain(input: VertIn) -> VertOut
|
||||||
fn main(input: VertIn) -> VertOut
|
fn main(input: VertIn) -> VertOut
|
||||||
{
|
{
|
||||||
let pos: vec3[f32];
|
let pos: vec3[f32];
|
||||||
const if (HasSkinning && false)
|
const if (HasSkinning)
|
||||||
{
|
{
|
||||||
pos = vec3[f32](0.0, 0.0, 0.0);
|
pos = vec3[f32](0.0, 0.0, 0.0);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue