Skip to content

Commit 508eac5

Browse files
committed
Added sponza
1 parent 3955d24 commit 508eac5

8 files changed

Lines changed: 37 additions & 89 deletions

File tree

Engine/include/GlobalData/Defines.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include "glm/glm.hpp"
44
#define DIR_DEFAULT_BLACK "../../../Resources/res/black.png"
55
#define DIR_DEFAULT_ROUGHNESS "../../../Resources/res/max_roughness.png"
6-
#define DIR_DEFAULT_WHITE "../../../Resources/res/white.jpg"
6+
#define DIR_DEFAULT_WHITE "../../../Resources/res/white.png"
77
#define DIR_DEFAULT_SCENE "../../../Resources/BasicScene/BasicScene.gltf"
88
#define DIR_DEFAULT_NORMAL "../../../Resources/res/normal.jpg"
99
#define DIR_DEFAULT_SETTINGS "../../../Resources/configuration/settings.json"

Engine/include/SceneObjects/Sprite.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,16 @@ class Sprite : public Node {
2626
TRUE
2727
};
2828

29+
struct SpriteUserData {
30+
unsigned int width = 1;
31+
unsigned int height = 1;
32+
unsigned int speed = 1;
33+
glm::vec3 color = glm::vec3(1);
34+
};
35+
2936
Sprite(BLENDING blending, DEPTH_WRITE depthWrite);
3037
void loadSprites(std::vector<std::shared_ptr<Texture>> textures);
31-
void numSprites(unsigned int numSprites);
38+
void numSprites(unsigned int numSprites, SpriteUserData userData);
3239
void size(glm::vec2 size);
3340
void render();
3441
Diligent::RefCntAutoPtr<Diligent::IBuffer> models();

Engine/src/SceneObjects/Sprite.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ void Prisma::Sprite::loadSprites(std::vector<std::shared_ptr<Texture>> textures)
248248
//m_ssboTextures->modifyData(0, sizeof(SpriteData) * m_spritesData.size(), m_spritesData.data());
249249
}
250250

