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){
EngineSettings& settings = engine->getSettings();
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 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);
}
lineBatch->render();
}
}
float WorldRenderer::fog = 0.0f;

View File

@ -40,6 +40,8 @@ public:
void draw(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);
static float fog;
};

View File

@ -56,14 +56,12 @@ inline Label* create_label(gui::wstringsupplier supplier) {
HudRenderer::HudRenderer(Engine* engine,
Level* level,
const ContentGfxCache* cache,
WorldRenderer* renderer)
const ContentGfxCache* cache)
: level(level),
assets(engine->getAssets()),
batch(new Batch2D(1024)),
gui(engine->getGUI()),
cache(cache),
renderer(renderer) {
cache(cache) {
auto menu = gui->getMenu();
blocksPreview = new BlocksPreview(assets->getShader("ui3d"),
assets->getAtlas("blocks"),
@ -160,6 +158,16 @@ HudRenderer::HudRenderer(Engine* engine,
});
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);
checkpanel->color(vec4(0.0f));

View File

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

View File

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

View File

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