Browse Source

Re-export skeletal anim sample

Panagiotis Christopoulos Charitos 2 years ago
parent
commit
1402ac332a

+ 1 - 1
AnKi/Core/ConfigVars.defs.h

@@ -15,7 +15,7 @@ ANKI_CONFIG_VAR_U32(Width, 1920, 16, 16 * 1024, "Width")
 ANKI_CONFIG_VAR_U32(Height, 1080, 16, 16 * 1024, "Height")
 ANKI_CONFIG_VAR_U32(WindowFullscreen, 1, 0, 2, "0: windowed, 1: borderless fullscreen, 2: exclusive fullscreen")
 
-ANKI_CONFIG_VAR_U32(CoreTargetFps, 60u, 30u, kMaxU32, "Target FPS")
+ANKI_CONFIG_VAR_U32(CoreTargetFps, 60u, 1u, kMaxU32, "Target FPS")
 ANKI_CONFIG_VAR_U32(CoreJobThreadCount, max(2u, getCpuCoresCount() / 2u), 2u, 1024u, "Number of job thread")
 ANKI_CONFIG_VAR_U32(CoreDisplayStats, 0, 0, 2, "Display stats, 0: None, 1: Simple, 2: Detailed")
 ANKI_CONFIG_VAR_BOOL(CoreClearCaches, false, "Clear all caches")

+ 3 - 2
AnKi/Scene/Components/ModelComponent.cpp

@@ -295,12 +295,13 @@ void ModelComponent::onOtherComponentRemovedOrAdded(SceneComponent* other, Bool
 		return;
 	}
 
-	if(added && m_skinComponent != nullptr)
+	const Bool alreadyHasSkinComponent = m_skinComponent != nullptr;
+	if(added && !alreadyHasSkinComponent)
 	{
 		m_skinComponent = static_cast<SkinComponent*>(other);
 		m_dirty = true;
 	}
