From 54063cfd9c5284717fdc31d66c58ae9652bc268a Mon Sep 17 00:00:00 2001 From: Rui Barbosa Date: Thu, 18 Jun 2026 13:01:54 +0100 Subject: [PATCH] Rendering minecraft Blocks using the MinecraftPipeline --- Makefile | 2 +- inc/block.hpp | 29 ++++++++++++++++ inc/racer_game.hpp | 23 ------------- inc/render_test.hpp | 32 +++++++++++++++++ res/atlas.png | Bin 0 -> 98496 bytes src/block.cpp | 39 +++++++++++++++++++++ src/main.cpp | 8 +++-- src/racer_game.cpp | 58 ------------------------------- src/render_test.cpp | 82 ++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 188 insertions(+), 85 deletions(-) create mode 100644 inc/block.hpp delete mode 100644 inc/racer_game.hpp create mode 100644 inc/render_test.hpp create mode 100644 res/atlas.png create mode 100644 src/block.cpp delete mode 100644 src/racer_game.cpp create mode 100644 src/render_test.cpp diff --git a/Makefile b/Makefile index 24c9a97..17bf4dd 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -TARGET := racer.elf +TARGET := test.elf ENGINEDIR := /tyra/engine #The Directories, Source, Includes, Objects, Binary and Resources diff --git a/inc/block.hpp b/inc/block.hpp new file mode 100644 index 0000000..52565a8 --- /dev/null +++ b/inc/block.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include + +namespace Test { + + class Block { + public: + Block(); + Block(const Block& v); + ~Block(); + + void updateModelMatrix(); + + Tyra::M4x4 translation, rotation, scale; + + // Result matrix after transformations + Tyra::M4x4 modelMatrix; + + Tyra::Color color; + + Tyra::Vec4 atlasOffset; + + Tyra::McpipBlock renderData; + + private: + void setRenderData(); + }; +} \ No newline at end of file diff --git a/inc/racer_game.hpp b/inc/racer_game.hpp deleted file mode 100644 index c2f5a14..0000000 --- a/inc/racer_game.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include - -namespace Racer { - -class RacerGame : public Tyra::Game { - public: - RacerGame(Tyra::Engine* engine); - ~RacerGame(); - - void init(); - void loop(); - - private: - Tyra::Engine* engine; - void loadTexture(); - void loadSprite(); - - Tyra::Sprite sprite; -}; - -} // namespace Racer diff --git a/inc/render_test.hpp b/inc/render_test.hpp new file mode 100644 index 0000000..191a055 --- /dev/null +++ b/inc/render_test.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include +#include "block.hpp" + +namespace Test { + +class RenderTest : public Tyra::Game { + public: + RenderTest(Tyra::Engine* engine); + ~RenderTest(); + + void init(); + void loop(); + + private: + Tyra::Engine* engine; + Tyra::Texture* textureAtlas; + + Tyra::MinecraftPipeline mcpip; + Tyra::Vec4 cameraPosition, cameraLookAt; + + void loadTexture(); + Block getBlock(const u8& atlasX, const u8& atlasY, const float& translationX); + void rotateBlock(Block& block); + std::vector blocks; + + + +}; + +} // namespace Test diff --git a/res/atlas.png b/res/atlas.png new file mode 100644 index 0000000000000000000000000000000000000000..6c86ea520b77c46afd593a0acdcdca1f0c4a6b5e GIT binary patch literal 98496 zcmV)hK%>8jP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf|D{PpK~#8N?7atk z9M#o6d}f=pMXTOr$(DQXHnwpAgH11?g%$|uBq5|HKnkIykw6NB1X3Xhy>~ERim`FU zy~wtDFDq$#neRMj_O3>2$u)W3_xJyOk9{;VcjnGcxzB0$&WyJFi?eh+K~yj@n;Lg? zP^QODR=brFu>^VYozzk5Bh8{whRaTIE_3kIotsI`yE`ebJd5VISCZfFCo|k`H|6By z$o%fzyJ`IR@zm4PGvsy)9W_+b+$GEPtvxbbHlzBGvV$$%G_oXD=CS_m&HH8g^ZFfh zBFF#rF_Wmiqh0o^FruJPrlC-X+WY%b%jrP9iKpF6@pwF0V!&#(lHG2X`TqWX@_0NH zjYbdIuD-sW4jec@;cz%vVjv?UL#_?b)YL>}Wo2^hhT5)R(;F0wM9Jx}Q||H$sr${R z$)Z`PHyoiNcP0g*G0M)&p!%LZsy_b;>Ui}Da@lQC4lL{1NnMdROM-g%`pn76IOb)A z4LuQ>o#RL@{m(3q`{Qev)v~j*sk*wF_V3?MKA%t4ql}@mXeh%n+9ldzavNEPnRHBC za7uEH=-ot&iZyOz!yvk0@O=Tsjw9N;$C$qVu1<><5B`}mK0QA%4KBX=$QGHJVd-rPP$Hh7=3SjsP?gOj(J3BH zkkw%o@?;mgg*;e}1Y^|O=9l%(tPJw^7$=U#T3%kB5=DLhjUPZ6)`1Y%9)d;Hs0c>wF75dQkg20orck3WBN|1lju2wv#PqHTLRWD4Sg+#o-I zd59{<)C>^0y`8sDN=r+NltJq1>ST&CtlPC~S85&Rfe8~P(2N-~QZjMkM5?T;6q!7E zvP@Bibt6WMknJH*2({gP)aHkx3Xl<29ga`Jt_egm? z3lQSA?c?j#7B(9Bu`WM<*0)4j!-j(UA6^EtK;(3wOoviX^O!MVSn^v>T9lmoe+olg zBeIlDEFg=`LQ%e$eeD5?g=1nVGd&K1qC<2SG<{=Q|1t_w< zzCMx8&d$_4Br7XRrcfFXoU^JA3l5xU{hUk(HTL>teOrHktbC$gF7r5Svfg2}Q8;Fh zr@7BhIWD7qwsXLGpC~^3@WbSs0W5!QYd4L3qiM)>|0%qC&2mhX5-^L#?M&
FEA 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

