wellinator sample update

This commit is contained in:
h4570
2022-07-25 21:18:15 +02:00
parent ff5757bf9b
commit 70028a8f18
2 changed files with 26 additions and 9 deletions
+4 -1
View File
@@ -14,6 +14,7 @@
#include <game.hpp> #include <game.hpp>
#include "renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp" #include "renderer/3d/pipeline/minecraft/minecraft_pipeline.hpp"
#include "renderer/3d/pipeline/static/static_pipeline.hpp" #include "renderer/3d/pipeline/static/static_pipeline.hpp"
#include "renderer/3d/pipeline/dynamic/dynamic_pipeline.hpp"
namespace Tyra { namespace Tyra {
@@ -37,7 +38,9 @@ class Wellinator : public Game {
MinecraftPipeline mcPip; MinecraftPipeline mcPip;
StaticPipeline stapip; StaticPipeline stapip;
StaPipOptions* renderOptions; DynamicPipeline dynpip;
StaPipOptions* staOptions;
DynPipOptions* dynOptions;
Texture* blocksTex; Texture* blocksTex;
u32 blocksCount; u32 blocksCount;
+22 -8
View File
@@ -11,6 +11,7 @@
#include "wellinator.hpp" #include "wellinator.hpp"
#include "file/file_utils.hpp" #include "file/file_utils.hpp"
#include "loaders/3d/md2/md2_loader.hpp" #include "loaders/3d/md2/md2_loader.hpp"
#include "renderer/3d/mesh/dynamic/dynamic_mesh.hpp"
namespace Tyra { namespace Tyra {
@@ -18,7 +19,9 @@ Wellinator::Wellinator(Engine* t_engine) { engine = t_engine; }
Wellinator::~Wellinator() {} Wellinator::~Wellinator() {}
DynamicMesh* getWarrior(Renderer* renderer); DynamicMesh* getWarrior(Renderer* renderer);
StaPipOptions* getRenderingOptions(); StaPipOptions* getStaPipOptions();
DynPipOptions* getDynPipOptions();
void setPipelineOptions(PipelineOptions* options);
Sprite* get2DPicture(Renderer* renderer); Sprite* get2DPicture(Renderer* renderer);
void Wellinator::init() { void Wellinator::init() {
@@ -33,7 +36,9 @@ void Wellinator::init() {
engine->renderer.setClearScreenColor(Color(64.0F, 64.0F, 64.0F)); engine->renderer.setClearScreenColor(Color(64.0F, 64.0F, 64.0F));
warrior = getWarrior(&engine->renderer); warrior = getWarrior(&engine->renderer);
renderOptions = getRenderingOptions();
staOptions = getStaPipOptions();
dynOptions = getDynPipOptions();
cameraPosition = Vec4(0.0F, 0.0F, 0.0F, 1.0F); cameraPosition = Vec4(0.0F, 0.0F, 0.0F, 1.0F);
cameraLookAt = *warrior->getPosition(); cameraLookAt = *warrior->getPosition();
@@ -42,6 +47,7 @@ void Wellinator::init() {
FileUtils::fromCwd("blocks.png")); FileUtils::fromCwd("blocks.png"));
mcPip.setRenderer(&engine->renderer.core); mcPip.setRenderer(&engine->renderer.core);
dynpip.setRenderer(&engine->renderer.core);
stapip.setRenderer(&engine->renderer.core); stapip.setRenderer(&engine->renderer.core);
picture = get2DPicture(&engine->renderer); picture = get2DPicture(&engine->renderer);
@@ -116,8 +122,8 @@ void Wellinator::loop() {
// warrior->setPosition(*nextPos); // warrior->setPosition(*nextPos);
engine->renderer.renderer3D.usePipeline(&stapip); engine->renderer.renderer3D.usePipeline(&dynpip);
{ stapip.render(warrior, renderOptions); } { dynpip.render(warrior, dynOptions); }
engine->renderer.renderer3D.usePipeline(&mcPip); engine->renderer.renderer3D.usePipeline(&mcPip);
{ mcPip.render(blocks, blocksCount, blocksTex, false); } { mcPip.render(blocks, blocksCount, blocksTex, false); }
@@ -150,10 +156,20 @@ Sprite* get2DPicture(Renderer* renderer) {
return sprite; return sprite;
} }
StaPipOptions* getRenderingOptions() { StaPipOptions* getStaPipOptions() {
auto* options = new StaPipOptions(); auto* options = new StaPipOptions();
setPipelineOptions(options);
return options;
}
auto* ambientColor = new Color(32.0F, 32.0F, 32.0F, 128.0F); DynPipOptions* getDynPipOptions() {
auto* options = new DynPipOptions();
setPipelineOptions(options);
return options;
}
void setPipelineOptions(PipelineOptions* options) {
auto* ambientColor = new Color(32.0F, 32.0F, 32.0F, 32.0F);
auto* directionalColors = new Color[3]; auto* directionalColors = new Color[3];
for (int i = 0; i < 3; i++) directionalColors[i].set(0.0F, 0.0F, 0.0F, 1.0F); for (int i = 0; i < 3; i++) directionalColors[i].set(0.0F, 0.0F, 0.0F, 1.0F);
auto* directionalDirections = new Vec4[3]; auto* directionalDirections = new Vec4[3];
@@ -175,8 +191,6 @@ StaPipOptions* getRenderingOptions() {
directionalDirections[1].set(1.0F, 0.0F, 0.0F); directionalDirections[1].set(1.0F, 0.0F, 0.0F);
directionalColors[1].set(96.0F, 0.0F, 0.0F); directionalColors[1].set(96.0F, 0.0F, 0.0F);
return options;
} }
} // namespace Tyra } // namespace Tyra