framerate double
This commit is contained in:
parent
5119b287d6
commit
9a0f363146
|
@ -18,6 +18,8 @@ namespace Oyster
|
||||||
{
|
{
|
||||||
Math::Matrix WV;
|
Math::Matrix WV;
|
||||||
Math::Matrix WVP;
|
Math::Matrix WVP;
|
||||||
|
int Animated;
|
||||||
|
Math::Float3 Pad;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FinalVertex
|
struct FinalVertex
|
||||||
|
@ -52,8 +54,6 @@ namespace Oyster
|
||||||
struct AnimationData
|
struct AnimationData
|
||||||
{
|
{
|
||||||
Math::Float4x4 AnimatedData[100];
|
Math::Float4x4 AnimatedData[100];
|
||||||
int Animated;
|
|
||||||
Math::Float3 Pad;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct GuiData
|
struct GuiData
|
||||||
|
|
|
@ -165,5 +165,15 @@ namespace Oyster
|
||||||
{
|
{
|
||||||
Render::Rendering::Gui::Render((ID3D11Texture2D*)tex,pos,size);
|
Render::Rendering::Gui::Render((ID3D11Texture2D*)tex,pos,size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
API::Texture API::CreateTexture(std::wstring filename)
|
||||||
|
{
|
||||||
|
return Core::loader.LoadResource((Core::texturePath + filename).c_str(),Oyster::Graphics::Loading::LoadTexture, Oyster::Graphics::Loading::UnloadTexture);
|
||||||
|
}
|
||||||
|
|
||||||
|
void API::DeleteTexture(API::Texture tex)
|
||||||
|
{
|
||||||
|
Core::loader.ReleaseResource(tex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -68,6 +68,7 @@ namespace Oyster
|
||||||
static void DeleteModel(Oyster::Graphics::Model::Model* model);
|
static void DeleteModel(Oyster::Graphics::Model::Model* model);
|
||||||
|
|
||||||
static Texture CreateTexture(std::wstring filename);
|
static Texture CreateTexture(std::wstring filename);
|
||||||
|
static void DeleteTexture(Texture);
|
||||||
|
|
||||||
//! @brief adds a light to the scene
|
//! @brief adds a light to the scene
|
||||||
static void AddLight(Definitions::Pointlight light);
|
static void AddLight(Definitions::Pointlight light);
|
||||||
|
|
|
@ -72,12 +72,7 @@ namespace Oyster
|
||||||
pm.WV = View * models[i].WorldMatrix;
|
pm.WV = View * models[i].WorldMatrix;
|
||||||
pm.WVP = Projection * pm.WV;
|
pm.WVP = Projection * pm.WV;
|
||||||
|
|
||||||
void* data = Resources::Deffered::ModelData.Map();
|
Model::ModelInfo* info = models[i].info;
|
||||||
memcpy(data,&(pm),sizeof(pm));
|
|
||||||
Resources::Deffered::ModelData.Unmap();
|
|
||||||
|
|
||||||
Model::ModelInfo* info = (Model::ModelInfo*)models[i].info;
|
|
||||||
|
|
||||||
|
|
||||||
Definitions::AnimationData am; //final
|
Definitions::AnimationData am; //final
|
||||||
if(info->Animated && models[i].AnimationPlaying != -1)
|
if(info->Animated && models[i].AnimationPlaying != -1)
|
||||||
|
@ -105,12 +100,7 @@ namespace Oyster
|
||||||
|
|
||||||
cube2->WorldMatrix = Scale;
|
cube2->WorldMatrix = Scale;
|
||||||
cube2->WorldMatrix.v[3] = info->bones[b].Absolute.v[3];
|
cube2->WorldMatrix.v[3] = info->bones[b].Absolute.v[3];
|
||||||
//Basic::RenderScene(cube2,1, View, Projection);
|
|
||||||
}
|
}
|
||||||
//BoneAnimated[8] = Math3D::RotationMatrix(3.14/4, Math::Float3(0, 0, 1)) * info->bones[8].Relative;
|
|
||||||
//BoneAnimated[31] = Math3D::RotationMatrix(3.14/4, Math::Float3(0, 0, 1)) * info->bones[31].Relative;
|
|
||||||
////for each bone in animation
|
|
||||||
////HACK use first bone
|
|
||||||
int b = 0;
|
int b = 0;
|
||||||
Model::Animation A = info->Animations[models[i].AnimationPlaying];
|
Model::Animation A = info->Animations[models[i].AnimationPlaying];
|
||||||
while(models[i].AnimationTime>A.duration)
|
while(models[i].AnimationTime>A.duration)
|
||||||
|
@ -160,27 +150,19 @@ namespace Oyster
|
||||||
am.AnimatedData[b] = (BoneAbsAnimated[b] * SkinTransform[b]);
|
am.AnimatedData[b] = (BoneAbsAnimated[b] * SkinTransform[b]);
|
||||||
}
|
}
|
||||||
|
|
||||||
//retore to draw animated model
|
|
||||||
Definitions::PerModel pm;
|
|
||||||
pm.WV = View * models[i].WorldMatrix;
|
|
||||||
pm.WVP = Projection * pm.WV;
|
|
||||||
|
|
||||||
void* data = Resources::Deffered::ModelData.Map();
|
void *data = Resources::Deffered::AnimationData.Map();
|
||||||
memcpy(data,&(pm),sizeof(pm));
|
memcpy(data,&am,sizeof(Definitions::AnimationData));
|
||||||
Resources::Deffered::ModelData.Unmap();
|
Resources::Deffered::AnimationData.Unmap();
|
||||||
|
|
||||||
//delete[]SkinTransform;
|
pm.Animated = 1;
|
||||||
//delete[]BoneAbsAnimated;
|
|
||||||
//delete[]BoneAnimated;
|
|
||||||
|
|
||||||
am.Animated = 1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
am.Animated = 0;
|
pm.Animated = 0;
|
||||||
|
|
||||||
data = Resources::Deffered::AnimationData.Map();
|
void* data = Resources::Deffered::ModelData.Map();
|
||||||
memcpy(data,&am,sizeof(Definitions::AnimationData));
|
memcpy(data,&(pm),sizeof(pm));
|
||||||
Resources::Deffered::AnimationData.Unmap();
|
Resources::Deffered::ModelData.Unmap();
|
||||||
|
|
||||||
if(info->Material.size())
|
if(info->Material.size())
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,12 +33,12 @@ SamplerState S1 : register(s0);
|
||||||
cbuffer Animation : register(b0)
|
cbuffer Animation : register(b0)
|
||||||
{
|
{
|
||||||
float4x4 AnimatedData[100];
|
float4x4 AnimatedData[100];
|
||||||
int Animated;
|
|
||||||
float3 Pad;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cbuffer PerModel : register(b1)
|
cbuffer PerModel : register(b1)
|
||||||
{
|
{
|
||||||
matrix WV;
|
matrix WV;
|
||||||
matrix WVP;
|
matrix WVP;
|
||||||
|
int Animated;
|
||||||
|
float3 Pad;
|
||||||
}
|
}
|
Loading…
Reference in New Issue