Working on fog shader

This commit is contained in:
Vladislav Khorev committed 2026-01-02 21:16:44 +03:00
1 parent 2b40c13c9d
commit c9178cff3a
7 files changed
+232 -99

No files matched your search

+11 -7
View File
@@ -65,8 +65,9 @@ namespace ZL {
//planetRenderStruct.data.PositionData.resize(9);
planetRenderStruct.RefreshVBO();
sandTexture = std::make_unique<Texture>(CreateTextureDataFromPng("./resources/sand2.png", ""));
stoneTexture = std::make_unique<Texture>(CreateTextureDataFromPng("./resources/rock.png", ""));
stoneTexture = std::make_unique<Texture>(CreateTextureDataFromPng("./resources/rockdark2.png", ""));
// Атмосфера
planetAtmosphereRenderStruct.data = planetData.getAtmosphereLod().vertexData;
@@ -271,7 +272,8 @@ namespace ZL {
renderer.EnableVertexAttribArray("vBinormal");
renderer.EnableVertexAttribArray(vTexCoordName);
float dist = planetData.distanceToPlanetSurface(Environment::shipPosition);
float dist = planetData.distanceToPlanetSurfaceFast(Environment::shipPosition);
auto zRange = planetData.calculateZRange(dist);
const float currentZNear = zRange.first;
const float currentZFar = zRange.second;
@@ -300,13 +302,14 @@ namespace ZL {
// Позиция камеры (корабля) в мире
renderer.RenderUniform3fv("uViewPos", &Environment::shipPosition.v[0]);
renderer.RenderUniform1f("uHeightScale", 0.03f);
renderer.RenderUniform1f("uHeightScale", 0.08f);
//renderer.RenderUniform1f("uHeightScale", 0.0f);
renderer.RenderUniform1f("uDistanceToPlanetSurface", dist);
renderer.RenderUniform1f("uCurrentZFar", currentZFar);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, stoneMapFB->getTextureID());
glActiveTexture(GL_TEXTURE0);
@@ -329,7 +332,6 @@ namespace ZL {
}
void PlanetObject::drawStones(Renderer& renderer)
{
static const std::string defaultShaderName2 = "planetStone";
@@ -346,7 +348,8 @@ namespace ZL {
renderer.EnableVertexAttribArray(vNormalName);
renderer.EnableVertexAttribArray(vTexCoordName);
float dist = planetData.distanceToPlanetSurface(Environment::shipPosition);
float dist = planetData.distanceToPlanetSurfaceFast(Environment::shipPosition);
auto zRange = planetData.calculateZRange(dist);
const float currentZNear = zRange.first;
const float currentZFar = zRange.second;
@@ -481,7 +484,7 @@ namespace ZL {
renderer.EnableVertexAttribArray(vNormalName);
float dist = planetData.distanceToPlanetSurface(Environment::shipPosition);
float dist = planetData.distanceToPlanetSurfaceFast(Environment::shipPosition);
auto zRange = planetData.calculateZRange(dist);
const float currentZNear = zRange.first;
const float currentZFar = zRange.second;
@@ -501,6 +504,7 @@ namespace ZL {
Vector3f color = { 0.0, 0.5, 1.0 };
renderer.RenderUniform3fv("uColor", &color.v[0]);
renderer.RenderUniformMatrix4fv("ModelViewMatrix", false, &viewMatrix.m[0]);
@@ -525,7 +529,7 @@ namespace ZL {
float PlanetObject::distanceToPlanetSurface(const Vector3f& viewerPosition)
{
return planetData.distanceToPlanetSurface(viewerPosition);
return planetData.distanceToPlanetSurfaceFast(viewerPosition);
}