vu1 packet spamming in static pipeline

This commit is contained in:
h4570
2022-07-24 12:21:21 +02:00
parent cf8ca23ba9
commit 9d18a81c2a
12 changed files with 173 additions and 52 deletions
+2
View File
@@ -15,6 +15,7 @@
#include "renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp"
#include "renderer/3d/pipeline/static/static_pipeline.hpp"
#include "renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp"
#include "renderer/3d/mesh/static/static_mesh.hpp"
namespace Tyra {
@@ -29,6 +30,7 @@ class H4570 : public Game {
private:
Engine* engine;
StaticMesh* staticMesh;
DynamicMesh* warrior;
u8 warriorsCount;
DynamicMesh** warriors;
+26
View File
@@ -27,6 +27,7 @@ int getRandomInt(int a, int b) { return (rand() % (b - a + 1)) + a; }
H4570::H4570(Engine* t_engine) { engine = t_engine; }
H4570::~H4570() {}
StaticMesh* getStaticMesh(Renderer* renderer);
DynamicMesh* getWarrior(Renderer* renderer);
StaPipOptions* getStaPipOptions();
DynPipOptions* getDynPipOptions();
@@ -45,6 +46,8 @@ void H4570::init() {
engine->renderer.setClearScreenColor(Color(64.0F, 64.0F, 64.0F));
staticMesh = getStaticMesh(&engine->renderer);
warrior = getWarrior(&engine->renderer);
warriorTex = engine->renderer.core.texture.repository.getBySpriteOrMesh(
warrior->getMaterial(0)->getId());
@@ -114,7 +117,14 @@ void H4570::init() {
engine->renderer.setFrameLimit(false);
}
u32 counter = 0;
void H4570::loop() {
if (counter++ > 30) {
TYRA_LOG(engine->info.getFps());
counter = 0;
}
for (u8 i = 0; i < warriorsCount; i++) warriors[i]->animate();
engine->renderer.beginFrame(CameraInfo3D(&cameraPosition, &cameraLookAt));
@@ -127,6 +137,9 @@ void H4570::loop() {
blocks[i].model = translations[i] * rotations[i] * scales[i];
}
engine->renderer.renderer3D.usePipeline(&stapip);
{ stapip.render(staticMesh, staOptions); }
engine->renderer.renderer3D.usePipeline(&dynpip);
{
Threading::switchThread();
@@ -144,6 +157,19 @@ void H4570::loop() {
engine->renderer.endFrame();
}
StaticMesh* getStaticMesh(Renderer* renderer) {
MD2Loader loader;
auto* data = loader.load(FileUtils::fromCwd("warrior.md2"), .08F, false);
auto* result = new StaticMesh(*data);
// result->translation.translateZ(-30.0F);
delete data;
renderer->core.texture.repository.addByMesh(result, FileUtils::getCwd(),
"png");
return result;
}
DynamicMesh* getWarrior(Renderer* renderer) {
MD2Loader loader;
auto* data = loader.load(FileUtils::fromCwd("warrior.md2"), .08F, false);