New trackbar + pane lights fix

This commit is contained in:
MihailRis 2023-12-05 10:51:44 +03:00
parent 64f6f17386
commit 788234ab94
6 changed files with 26 additions and 20 deletions

View File

@ -128,7 +128,7 @@ void WorldRenderer::drawChunks(Chunks* chunks,
void WorldRenderer::draw(const GfxContext& pctx, Camera* camera){ void WorldRenderer::draw(const GfxContext& pctx, Camera* camera){
EngineSettings& settings = engine->getSettings(); EngineSettings& settings = engine->getSettings();
skybox->refresh(level->world->daytime, skybox->refresh(level->world->daytime,
fmax(1.0f, 10.0f/(settings.chunks.loadDistance-2)), 4); fmax(1.0f, 10.0f/(settings.chunks.loadDistance-2))+fog*2.0f, 4);
const Content* content = level->content; const Content* content = level->content;
const ContentIndices* contentIds = content->indices; const ContentIndices* contentIds = content->indices;
@ -290,4 +290,6 @@ void WorldRenderer::drawBorders(int sx, int sy, int sz, int ex, int ey, int ez)
sx, i, sz, 0, 0.8f, 0, 1); sx, i, sz, 0, 0.8f, 0, 1);
} }
lineBatch->render(); lineBatch->render();
} }
float WorldRenderer::fog = 0.0f;

View File

@ -40,6 +40,8 @@ public:
void draw(const GfxContext& context, Camera* camera); void draw(const GfxContext& context, Camera* camera);
void drawDebug(const GfxContext& context, Camera* camera); void drawDebug(const GfxContext& context, Camera* camera);
void drawBorders(int sx, int sy, int sz, int ex, int ey, int ez); void drawBorders(int sx, int sy, int sz, int ex, int ey, int ez);
static float fog;
}; };

View File

@ -56,14 +56,12 @@ inline Label* create_label(gui::wstringsupplier supplier) {
HudRenderer::HudRenderer(Engine* engine, HudRenderer::HudRenderer(Engine* engine,
Level* level, Level* level,
const ContentGfxCache* cache, const ContentGfxCache* cache)
WorldRenderer* renderer)
: level(level), : level(level),
assets(engine->getAssets()), assets(engine->getAssets()),
batch(new Batch2D(1024)), batch(new Batch2D(1024)),
gui(engine->getGUI()), gui(engine->getGUI()),
cache(cache), cache(cache) {
renderer(renderer) {
auto menu = gui->getMenu(); auto menu = gui->getMenu();
blocksPreview = new BlocksPreview(assets->getShader("ui3d"), blocksPreview = new BlocksPreview(assets->getShader("ui3d"),
assets->getAtlas("blocks"), assets->getAtlas("blocks"),
@ -160,6 +158,16 @@ HudRenderer::HudRenderer(Engine* engine,
}); });
panel->add(bar); panel->add(bar);
} }
{
TrackBar* bar = new TrackBar(0.0f, 1.0f, 0.0f, 0.005f, 8);
bar->supplier([=]() {
return WorldRenderer::fog;
});
bar->consumer([=](double val) {
WorldRenderer::fog = val;
});
panel->add(bar);
}
{ {
Panel* checkpanel = new Panel(vec2(400, 32), vec4(5.0f), 1.0f); Panel* checkpanel = new Panel(vec2(400, 32), vec4(5.0f), 1.0f);
checkpanel->color(vec4(0.0f)); checkpanel->color(vec4(0.0f));

View File

@ -42,13 +42,10 @@ class HudRenderer {
std::shared_ptr<gui::UINode> debugPanel; std::shared_ptr<gui::UINode> debugPanel;
gui::GUI* gui; gui::GUI* gui;
const ContentGfxCache* const cache; const ContentGfxCache* const cache;
WorldRenderer* renderer;
public: public:
HudRenderer(Engine* engine, HudRenderer(Engine* engine,
Level* level, Level* level,
const ContentGfxCache* cache, const ContentGfxCache* cache);
WorldRenderer* renderer);
~HudRenderer(); ~HudRenderer();
void update(); void update();

View File

@ -96,7 +96,7 @@ LevelScreen::LevelScreen(Engine* engine, Level* level)
controller = new LevelController(settings, level); controller = new LevelController(settings, level);
cache = new ContentGfxCache(level->content, engine->getAssets()); cache = new ContentGfxCache(level->content, engine->getAssets());
worldRenderer = new WorldRenderer(engine, level, cache); worldRenderer = new WorldRenderer(engine, level, cache);
hud = new HudRenderer(engine, level, cache, worldRenderer); hud = new HudRenderer(engine, level, cache);
backlight = settings.graphics.backlight; backlight = settings.graphics.backlight;
} }

View File

@ -251,21 +251,18 @@ void BlocksRenderer::blockCubeShaded(const ivec3& icoord,
coord += orient.fix; coord += orient.fix;
loff -= orient.fix; loff -= orient.fix;
} }
vec3 fX(X);
vec3 fY(Y);
vec3 fZ(Z); vec3 fZ(Z);
vec3 local = offset.x*vec3(X)+offset.y*vec3(Y)+offset.z*vec3(-Z); vec3 local = offset.x*vec3(X)+offset.y*vec3(Y)+offset.z*-fZ;
//local -= loff;
face(coord, X, Y, Z, Z+loff, local-size.z*fZ, size.x, size.y, size.z, texfaces[5]); face(coord, X, Y, Z, Z+loff, local-size.z*fZ, size.x, size.y, size.z, texfaces[5]);
face(coord+X, -X, Y, -Z, Z-Z-X+loff, local-size.z*fZ, size.x, size.y, 0.0f, texfaces[4]); face(coord+X, -X, Y, -Z, Z-Z-X+loff, local-size.z*fZ, size.x, size.y, 0.0f, texfaces[4]);
face(coord+Y, X, -Z, Y, Y-Y+loff, local, size.x, size.z, 0.0f, texfaces[3]); //; face(coord+Y, X, -Z, Y, Y-Y+loff, local, size.x, size.z, 0.0f, texfaces[3]);
face(coord+X, -X, -Z, -Y, -Y+Z+loff, local, size.x, size.z, 0.0f, texfaces[2]); //; face(coord+X, -X, -Z, -Y, -X-Y+loff, local, size.x, size.z, 0.0f, texfaces[2]);
face(coord+X, -Z, Y, X, X-X+loff, local, size.z, size.y, 0.0f, texfaces[1]); //; face(coord+X, -Z, Y, X, X-X+loff, local, size.z, size.y, 0.0f, texfaces[1]);
face(coord+Y, -Z, -Y, -X, -X+Z+loff, local, size.z, size.y, 0.0f, texfaces[0]); //; face(coord+Y, -Z, -Y, -X, -X-Y-Z+loff, local, size.z, size.y, 0.0f, texfaces[0]);
} }
/* Fastest solid shaded blocks render method */ /* Fastest solid shaded blocks render method */