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); cameraTarget = cameraPosition + XMVector3Normalize(cameraForward);
} }
else else
{ {
XMVECTOR offset = XMVectorSet(_followOffset.x, _followOffset.y, _followOffset.z, 1.0f); 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); cameraTarget = XMLoadFloat4(&nodePosition) + XMVector3Normalize(cameraForward);
} }
// Set the camera position // Set the camera position

View File

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

View File

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