Exam Done

This commit is contained in:
2025-01-13 17:12:23 +01:00
parent 5e28e5fff4
commit 0d556f12b4
29 changed files with 837 additions and 59 deletions

View File

@@ -6,7 +6,7 @@
#include "../Utils.h"
#include "../Effects/Effect.h"
void InstancedScene::Initialize(ID3D11Device *DevicePtr, ID3D11DeviceContext *DeviceContextPtr) {
void InstancedScene::Initialize(ID3D11Device *DevicePtr, ID3D11DeviceContext *DeviceContextPtr, Camera *camera) {
m_DeviceContextPtr = DeviceContextPtr;
std::vector<VertexIn> vertices{};
@@ -20,15 +20,30 @@ void InstancedScene::Initialize(ID3D11Device *DevicePtr, ID3D11DeviceContext *De
std::shared_ptr<Material> cubeMaterial = std::make_shared<Material>();
cubeMaterial->diffuseTexturePtr = Texture::LoadFromFile("resources/grass_block.png", DevicePtr);
// std::vector<InstancedData> instanceData;
// for (int x = 0; x < 100; ++x) {
// for (int y = 0; y < 100; ++y) {
// InstancedData data;
// float scale = 2;
// //Generate sine wave based on x and y
// float YOffset = sin(x * 0.5f + SDL_GetTicks() * 0.001f) + cos(y * 0.5f + SDL_GetTicks() * 0.001f);
// //Add random but predictable randomness
// YOffset += (x * 0.1f + y * 0.1f) * 0.1f;
// data.worldMatrix = Matrix::CreateTranslation(x * scale, YOffset, y * scale);
// data.worldMatrix *= Matrix::CreateScale(0.5f, 0.5f, 0.5f);
// data.color = Vector4(float(x) / 255.f, float(y) / 255.f, 1.f, 1.0f);
// instanceData.push_back(data);
// }
// }
std::vector<InstancedData> instanceData;
for (int x = 0; x < 100; ++x) {
for (int y = 0; y < 100; ++y) {
InstancedData data;
float scale = 2;
//Generate sine wave based on x and y
//use the perlin noise to generate the YOffset
float YOffset = sin(x * 0.5f + SDL_GetTicks() * 0.001f) + cos(y * 0.5f + SDL_GetTicks() * 0.001f);
//Add random but predictable randomness
YOffset += (x * 0.1f + y * 0.1f) * 0.1f;
data.worldMatrix = Matrix::CreateTranslation(x * scale, YOffset, y * scale);
data.worldMatrix *= Matrix::CreateScale(0.5f, 0.5f, 0.5f);
data.color = Vector4(float(x) / 255.f, float(y) / 255.f, 1.f, 1.0f);
@@ -92,4 +107,5 @@ void InstancedScene::Update() {
}
m_instancedMeshes[0]->UpdateInstanceData(m_DeviceContextPtr, instanceData);
}
}