Skip to content
This repository has been archived by the owner on Jan 19, 2023. It is now read-only.

Commit

Permalink
Add AnimationImporters & tainicom.Aether.Animation
Browse files Browse the repository at this point in the history
* AnimationsProcessor.cs - Import animations from a Model.
* GpuAnimatedModelProcessor - Import an animated Model.
* CpuAnimatedModelProcessor - Import an animated Model to be animated by
the CPU. Based on DynamicModelProcessor, the imported asset is of type
Microsoft.Xna.Framework.Graphics.Model where the VertexBuffer is
replaced by a CpuAnimatedVertexBuffer. CpuAnimatedVertexBuffer inherits
from DynamicVertexBuffer.

Add tainicom.Aether.Animation

Play animated 3D models and support for CPU animation.
CPU animation is optimized using unsafe code, writing directly to mapped
VertexBuffer memory using reflection (DirectX) and unmanaged/C++ code
(WP8.0).
  • Loading branch information
nkast committed Dec 13, 2016
1 parent 2357002 commit 24202d8
Show file tree
Hide file tree
Showing 85 changed files with 4,145 additions and 0 deletions.
13 changes: 13 additions & 0 deletions Aether.Extras.PORTABLE.sln
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GraphicsImporters.PORTABLE"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Graphics.PORTABLE", "Graphics\Aether.Graphics.PORTABLE.csproj", "{3E3BB349-662A-4628-B033-154CB8CD2F2A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.PORTABLE", "Animation\Aether.Animation.PORTABLE.csproj", "{11DC5896-8B7A-43ED-978C-45D0ECD4DD42}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimationImporters.PORTABLE", "Content.Pipeline\AnimationImporters\AnimationImporters.PORTABLE.csproj", "{962D579A-91F7-4FAB-940A-423E04B8465E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -29,12 +33,21 @@ Global
{3E3BB349-662A-4628-B033-154CB8CD2F2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3E3BB349-662A-4628-B033-154CB8CD2F2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3E3BB349-662A-4628-B033-154CB8CD2F2A}.Release|Any CPU.Build.0 = Release|Any CPU
{11DC5896-8B7A-43ED-978C-45D0ECD4DD42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11DC5896-8B7A-43ED-978C-45D0ECD4DD42}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11DC5896-8B7A-43ED-978C-45D0ECD4DD42}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11DC5896-8B7A-43ED-978C-45D0ECD4DD42}.Release|Any CPU.Build.0 = Release|Any CPU
{962D579A-91F7-4FAB-940A-423E04B8465E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{962D579A-91F7-4FAB-940A-423E04B8465E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{962D579A-91F7-4FAB-940A-423E04B8465E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{962D579A-91F7-4FAB-940A-423E04B8465E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{C3218A39-5491-44BF-B820-754832E318DB} = {717F89BC-8423-4E7C-A834-460CFD62B1E3}
{0A079394-D331-433A-94DF-AA25B6522279} = {717F89BC-8423-4E7C-A834-460CFD62B1E3}
{962D579A-91F7-4FAB-940A-423E04B8465E} = {717F89BC-8423-4E7C-A834-460CFD62B1E3}
EndGlobalSection
EndGlobal
40 changes: 40 additions & 0 deletions Aether.Extras.W10.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.W10", "Animation\Aether.Animation.W10.csproj", "{A312F64C-A5D4-4B28-A250-3A75CD5C4952}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|ARM.ActiveCfg = Debug|ARM
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|ARM.Build.0 = Debug|ARM
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|x64.ActiveCfg = Debug|x64
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|x64.Build.0 = Debug|x64
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|x86.ActiveCfg = Debug|x86
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Debug|x86.Build.0 = Debug|x86
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|Any CPU.Build.0 = Release|Any CPU
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|ARM.ActiveCfg = Release|ARM
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|ARM.Build.0 = Release|ARM
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|x64.ActiveCfg = Release|x64
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|x64.Build.0 = Release|x64
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|x86.ActiveCfg = Release|x86
{A312F64C-A5D4-4B28-A250-3A75CD5C4952}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
22 changes: 22 additions & 0 deletions Aether.Extras.W8_1.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.W8_1", "Animation\Aether.Animation.W8_1.csproj", "{AEE9C708-BDBD-4E8B-B85F-2DB9FA717436}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AEE9C708-BDBD-4E8B-B85F-2DB9FA717436}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AEE9C708-BDBD-4E8B-B85F-2DB9FA717436}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AEE9C708-BDBD-4E8B-B85F-2DB9FA717436}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AEE9C708-BDBD-4E8B-B85F-2DB9FA717436}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
13 changes: 13 additions & 0 deletions Aether.Extras.WINDOWS.MG.sln
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GraphicsImporters.WINDOWS.M
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Graphics.WINDOWS.MG", "Graphics\Aether.Graphics.WINDOWS.MG.csproj", "{0A4ED2DF-9CDD-4C98-83AA-1898A394AC27}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimationImporters.WINDOWS.MG", "Content.Pipeline\AnimationImporters\AnimationImporters.WINDOWS.MG.csproj", "{D9A47306-DEE0-4410-BC2C-BA8FFCE682A3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.WINDOWS.MG", "Animation\Aether.Animation.WINDOWS.MG.csproj", "{F08D6D4C-60FB-4543-8D81-594080EB8051}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -35,6 +39,14 @@ Global
{0A4ED2DF-9CDD-4C98-83AA-1898A394AC27}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0A4ED2DF-9CDD-4C98-83AA-1898A394AC27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0A4ED2DF-9CDD-4C98-83AA-1898A394AC27}.Release|Any CPU.Build.0 = Release|Any CPU
{D9A47306-DEE0-4410-BC2C-BA8FFCE682A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D9A47306-DEE0-4410-BC2C-BA8FFCE682A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D9A47306-DEE0-4410-BC2C-BA8FFCE682A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D9A47306-DEE0-4410-BC2C-BA8FFCE682A3}.Release|Any CPU.Build.0 = Release|Any CPU
{F08D6D4C-60FB-4543-8D81-594080EB8051}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F08D6D4C-60FB-4543-8D81-594080EB8051}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F08D6D4C-60FB-4543-8D81-594080EB8051}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F08D6D4C-60FB-4543-8D81-594080EB8051}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -43,5 +55,6 @@ Global
{26C387C6-7313-47D4-A05F-14639AB02D70} = {A921886B-C6F7-4FF8-8668-EC20004C464A}
{48E4029A-115C-4DC2-AF3A-0AB94F36BFC0} = {A921886B-C6F7-4FF8-8668-EC20004C464A}
{400DC7B2-739D-4156-916D-2F2E1920310D} = {A921886B-C6F7-4FF8-8668-EC20004C464A}
{D9A47306-DEE0-4410-BC2C-BA8FFCE682A3} = {A921886B-C6F7-4FF8-8668-EC20004C464A}
EndGlobalSection
EndGlobal
13 changes: 13 additions & 0 deletions Aether.Extras.WINDOWS.XNA.sln
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Graphics.WINDOWS.XNA
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Aether.Content.Pipeline", "Aether.Content.Pipeline", "{F6B6E505-6037-49E4-9060-8B29A7B99BC1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimationImporters.WINDOWS.XNA", "Content.Pipeline\AnimationImporters\AnimationImporters.WINDOWS.XNA.csproj", "{E22F02E7-6799-4C14-B9B3-B461D6E9AB6E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.WINDOWS.XNA", "Animation\Aether.Animation.WINDOWS.XNA.csproj", "{1BD2DBC0-D366-42F7-9369-F566CCD01C03}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Expand All @@ -21,11 +25,20 @@ Global
{838D803F-F140-4763-A378-56DC27EDD5F3}.Debug|x86.Build.0 = Debug|x86
{838D803F-F140-4763-A378-56DC27EDD5F3}.Release|x86.ActiveCfg = Release|x86
{838D803F-F140-4763-A378-56DC27EDD5F3}.Release|x86.Build.0 = Release|x86
{E22F02E7-6799-4C14-B9B3-B461D6E9AB6E}.Debug|x86.ActiveCfg = Debug|x86
{E22F02E7-6799-4C14-B9B3-B461D6E9AB6E}.Debug|x86.Build.0 = Debug|x86
{E22F02E7-6799-4C14-B9B3-B461D6E9AB6E}.Release|x86.ActiveCfg = Release|x86
{E22F02E7-6799-4C14-B9B3-B461D6E9AB6E}.Release|x86.Build.0 = Release|x86
{1BD2DBC0-D366-42F7-9369-F566CCD01C03}.Debug|x86.ActiveCfg = Debug|x86
{1BD2DBC0-D366-42F7-9369-F566CCD01C03}.Debug|x86.Build.0 = Debug|x86
{1BD2DBC0-D366-42F7-9369-F566CCD01C03}.Release|x86.ActiveCfg = Release|x86
{1BD2DBC0-D366-42F7-9369-F566CCD01C03}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{565ACF47-7E36-435E-8727-2AFB39E61134} = {F6B6E505-6037-49E4-9060-8B29A7B99BC1}
{E22F02E7-6799-4C14-B9B3-B461D6E9AB6E} = {F6B6E505-6037-49E4-9060-8B29A7B99BC1}
EndGlobalSection
EndGlobal
20 changes: 20 additions & 0 deletions Aether.Extras.WP7_1.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.WP7_1", "Animation\Aether.Animation.WP7_1.csproj", "{08932BB0-C3E4-489B-9A45-1649730A9CDB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Windows Phone = Debug|Windows Phone
Release|Windows Phone = Release|Windows Phone
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{08932BB0-C3E4-489B-9A45-1649730A9CDB}.Debug|Windows Phone.ActiveCfg = Debug|Windows Phone
{08932BB0-C3E4-489B-9A45-1649730A9CDB}.Debug|Windows Phone.Build.0 = Debug|Windows Phone
{08932BB0-C3E4-489B-9A45-1649730A9CDB}.Release|Windows Phone.ActiveCfg = Release|Windows Phone
{08932BB0-C3E4-489B-9A45-1649730A9CDB}.Release|Windows Phone.Build.0 = Release|Windows Phone
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
38 changes: 38 additions & 0 deletions Aether.Extras.WP8.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aether.Animation.WP8", "Animation\Aether.Animation.WP8.csproj", "{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aether.Native.Animation", "Native.Animation\Aether.Native.Animation.WP8.vcxproj", "{22C72DC0-022D-4D1B-B738-C764F67421EA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|x86 = Debug|x86
Release|ARM = Release|ARM
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Debug|ARM.ActiveCfg = Debug|ARM
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Debug|ARM.Build.0 = Debug|ARM
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Debug|x86.ActiveCfg = Debug|x86
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Debug|x86.Build.0 = Debug|x86
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Release|ARM.ActiveCfg = Release|ARM
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Release|ARM.Build.0 = Release|ARM
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Release|x86.ActiveCfg = Release|x86
{8029B300-3608-4C01-BEF5-3F7BC3F9E58E}.Release|x86.Build.0 = Release|x86
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Debug|ARM.ActiveCfg = Debug|ARM
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Debug|ARM.Build.0 = Debug|ARM
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Debug|x86.ActiveCfg = Debug|Win32
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Debug|x86.Build.0 = Debug|Win32
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Release|ARM.ActiveCfg = Release|ARM
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Release|ARM.Build.0 = Release|ARM
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Release|x86.ActiveCfg = Release|Win32
{22C72DC0-022D-4D1B-B738-C764F67421EA}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
58 changes: 58 additions & 0 deletions Animation/Aether.Animation.PORTABLE.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>{11DC5896-8B7A-43ED-978C-45D0ECD4DD42}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>tainicom.Aether.Animation</RootNamespace>
<AssemblyName>Aether.Animation</AssemblyName>
<TargetFrameworkProfile>Profile328</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\bin\Debug\Portable\</OutputPath>
<DefineConstants>DEBUG;PORTABLE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\bin\Release\Portable\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<DefineConstants>PORTABLE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="Animation\Animations.cs" />
<Compile Include="Animation\Clip.cs" />
<Compile Include="Animation\CpuAnimatedVertexBuffer.cs" />
<Compile Include="Animation\Extensions.cs" />
<Compile Include="Animation\Keyframe.cs" />
<Compile Include="ContentReaders\AnimationsReader.cs" />
<Compile Include="ContentReaders\ClipReader.cs" />
<Compile Include="ContentReaders\CpuAnimatedVertexBufferReader.cs" />
<Compile Include="Graphics\VertexTypes\VertexIndicesWeightsPositionNormal.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.PORTABLE.cs" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
<ItemGroup>
<Reference Include="MonoGame.Framework">
<HintPath>..\packages\MonoGame.Framework.Portable.3.2.99.1-Beta\lib\portable-net40+sl40+win+wp80\MonoGame.Framework.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project>
Loading

0 comments on commit 24202d8

Please sign in to comment.