Working on web version

This commit is contained in:
Vladislav Khorev committed 2026-01-08 23:23:39 +03:00
1 parent 723b973c7f
commit b055faf882
13 files changed
+439 -30

No files matched your search

+2 -2
View File
@@ -52,11 +52,11 @@ namespace ZL {
}
#ifndef SIMPLIFIED
//#ifndef SIMPLIFIED
planetAtmosphereLod = generateSphere(5, 0);
planetAtmosphereLod.Scale(PLANET_RADIUS * 1.03);
planetAtmosphereLod.Move(PLANET_CENTER_OFFSET);
#endif
//#endif
}
const LodLevel& PlanetData::getLodLevel(int level) const {
+16 -13
View File
@@ -78,14 +78,14 @@ namespace ZL {
stoneTexture = std::make_unique<Texture>(CreateTextureDataFromPng("./resources/rock.png", CONST_ZIP_FILE));
#ifndef SIMPLIFIED
//#ifndef SIMPLIFIED
// Атмосфера
planetAtmosphereRenderStruct.data = planetData.getAtmosphereLod().vertexData;
if (planetAtmosphereRenderStruct.data.PositionData.size() > 0)
{
planetAtmosphereRenderStruct.RefreshVBO();
}
#endif
//#endif
planetStones = CreateStoneGroupData(778, planetData.getLodLevel(lodIndex));
@@ -205,7 +205,7 @@ namespace ZL {
void PlanetObject::draw(Renderer& renderer) {
#ifndef SIMPLIFIED
//#ifndef SIMPLIFIED
{
if (stoneMapFB == nullptr)
{
@@ -221,7 +221,8 @@ namespace ZL {
stoneMapFB->GenerateMipmaps();
}
#endif
//#endif
//bakeStoneTexture(renderer);
@@ -232,9 +233,9 @@ namespace ZL {
drawPlanet(renderer);
drawStones(renderer);
#ifndef SIMPLIFIED
//#ifndef SIMPLIFIED
drawAtmosphere(renderer);
#endif
//#endif
}
void PlanetObject::drawPlanet(Renderer& renderer)
@@ -305,12 +306,12 @@ namespace ZL {
playerLightFactor = max(0.0f, (playerLightFactor + 0.2f) / 1.2f);
renderer.RenderUniform1f("uPlayerLightFactor", playerLightFactor);
#ifndef SIMPLIFIED
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, stoneMapFB->getTextureID());
#endif
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, sandTexture->getTexID());
//glBindTexture(GL_TEXTURE_2D, stoneMapFB->getTextureID());
renderer.DrawVertexRenderStruct(planetRenderStruct);
CheckGlError();
@@ -351,6 +352,7 @@ namespace ZL {
const float currentZNear = zRange.first;
const float currentZFar = zRange.second;
// 2. Применяем динамическую матрицу проекции
renderer.PushPerspectiveProjectionMatrix(1.0 / 1.5,
static_cast<float>(Environment::width) / static_cast<float>(Environment::height),
@@ -365,7 +367,7 @@ namespace ZL {
renderer.RenderUniform1f("uDistanceToPlanetSurface", dist);
renderer.RenderUniform1f("uCurrentZFar", currentZFar);
renderer.RenderUniform3fv("uViewPos", Environment::shipPosition.data());
//std::cout << "uViewPos" << Environment::shipPosition << std::endl;
// PlanetObject.cpp, метод drawStones
Vector3f sunDirWorld = Vector3f(1.0f, -1.0f, -1.0f).normalized();
renderer.RenderUniform3fv("uLightDirWorld", sunDirWorld.data());
@@ -380,6 +382,7 @@ namespace ZL {
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, stoneTexture->getTexID());
for (int i : triangleIndicesToDraw)
//for (int i = 0; i < stonesToRender.size(); i++)
{
@@ -406,6 +409,7 @@ namespace ZL {
void PlanetObject::drawAtmosphere(Renderer& renderer) {
static const std::string defaultShaderName = "defaultAtmosphere";
//static const std::string defaultShaderName = "defaultColor";
static const std::string vPositionName = "vPosition";
static const std::string vNormalName = "vNormal";
//glClear(GL_DEPTH_BUFFER_BIT);
@@ -441,7 +445,6 @@ namespace ZL {
Vector3f color = { 0.0, 0.5, 1.0 };
renderer.RenderUniform3fv("uColor", color.data());
renderer.RenderUniformMatrix4fv("ModelViewMatrix", false, viewMatrix.data());
@@ -449,8 +452,8 @@ namespace ZL {
renderer.RenderUniform1f("uDistanceToPlanetSurface", dist);
// В начале drawAtmosphere или как uniform
float time = SDL_GetTicks() / 1000.0f;
renderer.RenderUniform1f("uTime", time);
//float time = SDL_GetTicks() / 1000.0f;
//renderer.RenderUniform1f("uTime", time);
// В методе PlanetObject::drawAtmosphere
Vector3f worldLightDir = Vector3f(1.0f, -1.0f, -1.0f).normalized();
@@ -467,7 +470,7 @@ namespace ZL {
renderer.RenderUniform3fv("uLightDirView", lightToSource.data());
// В методе Game::drawCubemap
renderer.RenderUniform1f("uTime", SDL_GetTicks() / 1000.0f);
//renderer.RenderUniform1f("uTime", SDL_GetTicks() / 1000.0f);
// Направление света в мировом пространстве для освещения облаков
//Vector3f worldLightDir = Vector3f(1.0f, -1.0f, -1.0f).normalized();
renderer.RenderUniform3fv("uWorldLightDir", worldLightDir.data());