From eeec232821682691c98543dc40c271671d898be1 Mon Sep 17 00:00:00 2001 From: iDunnoDev Date: Mon, 16 May 2022 14:30:07 +0100 Subject: [PATCH] changes --- Graphics2/Camera.cpp | 6 ++++-- Graphics2/Graphics2.cpp | 17 +++++++++++++---- Graphics2/TexturedCubeNode.cpp | 16 +++++++++++----- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/Graphics2/Camera.cpp b/Graphics2/Camera.cpp index c18f52a..ca97ecc 100644 --- a/Graphics2/Camera.cpp +++ b/Graphics2/Camera.cpp @@ -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 diff --git a/Graphics2/Graphics2.cpp b/Graphics2/Graphics2.cpp index e6902f1..8004df3 100644 --- a/Graphics2/Graphics2.cpp +++ b/Graphics2/Graphics2.cpp @@ -18,7 +18,7 @@ void Graphics2::CreateSceneGraph() // This is where you add nodes to the scene graph //shared_ptr cube = make_shared(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 diff --git a/Graphics2/TexturedCubeNode.cpp b/Graphics2/TexturedCubeNode.cpp index 9238231..ff56285 100644 --- a/Graphics2/TexturedCubeNode.cpp +++ b/Graphics2/TexturedCubeNode.cpp @@ -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());