Merge branch 'GameClient' of https://github.com/dean11/Danbias into GameServer
This commit is contained in:
commit
8f3eb586c6
|
@ -103,6 +103,26 @@ void C_Object::Release()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Oyster::Math::Float3 C_Object::GetTint()
|
||||||
|
{
|
||||||
|
return model->Tint;
|
||||||
|
}
|
||||||
|
|
||||||
|
Oyster::Math::Float3 C_Object::GetGlowTint()
|
||||||
|
{
|
||||||
|
return model->GlowTint;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C_Object::SetTint(Oyster::Math::Float3 tint)
|
||||||
|
{
|
||||||
|
model->Tint = tint;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C_Object::SetGlowTint(Oyster::Math::Float3 tint)
|
||||||
|
{
|
||||||
|
model->GlowTint = tint;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
|
|
|
@ -67,6 +67,13 @@ namespace DanBias
|
||||||
void addScale(Oyster::Math::Float3 deltaScale);
|
void addScale(Oyster::Math::Float3 deltaScale);
|
||||||
Oyster::Math::Float3 getScale() const;
|
Oyster::Math::Float3 getScale() const;
|
||||||
|
|
||||||
|
Oyster::Math::Float3 GetTint();
|
||||||
|
Oyster::Math::Float3 GetGlowTint();
|
||||||
|
|
||||||
|
void SetTint(Oyster::Math::Float3);
|
||||||
|
void SetGlowTint(Oyster::Math::Float3);
|
||||||
|
|
||||||
|
|
||||||
// RB DEBUG
|
// RB DEBUG
|
||||||
void updateRBWorld();
|
void updateRBWorld();
|
||||||
bool InitRB(RBInitData modelInit);
|
bool InitRB(RBInitData modelInit);
|
||||||
|
|
|
@ -126,6 +126,7 @@ void GameState::InitiatePlayer( int id, const std::string &modelName, const floa
|
||||||
RBData.position = position;
|
RBData.position = position;
|
||||||
RBData.rotation = ArrayToQuaternion( rotation );
|
RBData.rotation = ArrayToQuaternion( rotation );
|
||||||
RBData.scale = scale;
|
RBData.scale = scale;
|
||||||
|
RBData.type = RB_Type_Cube;
|
||||||
// !RB DEBUG
|
// !RB DEBUG
|
||||||
if( isMyPlayer )
|
if( isMyPlayer )
|
||||||
{
|
{
|
||||||
|
@ -138,7 +139,10 @@ void GameState::InitiatePlayer( int id, const std::string &modelName, const floa
|
||||||
this->privData->myId = id;
|
this->privData->myId = id;
|
||||||
this->privData->camera.SetPosition( this->privData->player.getPos() );
|
this->privData->camera.SetPosition( this->privData->player.getPos() );
|
||||||
Float3 offset = Float3( 0.0f );
|
Float3 offset = Float3( 0.0f );
|
||||||
offset.y = this->privData->player.getScale().y * 0.9f;
|
// DEBUG position of camera so we can see the player model
|
||||||
|
offset.y = this->privData->player.getScale().y * 5.0f;
|
||||||
|
offset.z = this->privData->player.getScale().z * -5.0f;
|
||||||
|
// !DEBUG
|
||||||
this->privData->camera.SetHeadOffset( offset );
|
this->privData->camera.SetHeadOffset( offset );
|
||||||
this->privData->camera.UpdateOrientation();
|
this->privData->camera.UpdateOrientation();
|
||||||
}
|
}
|
||||||
|
@ -182,8 +186,10 @@ bool GameState::Render()
|
||||||
for( ; dynamicObject != this->privData->dynamicObjects->end(); ++dynamicObject )
|
for( ; dynamicObject != this->privData->dynamicObjects->end(); ++dynamicObject )
|
||||||
{
|
{
|
||||||
if( dynamicObject->second )
|
if( dynamicObject->second )
|
||||||
|
{
|
||||||
dynamicObject->second->Render();
|
dynamicObject->second->Render();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*auto light = this->privData->lights->begin();
|
/*auto light = this->privData->lights->begin();
|
||||||
|
@ -500,6 +506,12 @@ const GameClientState::NetEvent & GameState::DataRecieved( const GameClientState
|
||||||
this->privData->camera.SetRotation( rotation );
|
this->privData->camera.SetRotation( rotation );
|
||||||
this->privData->player.setPos( position );
|
this->privData->player.setPos( position );
|
||||||
this->privData->player.setRot( rotation );
|
this->privData->player.setRot( rotation );
|
||||||
|
this->privData->player.updateWorld();
|
||||||
|
// RB DEBUG
|
||||||
|
this->privData->player.setRBPos ( position );
|
||||||
|
this->privData->player.setRBRot ( rotation );
|
||||||
|
this->privData->player.updateRBWorld();
|
||||||
|
// !RB DEBUG
|
||||||
}
|
}
|
||||||
|
|
||||||
C_DynamicObj *object = (*this->privData->dynamicObjects)[decoded.object_ID];
|
C_DynamicObj *object = (*this->privData->dynamicObjects)[decoded.object_ID];
|
||||||
|
|
|
@ -157,6 +157,7 @@ void NetLoadState::LoadGame( const ::std::string &fileName )
|
||||||
RBData.scale = (Float3)oh->scale * (Float3)oh->boundingVolume.box.size * 2;
|
RBData.scale = (Float3)oh->scale * (Float3)oh->boundingVolume.box.size * 2;
|
||||||
RBData.type = RB_Type_Cube;
|
RBData.type = RB_Type_Cube;
|
||||||
staticObject->InitRB( RBData );
|
staticObject->InitRB( RBData );
|
||||||
|
staticObject->updateRBWorld();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(oh->boundingVolume.geoType == CollisionGeometryType_Sphere)
|
if(oh->boundingVolume.geoType == CollisionGeometryType_Sphere)
|
||||||
|
@ -166,6 +167,7 @@ void NetLoadState::LoadGame( const ::std::string &fileName )
|
||||||
RBData.scale = (Float3)oh->scale * oh->boundingVolume.sphere.radius * 2;
|
RBData.scale = (Float3)oh->scale * oh->boundingVolume.sphere.radius * 2;
|
||||||
RBData.type = RB_Type_Sphere;
|
RBData.type = RB_Type_Sphere;
|
||||||
staticObject->InitRB( RBData );
|
staticObject->InitRB( RBData );
|
||||||
|
staticObject->updateRBWorld();
|
||||||
}
|
}
|
||||||
// !RB DEBUG
|
// !RB DEBUG
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ using namespace GameLogic;
|
||||||
|
|
||||||
Game::PlayerData::PlayerData()
|
Game::PlayerData::PlayerData()
|
||||||
{
|
{
|
||||||
Oyster::Math::Float3 centerPosition = Oyster::Math::Float3(-50,250,0);
|
Oyster::Math::Float3 centerPosition = Oyster::Math::Float3(-50,180,0);
|
||||||
Oyster::Math::Float height = 2.0f;
|
Oyster::Math::Float height = 2.0f;
|
||||||
Oyster::Math::Float radius = 0.5f;
|
Oyster::Math::Float radius = 0.5f;
|
||||||
Oyster::Math::Float mass = 40;
|
Oyster::Math::Float mass = 40;
|
||||||
|
@ -24,7 +24,7 @@ Game::PlayerData::PlayerData()
|
||||||
Game::PlayerData::PlayerData(int playerID,int teamID)
|
Game::PlayerData::PlayerData(int playerID,int teamID)
|
||||||
{
|
{
|
||||||
|
|
||||||
Oyster::Math::Float3 centerPosition = Oyster::Math::Float3(-50,250,0);
|
Oyster::Math::Float3 centerPosition = Oyster::Math::Float3(-50,180,0);
|
||||||
Oyster::Math::Float height = 2.0f;
|
Oyster::Math::Float height = 2.0f;
|
||||||
Oyster::Math::Float radius = 0.5f;
|
Oyster::Math::Float radius = 0.5f;
|
||||||
Oyster::Math::Float mass = 40;
|
Oyster::Math::Float mass = 40;
|
||||||
|
|
|
@ -79,6 +79,14 @@ namespace Oyster
|
||||||
unsigned int StopY;
|
unsigned int StopY;
|
||||||
Math::Float4 BlurMask;
|
Math::Float4 BlurMask;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct TintData
|
||||||
|
{
|
||||||
|
Math::Float3 Tint;
|
||||||
|
Math::Float PAD;
|
||||||
|
Math::Float3 GlowTint;
|
||||||
|
Math::Float PAD2;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -139,6 +139,7 @@ namespace Oyster
|
||||||
m->Visible = true;
|
m->Visible = true;
|
||||||
m->Animation.AnimationPlaying = NULL;
|
m->Animation.AnimationPlaying = NULL;
|
||||||
m->Tint = Math::Float3(1);
|
m->Tint = Math::Float3(1);
|
||||||
|
m->GlowTint = Math::Float3(1);
|
||||||
m->info = (Model::ModelInfo*)Core::loader.LoadResource((Core::modelPath + filename).c_str(),Oyster::Graphics::Loading::LoadDAN, Oyster::Graphics::Loading::UnloadDAN);
|
m->info = (Model::ModelInfo*)Core::loader.LoadResource((Core::modelPath + filename).c_str(),Oyster::Graphics::Loading::LoadDAN, Oyster::Graphics::Loading::UnloadDAN);
|
||||||
|
|
||||||
Model::ModelInfo* mi = (Model::ModelInfo*)m->info;
|
Model::ModelInfo* mi = (Model::ModelInfo*)m->info;
|
||||||
|
|
|
@ -24,6 +24,7 @@ namespace Oyster
|
||||||
ModelInfo* info;
|
ModelInfo* info;
|
||||||
Oyster::Math::Float4x4 WorldMatrix;
|
Oyster::Math::Float4x4 WorldMatrix;
|
||||||
Oyster::Math::Float3 Tint;
|
Oyster::Math::Float3 Tint;
|
||||||
|
Oyster::Math::Float3 GlowTint;
|
||||||
bool Visible;
|
bool Visible;
|
||||||
AnimationData Animation;
|
AnimationData Animation;
|
||||||
};
|
};
|
||||||
|
|
|
@ -136,8 +136,15 @@ namespace Oyster
|
||||||
memcpy(data,&(pm),sizeof(pm));
|
memcpy(data,&(pm),sizeof(pm));
|
||||||
Resources::Gather::ModelData.Unmap();
|
Resources::Gather::ModelData.Unmap();
|
||||||
|
|
||||||
|
Definitions::TintData td;
|
||||||
|
td.GlowTint = models[i].GlowTint;
|
||||||
|
td.Tint = models[i].Tint;
|
||||||
|
td.PAD = 0;
|
||||||
|
td.PAD2 = 0;
|
||||||
|
int s = sizeof(Definitions::TintData);
|
||||||
|
|
||||||
data = Render::Resources::Color.Map();
|
data = Render::Resources::Color.Map();
|
||||||
memcpy(data,&models[i].Tint,sizeof(Math::Float3));
|
memcpy(data,&td,sizeof(Definitions::TintData));
|
||||||
Render::Resources::Color.Unmap();
|
Render::Resources::Color.Unmap();
|
||||||
|
|
||||||
if(info->Material.size())
|
if(info->Material.size())
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace Oyster
|
||||||
Gather::AnimationData.Init(desc);
|
Gather::AnimationData.Init(desc);
|
||||||
|
|
||||||
desc.Type = Buffer::BUFFER_TYPE::CONSTANT_BUFFER_PS;
|
desc.Type = Buffer::BUFFER_TYPE::CONSTANT_BUFFER_PS;
|
||||||
desc.ElementSize = sizeof(Math::Float3);
|
desc.ElementSize = sizeof(Definitions::TintData);
|
||||||
Color.Init(desc);
|
Color.Init(desc);
|
||||||
|
|
||||||
desc.Type = Buffer::BUFFER_TYPE::CONSTANT_BUFFER_GS;
|
desc.Type = Buffer::BUFFER_TYPE::CONSTANT_BUFFER_GS;
|
||||||
|
@ -176,7 +176,7 @@ namespace Oyster
|
||||||
sdesc.Filter = D3D11_FILTER_ANISOTROPIC;
|
sdesc.Filter = D3D11_FILTER_ANISOTROPIC;
|
||||||
sdesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
|
sdesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
|
||||||
sdesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
|
sdesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
|
||||||
sdesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
|
sdesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
|
||||||
sdesc.MipLODBias = 0;
|
sdesc.MipLODBias = 0;
|
||||||
sdesc.MaxAnisotropy =4;
|
sdesc.MaxAnisotropy =4;
|
||||||
sdesc.ComparisonFunc = D3D11_COMPARISON_LESS_EQUAL;
|
sdesc.ComparisonFunc = D3D11_COMPARISON_LESS_EQUAL;
|
||||||
|
|
|
@ -40,7 +40,10 @@ float3 perturb_normal( float3 N, float3 V, float2 texcoord )
|
||||||
PixelOut main(VertexOut input)
|
PixelOut main(VertexOut input)
|
||||||
{
|
{
|
||||||
PixelOut output;
|
PixelOut output;
|
||||||
output.DiffuseGlow = Diffuse.Sample(S1, input.UV) * float4(Color, 1);
|
float4 DiffGlow = Diffuse.Sample(S1, input.UV);
|
||||||
|
float3 tint = Color*(1-DiffGlow) + GlowColor * DiffGlow;
|
||||||
|
tint = tint / 2;
|
||||||
|
output.DiffuseGlow = DiffGlow * float4(tint,1);
|
||||||
|
|
||||||
//NORMALIZE
|
//NORMALIZE
|
||||||
float3x3 CoTangentFrame = cotangent_frame(input.normal, normalize(input.ViewPos), input.UV);
|
float3x3 CoTangentFrame = cotangent_frame(input.normal, normalize(input.ViewPos), input.UV);
|
||||||
|
|
|
@ -42,4 +42,7 @@ cbuffer PerModel : register(b1)
|
||||||
cbuffer Tint : register(b0)
|
cbuffer Tint : register(b0)
|
||||||
{
|
{
|
||||||
float3 Color;
|
float3 Color;
|
||||||
|
float PAD;
|
||||||
|
float3 GlowColor;
|
||||||
|
float PAD2;
|
||||||
}
|
}
|
Loading…
Reference in New Issue