&@jQ5@5OXdqd{g*GG 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 V7&231EldCa002ovPDHLkV1m66CK&(# literal 0 HcmV?d00001 diff --git a/src/block.cpp b/src/block.cpp new file mode 100644 index 0000000..a4050b7 --- /dev/null +++ b/src/block.cpp @@ -0,0 +1,39 @@ +#include "block.hpp" + +namespace Test { + +using namespace Tyra; + +Block::Block() { + // Set Matrices to identity + translation = M4x4::Identity; + rotation = M4x4::Identity; + scale = M4x4::Identity; + + setRenderData(); +} + +// Copy constructor +Block::Block(const Block& v) { + translation = v.translation; + rotation = v.rotation; + scale = v.scale; + modelMatrix = v.modelMatrix; + color = v.color; + atlasOffset = v.atlasOffset; + + setRenderData(); +} +Block::~Block() {} + +void Block::updateModelMatrix() { + modelMatrix = translation * rotation * scale; +} + +void Block::setRenderData() { + renderData.color = &color; + renderData.model = &modelMatrix; + renderData.textureOffset = &atlasOffset; +} + +} diff --git a/src/main.cpp b/src/main.cpp index b9d8bde..1e24b8d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,9 +1,11 @@ #include -#include "racer_game.hpp" +#include "render_test.hpp" int main() { - Tyra::Engine engine; - Racer::RacerGame game(&engine); + Tyra::EngineOptions options = { .writeLogsToFile = true }; + + Tyra::Engine engine(options); + Test::RenderTest game(&engine); engine.run(&game); SleepThread(); return 0; diff --git a/src/racer_game.cpp b/src/racer_game.cpp deleted file mode 100644 index 3970f08..0000000 --- a/src/racer_game.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "racer_game.hpp" - -namespace Racer { - -using namespace Tyra; - -RacerGame::RacerGame(Engine* t_engine) { engine = t_engine; } -RacerGame::~RacerGame() { - engine->renderer.getTextureRepository().freeBySprite(sprite); -} - -void RacerGame::init() { - engine->renderer.setClearScreenColor(Color(32.0F, 32.0F, 32.0F)); - - loadSprite(); - - loadTexture(); -} - -void RacerGame::loop() { - auto& renderer = engine->renderer; - - renderer.beginFrame(); - - renderer.renderer2D.render(sprite); - - renderer.endFrame(); -} - -void RacerGame::loadSprite() { - const auto& screenSettings = engine->renderer.core.getSettings(); - - sprite.mode = SpriteMode::MODE_STRETCH; - - sprite.size = Vec2(256.0F, 128.0F); - - sprite.position = - Vec2(screenSettings.getWidth() / 2.0F - sprite.size.x / 2.0F, - screenSettings.getHeight() / 2.0F - sprite.size.y / 2.0F); - - TYRA_LOG("Sprite created"); -} - -void RacerGame::loadTexture() { - auto& renderer = engine->renderer; - - auto& textureRepository = renderer.getTextureRepository(); - - auto filepath = FileUtils::fromCwd("chicken.png"); - - auto* texture = textureRepository.add(filepath); - - texture->addLink(sprite.id); - - TYRA_LOG("Texture loaded and linked to sprite"); -} - -} // namespace Racer diff --git a/src/render_test.cpp b/src/render_test.cpp new file mode 100644 index 0000000..f8d8ee3 --- /dev/null +++ b/src/render_test.cpp @@ -0,0 +1,82 @@ +#include "render_test.hpp" + +namespace Test { + +using namespace Tyra; + +RenderTest::RenderTest(Engine* t_engine) : engine(t_engine) { + textureAtlas = nullptr; +} + +RenderTest::~RenderTest() { + if (textureAtlas != nullptr) { + engine->renderer.getTextureRepository().free(textureAtlas); + } +} + +void RenderTest::init() { + loadTexture(); + engine->renderer.setClearScreenColor(Color(32.0F, 32.0F, 32.0F)); + + cameraPosition = Vec4(0.0F, 0.0F, -10.0F); + cameraLookAt.unit(); + + mcpip.setRenderer(&engine->renderer.core); + TYRA_LOG("RendererCore set for MinecraftPipeline"); + + blocks.push_back(getBlock(0, 1, 2.0F)); + blocks.push_back(getBlock(4, 0, -2.0F)); + TYRA_LOG("Blocks created and added to the scene"); +} + +void RenderTest::loop() { + for (auto& block : blocks) { + rotateBlock(block); + } + + + engine->renderer.beginFrame(CameraInfo3D(&cameraPosition, &cameraLookAt)); + { + engine->renderer.renderer3D.usePipeline(&mcpip); + { + mcpip.render({&blocks[0].renderData}, textureAtlas); + + mcpip.render({&blocks[1].renderData}, textureAtlas, true); + } + + } + engine->renderer.endFrame(); +} + +void RenderTest::loadTexture() { + auto& repo = engine->renderer.getTextureRepository(); + textureAtlas = repo.add(FileUtils::fromCwd("atlas.png")); + TYRA_LOG("Texture atlas loaded"); +} + +Block RenderTest::getBlock(const u8& atlasX, const u8& atlasY, const float& translationX) { + Block result; + + const u8 texturesInAtlasRow = 16; + const float textureOffset = 1.0F / texturesInAtlasRow; + + result.atlasOffset = Vec4(atlasX * textureOffset, atlasY * textureOffset); + + result.color = Color(128.0F, 128.0F, 128.0F, 128.0F); + + result.translation.translateX(translationX); + + result.updateModelMatrix(); + + TYRA_LOG("Block created with atlas coordinates (" + std::to_string(atlasX) + ", " + std::to_string(atlasY) + ") and translationX " + std::to_string(translationX)); + + return result; +} + +void RenderTest::rotateBlock(Block& block) { + block.rotation.rotate(Vec4(0.01F, 0.02F, 0.03F)); + + block.updateModelMatrix(); +} + +} // namespace Test