-	else if(other == m_skinComponent)
+	else if(!added && other == m_skinComponent)
 	{
 		m_skinComponent = nullptr;
 		m_dirty = true;

+ 32 - 31
Samples/SkeletalAnimation/Assets/Scene.lua

@@ -1,20 +1,20 @@
--- Generated by: C:\Users\godli\src\anki\out\build\x64-Debug\Bin\GltfImporter.exe droid.gltf C:/Users/godli/src/anki/Samples/SkeletalAnimation/Assets/ -rpath Assets -texrpath Assets -v
+-- Generated by: C:\src\anki\out\build\x64-Release\Bin\GltfImporter.exe droid.gltf C:/src/anki/Samples/SkeletalAnimation/Assets/ -rpath Assets -texrpath Assets -v
 local scene = getSceneGraph()
 local events = getEventManager()
 
-node = scene:newModelNode("droid.001")
-node:getSceneNodeBase():getModelComponent():loadModelResource("Assets/Mesh_Robot.001_514ce62fac09d811.ankimdl")
-node:getSceneNodeBase():getSkinComponent():loadSkeletonResource("Assets/Armature.002_9ddcea0a08bd9d11.ankiskel")
+node = scene:newSceneNode("droid.001")
+node:newModelComponent():loadModelResource("Assets/Mesh_Robot.001_514ce62fac09d811.ankimdl")
+node:newSkinComponent():loadSkeletonResource("Assets/Armature.002_9ddcea0a08bd9d11.ankiskel")
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 0.000000, 0.000000, 0))
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(1.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newGlobalIlluminationProbeNode("Cube")
-comp = node:getSceneNodeBase():getGlobalIlluminationProbeComponent()
+node = scene:newSceneNode("Cube")
+comp = node:newGlobalIlluminationProbeComponent()
 comp:setBoxVolumeSize(Vec3.new(19.286558, 19.286558, 19.286558))
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 11.057286, 0.000000, 0))
@@ -22,10 +22,10 @@ rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(1.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newReflectionProbeNode("Cube.001")
-comp = node:getSceneNodeBase():getReflectionProbeComponent()
+node = scene:newSceneNode("Cube.001")
+comp = node:newReflectionProbeComponent()
 comp:setBoxVolumeSize(Vec3.new(18.543777, 18.543777, 18.543777))
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 11.057286, 0.000000, 0))
@@ -33,20 +33,21 @@ rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(1.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newModelNode("room")
-node:getSceneNodeBase():getModelComponent():loadModelResource("Assets/room_room_2c303a64377351de.ankimdl")
+node = scene:newSceneNode("room")
+node:newModelComponent():loadModelResource("Assets/room_room_2c303a64377351de.ankimdl")
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 11.142166, 0.000000, 0))
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(9.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newPointLightNode("Lamp")
-lcomp = node:getSceneNodeBase():getLightComponent()
+node = scene:newSceneNode("Lamp")
+lcomp = node:newLightComponent()
+lcomp:setLightComponentType(LightComponentType.kPoint)
 lcomp:setDiffuseColor(Vec4.new(100.000000, 100.000000, 100.000000, 1))
 lcomp:setShadowEnabled(1)
 lcomp:setRadius(100.000000)
@@ -56,46 +57,46 @@ rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, -0.000000, 1.000000, 0.000000, 0.000000, -1.000000, -0.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(1.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newPerspectiveCameraNode("Camera")
-scene:setActiveCameraNode(node:getSceneNodeBase())
-frustumc = node:getSceneNodeBase():getFrustumComponent()
-frustumc:setPerspective(0.100000, 200.000000, getMainRenderer():getAspectRatio() * 0.750416, 0.750416)
+node = scene:newSceneNode("Camera")
+scene:setActiveCameraNode(node)
+comp = node:newCameraComponent()
+comp:setPerspective(0.100000, 200.000000, getMainRenderer():getAspectRatio() * 0.750416, 0.750416)
 trf = Transform.new()
 trf:setOrigin(Vec4.new(5.526846, 8.527484, -6.015655, 0))
 rot = Mat3x4.new()
 rot:setAll(-0.805081, -0.216096, 0.552401, 0.000000, 0.056206, 0.899296, 0.433714, 0.000000, -0.590496, 0.380223, -0.711860, 0.000000)
 trf:setRotation(rot)
 trf:setScale(1.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newModelNode("room.001")
-node:getSceneNodeBase():getModelComponent():loadModelResource("Assets/room.001_room.red_99eb56f1f0b59f98.ankimdl")
+node = scene:newSceneNode("room.001")
+node:newModelComponent():loadModelResource("Assets/room.001_room.red_99eb56f1f0b59f98.ankimdl")
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 11.142166, 0.000000, 0))
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(9.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newModelNode("room.002")
-node:getSceneNodeBase():getModelComponent():loadModelResource("Assets/room.002_room.green_acfa0c3d40cf5fea.ankimdl")
+node = scene:newSceneNode("room.002")
+node:newModelComponent():loadModelResource("Assets/room.002_room.green_acfa0c3d40cf5fea.ankimdl")
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 11.142166, 0.000000, 0))
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(9.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)
 
-node = scene:newModelNode("room.003")
-node:getSceneNodeBase():getModelComponent():loadModelResource("Assets/room.003_room.blue_1d4e9304c9ecd2fe.ankimdl")
+node = scene:newSceneNode("room.003")
+node:newModelComponent():loadModelResource("Assets/room.003_room.blue_1d4e9304c9ecd2fe.ankimdl")
 trf = Transform.new()
 trf:setOrigin(Vec4.new(0.000000, 11.142166, 0.000000, 0))
 rot = Mat3x4.new()
 rot:setAll(1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000)
 trf:setRotation(rot)
 trf:setScale(9.000000)
-node:getSceneNodeBase():getMoveComponent():setLocalTransform(trf)
+node:setLocalTransform(trf)