251-
void Prisma::Sprite::numSprites(unsigned int numSprites)
251+
void Prisma::Sprite::numSprites(unsigned int numSprites, SpriteUserData userData)
252252
{
253253
m_numSprites = numSprites;
254254
//m_ssbo->resize(sizeof(glm::mat4) * m_numSprites);
@@ -262,10 +262,11 @@ void Prisma::Sprite::numSprites(unsigned int numSprites)
262262
for (int i = 0; i < m_numSprites; i++)
263263
{
264264
spriteModels[i].model = defaultData;
265-
spriteModels[i].color = glm::vec4(1);
265+
spriteModels[i].color = glm::vec4(userData.color,1);
266266
spriteIndices[i].id = defaultIndices;
267-
spriteIndices[i].width=1;
268-
spriteIndices[i].height=1;
267+
spriteIndices[i].width=userData.width;
268+
spriteIndices[i].height=userData.height;
269+
spriteIndices[i].speed=userData.speed;
269270
}
270271
//m_ssbo->modifyData(0, sizeof(glm::mat4) * m_numSprites, spriteModels.data());
271272
m_models.Release();
14.9 MB
Binary file not shown.
2.35 MB
Loading

UserEngine/include/PlayerController.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class PlayerController {
4242

4343
void updateAnimations();
4444

45+
void createParticles();
46+
4547
std::shared_ptr<Prisma::CallbackHandler> m_handler;
4648

4749
glm::vec3 m_position = glm::vec3(0.0f);
@@ -117,6 +119,4 @@ class PlayerController {
117119
unsigned int m_ballIndex = 0;
118120

119121
const unsigned int m_maxBalls = 10;
120-
121-
int m_numScene = 1;
122122
};

UserEngine/src/ParticleController.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void ParticleController::init(std::shared_ptr<Prisma::Node> root, int numParticl
2525
auto sprite = std::make_shared<Prisma::Sprite>(Prisma::Sprite::BLENDING::ADDITIVE,Prisma::Sprite::DEPTH_WRITE::FALSE);
2626

2727
sprite->loadSprites({spriteFire, spriteBurst});
28-
sprite->numSprites(m_numParticles);
28+
sprite->numSprites(m_numParticles,{1,1,1,glm::vec3(1)});
2929
sprite->size(glm::vec2(0.1f, 0.1f));
3030
sprite->name("Sprite");
3131
/*m_compute = std::make_shared<Prisma::Shader>("../../../UserEngine/Shaders/SpriteCompute/compute.glsl");

UserEngine/src/PlayerController.cpp

Lines changed: 20 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -67,80 +67,6 @@ PlayerController::PlayerController(std::shared_ptr<Prisma::Scene> scene) : m_sce
6767

6868
m_interpolator.timeframe(timeframes);
6969

70-
71-
if (m_numScene == 0) {
72-
m_particleController.init(m_scene->root);
73-
74-
75-
auto grass1Renderer = std::make_shared<Prisma::Node>();
76-
77-
grass1Renderer->name("Grass1Renderer");
78-
79-
auto grass1Instance = std::make_shared<Prisma::InstancingGrassComponent>();
80-
81-
auto grass2Renderer = std::make_shared<Prisma::Node>();
82-
83-
grass2Renderer->name("Grass2Renderer");
84-
85-
auto grass2Instance = std::make_shared<Prisma::InstancingGrassComponent>();
86-
87-
std::vector<Prisma::Mesh::MeshData> models;
88-
std::vector<Prisma::Mesh::MeshData> models1;
89-
auto grass2 = std::dynamic_pointer_cast<Prisma::Mesh>(nodeHelper.find(m_scene->root, "Grass_2.250")->children()[0]);
90-
auto grass1 = std::dynamic_pointer_cast<Prisma::Mesh>(nodeHelper.find(m_scene->root, "Grass_1.250")->children()[0]);
91-
92-
int range = 2000;
93-
94-
for (int i = 0; i < 10000; ++i) {
95-
// Random translation
96-
float x = (std::rand() % range - range / 2);
97-
float z = (std::rand() % range - range / 2);
98-
99-
float x1 = (std::rand() % range - range / 2);
100-
float z1 = (std::rand() % range - range / 2);
101-
102-
glm::mat4 translation = glm::translate(grass2->parent()->matrix(), glm::vec3(x, 0, z)) * glm::rotate(glm::mat4(1.0), glm::radians(static_cast<float>(std::rand() % 360)), glm::vec3(0, 1, 0));
103-
glm::mat4 translation1 = glm::translate(grass1->parent()->matrix(), glm::vec3(x1, 0, z1)) * glm::rotate(glm::mat4(1.0), glm::radians(static_cast<float>(std::rand() % 360)), glm::vec3(0, 1, 0));
104-
105-
glm::mat4 normalMatrix = glm::transpose(glm::inverse(translation));
106-
glm::mat4 normalMatrix1 = glm::transpose(glm::inverse(translation1));
107-
108-
models.push_back({translation, normalMatrix});
109-
models1.push_back({translation1, normalMatrix1});
110-
}
111-
112-
grass1Instance->mesh(grass1);
113-
114-
grass1Instance->models(models);
115-
116-
grass1Renderer->addComponent(grass1Instance);
117-
118-
m_scene->root->addChild(grass1Renderer);
119-
120-
grass2Instance->mesh(grass2);
121-
122-
grass2Instance->models(models1);
123-
124-
grass2Renderer->addComponent(grass2Instance);
125-
126-
m_scene->root->addChild(grass2Renderer);
127-
128-
auto water = std::make_shared<Prisma::Node>();
129-
130-
water->name("WaterNode");
131-
132-
auto waterComponent = std::make_shared<Prisma::WaterComponent>();
133-
134-
waterComponent->nodePosition(m_bboxMesh);
135-
136-
waterComponent->radius(5);
137-
138-
water->addComponent(waterComponent);
139-
140-
m_scene->root->addChild(water);
141-
142-
}
143-
14470
m_sphereMesh->visible(false);
14571

14672
for (int i = 0; i < m_maxBalls; i++) {
@@ -169,7 +95,7 @@ PlayerController::PlayerController(std::shared_ptr<Prisma::Scene> scene) : m_sce
16995
}
17096
});*/
17197
}
172-
98+
createParticles();
17399
createCamera();
174100
createKeyboard();
175101
}
@@ -268,10 +194,6 @@ void PlayerController::scene(std::shared_ptr<Prisma::Scene> scene) {
268194
}
269195

270196
void PlayerController::update() {
271-
272-
if (m_numScene == 0) {
273-
m_particleController.update();
274-
}
275197
target(m_animatedMesh->parent()->finalMatrix()[3]);
276198
updateCamera();
277199
updateKeyboard();
@@ -403,4 +325,22 @@ void PlayerController::updateAnimations() {
403325
}
404326
}
405327
}
406-
}
328+
}
329+
330+
void PlayerController::createParticles() {
331+
auto spriteFire = std::make_shared<Prisma::Texture>();
332+
spriteFire->loadTexture({"../../../Resources/DefaultScene/sprites/fire_sequence.png", true});
333+
334+
auto sprite = std::make_shared<Prisma::Sprite>(Prisma::Sprite::BLENDING::ALPHA, Prisma::Sprite::DEPTH_WRITE::FALSE);
335+
336+
sprite->loadSprites({spriteFire});
337+
sprite->numSprites(1, {15, 4, 20, glm::vec3(1)});
338+
sprite->size(glm::vec2(0.1f, 0.1f));
339+
sprite->name("Sprite");
340+
/*m_compute = std::make_shared<Prisma::Shader>("../../../UserEngine/Shaders/SpriteCompute/compute.glsl");
341+
m_compute->use();
342+
m_deltaPos = m_compute->getUniformPosition("deltaTime");
343+
m_timePos = m_compute->getUniformPosition("time");*/
344+
sprite->matrix(translate(glm::mat4(1.0f), glm::vec3(0, -0.5, 0)));
345+
m_scene->root->addChild(sprite);
346+
}

0 commit comments

Comments
 (0)