This commit is contained in:
iDunnoDev
2022-05-16 14:30:07 +01:00
committed by iDunnoDev
parent 03329d30ce
commit eeec232821
3 changed files with 28 additions and 11 deletions

View File

@ -184,9 +184,11 @@ void Camera::Update(void)
cameraTarget = cameraPosition + XMVector3Normalize(cameraForward);
}
else
{
{
XMVECTOR offset = XMVectorSet(_followOffset.x, _followOffset.y, _followOffset.z, 1.0f);
cameraPosition = _nodeFollowed->GetNodePosition() + offset;
XMMATRIX offsetRotationMatrix = XMMatrixRotationAxis(defaultUp, _cameraYaw); // *XMMatrixRotationAxis(defaultForward, _cameraPitch);
cameraPosition = _nodeFollowed->GetNodePosition() + XMVector3TransformCoord(offset, offsetRotationMatrix);
cameraTarget = XMLoadFloat4(&nodePosition) + XMVector3Normalize(cameraForward);
}
// Set the camera position

View File

@ -18,7 +18,7 @@ void Graphics2::CreateSceneGraph()
// This is where you add nodes to the scene graph
//shared_ptr<TexturedCubeNode> cube = make_shared<TexturedCubeNode>(L"Body", L"Textures\\woodbox.bmp");
//cube->SetWorldTransform(XMMatrixScaling(5.0f, 8.0f, 2.5f) * XMMatrixTranslation(0, 23.0f, 0));
//cube->SetWorldTransform(XMMatrixScaling(5.0f, 8.0f, 2.5f) * XMMatrixTranslation(0, 23.0f, 0)); XMMatrixScaling(50.0f, 800.0f, 50.0f) * XMMatrixTranslation(-65.0f, 350.0f, -65.0f)
//sceneGraph->Add(cube);
DirectXFramework::GetDXFramework()->GetGlobalLighting()->SetAmbientLight(XMFLOAT4(0.7f, 0.7f, 0.7f, 1.0f));
@ -52,7 +52,7 @@ void Graphics2::CreateSceneGraph()
sceneGraph->Add(boatGraph);
_currentPlayerObject = plane1Node;
GetCamera()->SetFollowNode(plane1Node, XMFLOAT3(0.0f, 30.0f, -80.0f), false);
GetCamera()->SetFollowNode(plane1Node, XMFLOAT3(0.0f, 40.0f, -100.0f), false);
SetBackgroundColour(XMFLOAT4(0.29f, 0.38f, 0.72f, 1.0f));
//SetBackgroundColour(XMFLOAT4(SharedMethods::RGBValueToIntensity(0x89), 0, 1, 1));
@ -185,7 +185,7 @@ void Graphics2::UpdateSceneGraph()
if (!_initDone && mainTerrain != nullptr)
{
GenerateClutter();
//GenerateClutter();
}
GetCurrentControlInputs();
@ -236,6 +236,7 @@ void Graphics2::UpdateSceneGraph()
if (_currentPlayerObject != nullptr)
{
_currentPlayerObject->SetYaw(-_turnSpeed);
//_currentPlayerObject->SetTotalRoll(_turnSpeed * 0.5f);
}
else
{
@ -246,6 +247,7 @@ void Graphics2::UpdateSceneGraph()
if (_currentPlayerObject != nullptr)
{
_currentPlayerObject->SetYaw(_turnSpeed);
//_currentPlayerObject->SetTotalRoll(-_turnSpeed * 0.5f);
}
else
{
@ -304,7 +306,14 @@ void Graphics2::UpdateSceneGraph()
{
_currentRotation += 1;
_currentSideRotation += 1;
_currentPropRotation += 100;
if (_currentPlayerObject == nullptr || !_boosting)
{
_currentPropRotation += 50;
}
else
{
_currentPropRotation += 100;
}
}
// Check the camera and our terrain boundaries

View File

@ -38,9 +38,15 @@ void TexturedCubeNode::Render()
CBUFFER cBuffer;
cBuffer.completeTransformation = completeTransformation;
cBuffer.worldTransformation = XMLoadFloat4x4(&_combinedWorldTransformation);
cBuffer.ambientColor = XMFLOAT4(0.3f, 0.3f, 0.3f, 1.0f);
cBuffer.lightVector = XMVector4Normalize(XMVectorSet(0.0f, 1.0f, 1.0f, 0.0f));
cBuffer.lightColor = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);
cBuffer.ambientColor = DirectXFramework::GetDXFramework()->GetGlobalLighting()->GetAmbientLight();
cBuffer.lightVector = DirectXFramework::GetDXFramework()->GetGlobalLighting()->GetDirectionalLightDirection();
cBuffer.lightColor = DirectXFramework::GetDXFramework()->GetGlobalLighting()->GetDirectionalLightColor();
cBuffer.diffuseCoefficient = XMFLOAT4(0.8f, 0.8f, 0.8f, 1.0f);
cBuffer.specularCoefficient = XMFLOAT4(1.0f, 1.0f, 1.0f, 1.0f);
XMStoreFloat4(&cBuffer.cameraPosition, DirectXFramework::GetDXFramework()->GetCamera()->GetCameraPosition());
cBuffer.shininess = 5.0f;
cBuffer.opacity = 1.0f;
cBuffer.validTexture = 1;
// Update the constant buffer
_deviceContext->VSSetConstantBuffers(0, 1, _constantBuffer.GetAddressOf());
@ -163,7 +169,7 @@ void TexturedCubeNode::BuildShaders()
//Compile vertex shader
HRESULT hr = D3DCompileFromFile(L"TexturedShaders.hlsl",
nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE,
"VS", "vs_5_0",
"VShader", "vs_5_0",
shaderCompileFlags, 0,
_vertexShaderByteCode.GetAddressOf(),
compilationMessages.GetAddressOf());
@ -181,7 +187,7 @@ void TexturedCubeNode::BuildShaders()
// Compile pixel shader
hr = D3DCompileFromFile(L"TexturedShaders.hlsl",
nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE,
"PS", "ps_5_0",
"PShader", "ps_5_0",
shaderCompileFlags, 0,
_pixelShaderByteCode.GetAddressOf(),
compilationMessages.GetAddressOf());