Added follow cam
Added "Controlled" mesh classes Added Global Lighting Class Added Gamepad controls Split terrain nodes into Height and Perlin classes Fixed Splitmesh node stuff
This commit is contained in:
@ -5,6 +5,7 @@ bool SplitMeshNode::Initialise()
|
||||
bool currentStatus = true;
|
||||
|
||||
_resourceManager = DirectXFramework::GetDXFramework()->GetResourceManager();
|
||||
_renderer = dynamic_pointer_cast<SubMeshRenderer>(_resourceManager->GetRenderer(L"SMR"));
|
||||
_mesh = _resourceManager->GetMesh(_modelName);
|
||||
if (_mesh == nullptr)
|
||||
{
|
||||
@ -20,9 +21,29 @@ bool SplitMeshNode::Initialise()
|
||||
currentStatus = SceneGraph::Initialise();
|
||||
}
|
||||
|
||||
if (currentStatus)
|
||||
{
|
||||
currentStatus = _renderer->Initialise();
|
||||
}
|
||||
|
||||
return currentStatus;
|
||||
}
|
||||
|
||||
void SplitMeshNode::Render(void)
|
||||
{
|
||||
_renderer->SetRootChildren(GetChildren());
|
||||
_renderer->SetWorldTransformation(XMLoadFloat4x4(&_combinedWorldTransformation));
|
||||
_renderer->SetAmbientLight(DirectXFramework::GetDXFramework()->GetGlobalLighting()->GetAmbientLight());
|
||||
_renderer->SetDirectionalLight(DirectXFramework::GetDXFramework()->GetGlobalLighting()->GetDirectionalLightDirection(), DirectXFramework::GetDXFramework()->GetGlobalLighting()->GetDirectionalLightColor());
|
||||
_renderer->Render();
|
||||
}
|
||||
|
||||
void SplitMeshNode::Shutdown(void)
|
||||
{
|
||||
_resourceManager->ReleaseMesh(_modelName);
|
||||
SceneGraph::Shutdown();
|
||||
}
|
||||
|
||||
SceneNodePointer SplitMeshNode::AddMeshNode(shared_ptr<Node> node)
|
||||
{
|
||||
unsigned int subMeshCount = (unsigned int)node->GetMeshCount();
|
||||
@ -41,7 +62,14 @@ SceneNodePointer SplitMeshNode::AddMeshNode(shared_ptr<Node> node)
|
||||
{
|
||||
unsigned int meshIndex = node->GetMesh(i);
|
||||
shared_ptr<SubMesh> subMesh = _mesh->GetSubMesh(meshIndex);
|
||||
shared_ptr<SubMeshNode> subNode = make_shared<SubMeshNode>(node->GetName() + L"_" + to_wstring(i), subMesh);
|
||||
shared_ptr<Material> material = subMesh->GetMaterial();
|
||||
float opacity = material->GetOpacity();
|
||||
bool transparent = false;
|
||||
if (opacity < 1.0f)
|
||||
{
|
||||
transparent = true;
|
||||
}
|
||||
shared_ptr<SubMeshNode> subNode = make_shared<SubMeshNode>(node->GetName() + L"_" + to_wstring(i), subMesh, transparent);
|
||||
currentNodeGraph->Add(subNode);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user