void SquareObject::OnCreate() { CreateBuffers(m_Scale.x, m_Scale.y); //行列の定義 Mat4x4 World; World.affineTransformation( m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos ); auto TexPtr = App::GetApp()->GetResource<TextureResource>(m_TextureResName); auto NormTexPtr = App::GetApp()->GetResource<TextureResource>(m_NormalTextureResName); m_PtrObj = make_shared<BcDrawObject>(); m_PtrObj->m_MeshRes = m_SquareMesh; m_PtrObj->m_TextureRes = TexPtr; m_PtrObj->m_NormalTextureRes = NormTexPtr; m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); m_PtrObj->m_OwnShadowmapActive = true; m_PtrObj->m_SamplerState = SamplerState::LinearWrap; m_PtrObj->m_ShadowmapUse = false; m_PtrObj->m_FogEnabled = true; //フォグはきつめに m_PtrObj->m_FogColor = Col4(0.3f, 0.3f, 0.3f, 1.0f); m_PtrObj->m_FogStart = -10.0f; m_PtrObj->m_FogEnd = -30.0f; }
//初期化 void BcStaticChara::OnCreate() { //Rigidbodyの初期化 auto PtrGameStage = GetStage<GameStage>(); Rigidbody body; body.m_Owner = GetThis<GameObject>(); body.m_Mass = 1.0f; body.m_Scale = m_Scale; body.m_Quat = m_Qt; body.m_Pos = m_Pos; body.m_CollType = CollType::typeCAPSULE; body.m_IsFixed = true; // body.m_IsDrawActive = true; body.SetToBefore(); PtrGameStage->AddRigidbody(body); //メッシュとトランスフォームの差分の設定 m_MeshToTransformMatrix.affineTransformation( Vec3(1.0f, 1.0f, 1.0f), Vec3(0.0f, 0.0f, 0.0f), Vec3(0.0f, 0.0f, 0.0f), Vec3(0.0f, -1.0f, 0.0f) ); //行列の定義 Mat4x4 World; World.affineTransformation( m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos ); //差分を計算 World = m_MeshToTransformMatrix * World; auto MeshPtr = App::GetApp()->GetResource<MeshResource>(L"MODEL_MESH"); //描画データの構築 m_PtrObj = make_shared<BcDrawObject>(); m_PtrObj->m_OwnShadowmapActive = m_OwnShadowActive; m_PtrObj->m_UsedModelColor = false; m_PtrObj->m_UsedModelTextre = true; m_PtrObj->m_ShadowmapUse = true; m_PtrObj->m_FogEnabled = true; //フォグは黄色っぽく m_PtrObj->m_FogColor = Col4(0.5f, 0.5f, 0.1f, 1.0f); m_PtrObj->m_FogStart = -10.0f; m_PtrObj->m_FogEnd = -30.0f; m_PtrObj->m_MeshRes = MeshPtr; m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); //シャドウマップ描画データの構築 m_PtrShadowmapObj = make_shared<ShadowmapObject>(); m_PtrShadowmapObj->m_MeshRes = MeshPtr; //描画データの行列をコピー m_PtrShadowmapObj->m_WorldMatrix = World; m_PtrShadowmapObj->m_Camera = GetStage<Stage>()->GetCamera(); }
//初期化 void BoneChara::OnCreate() { //Rigidbodyの初期化 auto PtrGameStage = GetStage<GameStage>(); Rigidbody body; body.m_Owner = GetThis<GameObject>(); body.m_Mass = 1.0f; body.m_Scale = m_Scale; body.m_Quat = m_Qt; body.m_Pos = m_Pos; body.m_CollType = CollType::typeCAPSULE; body.m_IsFixed = true; // body.m_IsDrawActive = true; body.SetToBefore(); PtrGameStage->AddRigidbody(body); //メッシュとトランスフォームの差分の設定 m_MeshToTransformMatrix.affineTransformation( Vec3(1.0f, 1.0f, 1.0f), Vec3(0.0f, 0.0f, 0.0f), Vec3(0.0f, 0.0f, 0.0f), Vec3(0.0f, -1.0f, 0.0f) ); //行列の定義 Mat4x4 World; World.affineTransformation( m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos ); //差分を計算 World = m_MeshToTransformMatrix * World; auto MeshPtr = App::GetApp()->GetResource<MeshResource>(L"Chara_R_MESH"); //描画データの構築 m_PtrObj = make_shared<SimpleDrawObject>(); m_PtrObj->m_MeshRes = MeshPtr; m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); m_PtrObj->m_UsedModelColor = false; m_PtrObj->m_UsedModelTextre = true; m_PtrObj->m_OwnShadowmapActive = m_OwnShadowActive; m_PtrObj->m_ShadowmapUse = true; m_PtrObj->BoneInit(); m_PtrObj->AddAnimation(L"Default", 0, 100, true, 20.0f); m_PtrObj->ChangeCurrentAnimation(L"Default"); //シャドウマップ描画データの構築 m_PtrShadowmapObj = make_shared<ShadowmapObject>(); m_PtrShadowmapObj->m_MeshRes = MeshPtr; //描画データの行列をコピー m_PtrShadowmapObj->m_WorldMatrix = World; m_PtrShadowmapObj->m_Camera = GetStage<Stage>()->GetCamera(); }
//初期化 void BcBoxObject::OnCreate() { //Rigidbodyの初期化 auto PtrGameStage = GetStage<GameStage>(); Rigidbody body; body.m_Owner = GetThis<GameObject>(); body.m_Mass = 1.0f; body.m_Scale = m_Scale; body.m_Quat = m_Qt; body.m_Pos = m_Pos; body.m_CollType = CollType::typeOBB; body.m_IsFixed = true; // body.m_IsDrawActive = true; body.SetToBefore(); PtrGameStage->AddRigidbody(body); //行列の定義 Mat4x4 World; World.affineTransformation( body.m_Scale, Vec3(0, 0, 0), body.m_Quat, body.m_Pos ); auto TexPtr = App::GetApp()->GetResource<TextureResource>(m_TextureResName); auto NormTexPtr = App::GetApp()->GetResource<TextureResource>(m_NormalTextureResName); //メッシュの取得 auto MeshPtr = App::GetApp()->GetResource<MeshResource>(L"NORMAL_BOX"); //描画データの構築 m_PtrObj = make_shared<BcDrawObject>(); m_PtrObj->m_MeshRes = MeshPtr; m_PtrObj->m_TextureRes = TexPtr; m_PtrObj->m_NormalTextureRes = NormTexPtr; m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); m_PtrObj->m_OwnShadowmapActive = true; m_PtrObj->m_ShadowmapUse = true; m_PtrObj->m_FogEnabled = true; //フォグは黄色っぽく m_PtrObj->m_FogColor = Col4(0.5f, 0.5f, 0.1f, 1.0f); m_PtrObj->m_FogStart = -10.0f; m_PtrObj->m_FogEnd = -30.0f; //シャドウマップ描画データの構築 m_PtrShadowmapObj = make_shared<ShadowmapObject>(); m_PtrShadowmapObj->m_MeshRes = MeshPtr; //描画データの行列をコピー m_PtrShadowmapObj->m_WorldMatrix = World; m_PtrShadowmapObj->m_Camera = GetStage<Stage>()->GetCamera(); }
void Player::OnDrawShadowmap() { auto PtrGameStage = GetStage<GameStage>(); //ワールド行列の決定 Mat4x4 World; World.affineTransformation(m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos); auto shptr = PtrGameStage->FindTagGameObject<ShadowmapDrawObject>(L"ShadowmapDrawObject"); shptr->AddDrawMesh( m_SphereMesh, World ); }
void Player::OnDraw() { auto TexPtr = App::GetApp()->GetResource<TextureResource>(m_TextureResName); auto PtrGameStage = GetStage<GameStage>(); //ワールド行列の決定 Mat4x4 World; World.affineTransformation(m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos); auto shptr = PtrGameStage->FindTagGameObject<PNTDrawObject>(L"PNTDrawObject"); shptr->AddDrawMesh( m_SphereMesh, TexPtr, World, true ); }
void BcSphereObject::OnCreate() { CreateBuffers(); //Rigidbodyの初期化 auto PtrGameStage = GetStage<GameStage>(); Rigidbody body; body.m_Owner = GetThis<GameObject>(); body.m_Mass = 1.0f; body.m_Scale = m_Scale; body.m_Quat = m_Qt; body.m_Pos = m_Pos; body.m_CollType = CollType::typeSPHERE; body.m_IsFixed = true; // body.m_IsDrawActive = true; body.SetToBefore(); PtrGameStage->AddRigidbody(body); //行列の定義 Mat4x4 World; World.affineTransformation( m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos ); auto TexPtr = App::GetApp()->GetResource<TextureResource>(m_TextureResName); //描画データの構築 m_PtrObj = make_shared<BcDrawObject>(); m_PtrObj->m_MeshRes = m_SphereMesh; m_PtrObj->m_TextureRes = TexPtr; m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); m_PtrObj->m_OwnShadowmapActive = false; m_PtrObj->m_ShadowmapUse = true; m_PtrObj->m_FogEnabled = true; //フォグは青色っぽく m_PtrObj->m_FogColor = Col4(0.4f, 0.4f, 0.8f, 1.0f); m_PtrObj->m_FogStart = -10.0f; m_PtrObj->m_FogEnd = -30.0f; //シャドウマップ描画データの構築 m_PtrShadowmapObj = make_shared<ShadowmapObject>(); m_PtrShadowmapObj->m_MeshRes = m_SphereMesh; //描画データの行列をコピー m_PtrShadowmapObj->m_WorldMatrix = World; m_PtrShadowmapObj->m_Camera = GetStage<Stage>()->GetCamera(); }
void SimpleSquare::OnDraw() { //行列の定義 Mat4x4 World; World.affineTransformation( m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos ); m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); auto shptr = m_Renderer.lock(); if (!shptr) { shptr = GetStage<Stage>()->FindTagGameObject<SimplePCTStaticRenderer>(L"SimplePCTStaticRenderer"); m_Renderer = shptr; } shptr->AddDrawObject(m_PtrObj); }
//初期化 void SimpleSquare::OnCreate() { CreateBuffers(4.0f, 4.0f); //行列の定義 Mat4x4 World; World.affineTransformation( m_Scale, Vec3(0, 0, 0), m_Qt, m_Pos ); auto TexPtr = App::GetApp()->GetResource<TextureResource>(m_TextureResName); //描画データの構築 m_PtrObj = make_shared<SimpleDrawObject>(); m_PtrObj->m_MeshRes = m_SquareMesh; m_PtrObj->m_TextureRes = TexPtr; m_PtrObj->m_WorldMatrix = World; m_PtrObj->m_Camera = GetStage<Stage>()->GetCamera(); m_PtrObj->m_SamplerState = SamplerState::LinearWrap; }