mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-24 04:58:59 -05:00
Change ColorTextures to ColorLayers etc
This commit is contained in:
@@ -32,7 +32,7 @@ return {
|
||||
HeightMapMinimumSize = 64,
|
||||
},
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Type = "Temporal",
|
||||
Name = "Temporal VIIRS SNPP",
|
||||
@@ -79,7 +79,7 @@ return {
|
||||
},
|
||||
]]
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
{
|
||||
Name = "CTX Mosaic",
|
||||
FilePath = "map_service_configs/mars/CTX_Mosaic.xml",
|
||||
@@ -94,7 +94,7 @@ return {
|
||||
}]]
|
||||
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
{
|
||||
Name = "Earth at Night 2012",
|
||||
FilePath = "map_service_configs/earth/VIIRS_CityLights_2012.xml",
|
||||
@@ -106,7 +106,7 @@ return {
|
||||
FilePath = "map_service_configs/earth/MODIS_Water_Mask.xml",
|
||||
},
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
{
|
||||
Name = "Coastlines",
|
||||
FilePath = "map_service_configs/earth/Coastlines.xml",
|
||||
@@ -125,7 +125,7 @@ return {
|
||||
FilePath = "textures/test_tile.png",
|
||||
},
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
|
||||
{
|
||||
Name = "Mola Elevation",
|
||||
@@ -148,7 +148,7 @@ return {
|
||||
FilePath = "map_service_configs/mercury/OnMercuryElevationGaskell.xml",
|
||||
},
|
||||
},
|
||||
HeightMapOverlays = {
|
||||
HeightMapColorOverlays = {
|
||||
--[[
|
||||
{
|
||||
Name = "West_Candor_Chasma_DEM_longlat_global2",
|
||||
|
||||
@@ -25,7 +25,7 @@ function preInitialization()
|
||||
|
||||
-- Toggle night texture, shading, atmosphere and water
|
||||
openspace.bindKey("s",
|
||||
helper.property.invert('Earth.RenderableGlobe.Layers.NightTextures.Earth at Night 2012.enabled') ..
|
||||
helper.property.invert('Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.enabled') ..
|
||||
helper.property.invert('Earth.RenderableGlobe.performShading') ..
|
||||
helper.property.invert('Earth.RenderableGlobe.atmosphere') ..
|
||||
helper.property.invert('Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.enabled')
|
||||
@@ -56,8 +56,8 @@ function postInitialization()
|
||||
openspace.setPropertyValue("SunMarker.renderable.enabled", false)
|
||||
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.atmosphere", true)
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.Layers.NightTextures.Earth at Night 2012.settings.gamma", 1.8)
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.Layers.NightTextures.Earth at Night 2012.settings.multiplier", 10)
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.settings.gamma", 1.8)
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.settings.multiplier", 10)
|
||||
|
||||
openspace.resetCameraDirection()
|
||||
openspace.time.setDeltaTime(0)
|
||||
|
||||
@@ -49,8 +49,8 @@ return {
|
||||
CameraMinHeight = 300,
|
||||
InteractionDepthBelowEllipsoid = 0, -- Useful when having negative height map values
|
||||
SegmentsPerPatch = 64,
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "ESRI Imagery World 2D",
|
||||
FilePath = "map_service_configs/ESRI/ESRI_Imagery_World_2D.wms",
|
||||
@@ -76,13 +76,13 @@ return {
|
||||
FilePath = "textures/test_tile.png",
|
||||
},
|
||||
},
|
||||
GrayScaleTextures = {
|
||||
GrayScaleLayers = {
|
||||
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
{
|
||||
Name = "Earth at Night 2012",
|
||||
FilePath = "map_service_configs/GIBS/VIIRS_CityLights_2012.xml",
|
||||
@@ -96,7 +96,7 @@ return {
|
||||
Enabled = true,
|
||||
},
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
{
|
||||
Name = "Coastlines",
|
||||
FilePath = "map_service_configs/GIBS/Coastlines.xml",
|
||||
@@ -116,7 +116,7 @@ return {
|
||||
BackgroundImagePath = "../debugglobe/textures/arrows.png",
|
||||
},
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "Terrain tileset",
|
||||
FilePath = "map_service_configs/ESRI/TERRAIN.wms",
|
||||
|
||||
@@ -48,8 +48,8 @@ return {
|
||||
OverlayMinimumSize = 512,
|
||||
HeightMapMinimumSize = 64,
|
||||
},
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "Black Marble Next Generation (January)",
|
||||
FilePath = "earth/BmngJan.wms",
|
||||
@@ -61,23 +61,23 @@ return {
|
||||
},
|
||||
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
},
|
||||
WaterMasks = {
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "Black Marble Next Generation (Januray)",
|
||||
FilePath = "earth/BmngJanTopo.wms",
|
||||
Enabled = true,
|
||||
},
|
||||
},
|
||||
HeightMapOverlays = {
|
||||
HeightMapColorOverlays = {
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -110,7 +110,7 @@ return {
|
||||
HeightMapMinimumSize = 64,
|
||||
},
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "ClemUvvis",
|
||||
FilePath = "moon/ClemUvvis.wms",
|
||||
@@ -142,23 +142,23 @@ return {
|
||||
},
|
||||
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
},
|
||||
WaterMasks = {
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "LolaDem",
|
||||
FilePath = "moon/LolaDem.wms",
|
||||
Enabled = true,
|
||||
},
|
||||
},
|
||||
HeightMapOverlays = {
|
||||
HeightMapColorOverlays = {
|
||||
|
||||
},
|
||||
},
|
||||
@@ -192,7 +192,7 @@ return {
|
||||
HeightMapMinimumSize = 64,
|
||||
},
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "MDIM",
|
||||
FilePath = "mars/Mdim.wms",
|
||||
@@ -203,7 +203,7 @@ return {
|
||||
FilePath = "mars/MolaPseudoColor.wms",
|
||||
},
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
{
|
||||
Name = "ThemisIRDay",
|
||||
FilePath = "mars/ThemisIRDay.wms",
|
||||
@@ -214,20 +214,20 @@ return {
|
||||
},
|
||||
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
},
|
||||
WaterMasks = {
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "MolaElevation",
|
||||
FilePath = "mars/MolaElevation.wms",
|
||||
Enabled = true,
|
||||
},
|
||||
},
|
||||
HeightMapOverlays = {
|
||||
HeightMapColorOverlays = {
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -260,7 +260,7 @@ return {
|
||||
HeightMapMinimumSize = 64,
|
||||
},
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "MessengerMdis",
|
||||
FilePath = "mercury/MessengerMdis.wms",
|
||||
@@ -271,18 +271,18 @@ return {
|
||||
FilePath = "mercury/MessengerMosaic.wms",
|
||||
}
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
},
|
||||
WaterMasks = {
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
},
|
||||
HeightMapOverlays = {
|
||||
HeightMapColorOverlays = {
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
@@ -34,8 +34,8 @@ return {
|
||||
CameraMinHeight = 1000,
|
||||
InteractionDepthBelowEllipsoid = 10000, -- Useful when having negative height map values
|
||||
SegmentsPerPatch = 64,
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Type = "SingleImage",
|
||||
Name = "Debug Tiles",
|
||||
@@ -54,10 +54,10 @@ return {
|
||||
},
|
||||
]]
|
||||
},
|
||||
GrayScaleTextures = {
|
||||
GrayScaleLayers = {
|
||||
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
--[[
|
||||
{
|
||||
Name = "CTX Mosaic",
|
||||
@@ -83,13 +83,13 @@ return {
|
||||
},
|
||||
]]
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
|
||||
},
|
||||
WaterMasks = {
|
||||
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
{
|
||||
Type = "TileIndex",
|
||||
Name = "Indices",
|
||||
@@ -101,7 +101,7 @@ return {
|
||||
BackgroundImagePath = "../debugglobe/textures/arrows.png",
|
||||
},
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
--[[
|
||||
{
|
||||
Name = "Mola Elevation",
|
||||
|
||||
@@ -37,8 +37,8 @@ return {
|
||||
CameraMinHeight = 300,
|
||||
InteractionDepthBelowEllipsoid = 0, -- Useful when having negative height map values
|
||||
SegmentsPerPatch = 64,
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
{
|
||||
Name = "On Mercury Color",
|
||||
FilePath = "map_service_configs/OnMercuryColor.xml",
|
||||
@@ -49,12 +49,12 @@ return {
|
||||
FilePath = "map_service_configs/OnMercuryImage.xml",
|
||||
},
|
||||
},
|
||||
GrayScaleTextures = { },
|
||||
GrayScaleOverlays = { },
|
||||
NightTextures = { },
|
||||
GrayScaleLayers = { },
|
||||
GrayScaleColorOverlays = { },
|
||||
NightLayers = { },
|
||||
WaterMasks = { },
|
||||
Overlays = { },
|
||||
HeightMaps = {
|
||||
ColorOverlays = { },
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "On Mercury Height",
|
||||
FilePath = "map_service_configs/OnMercuryElevationGaskell.xml",
|
||||
|
||||
@@ -22,30 +22,30 @@ return {
|
||||
CameraMinHeight = 300,
|
||||
InteractionDepthBelowEllipsoid = 5000, -- Useful when having negative height map values
|
||||
SegmentsPerPatch = 64,
|
||||
Textures = {
|
||||
ColorTextures = {
|
||||
Layers = {
|
||||
ColorLayers = {
|
||||
|
||||
},
|
||||
GrayScaleOverlays = {
|
||||
GrayScaleColorOverlays = {
|
||||
|
||||
},
|
||||
GrayScaleTextures = {
|
||||
GrayScaleLayers = {
|
||||
{
|
||||
Name = "OnMoonColorGrayscale",
|
||||
FilePath = "map_service_configs/OnMoonColor.xml",
|
||||
Enabled = true,
|
||||
},
|
||||
},
|
||||
NightTextures = {
|
||||
NightLayers = {
|
||||
|
||||
},
|
||||
WaterMasks = {
|
||||
|
||||
},
|
||||
Overlays = {
|
||||
ColorOverlays = {
|
||||
|
||||
},
|
||||
HeightMaps = {
|
||||
HeightLayers = {
|
||||
{
|
||||
Name = "OnMoonHeight",
|
||||
FilePath = "map_service_configs/OnMoonHeight.xml",
|
||||
|
||||
@@ -188,7 +188,7 @@ function postInitialization()
|
||||
|
||||
-- Activate night textures and water masks
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.WaterMasks", {0, 1});
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.NightTextures", {0, 1});
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.NightLayers", {0, 1});
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.Atmosphere", true);
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
|
||||
@@ -188,7 +188,7 @@ function postInitialization()
|
||||
|
||||
-- Activate night textures and water masks
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.WaterMasks", {0, 1});
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.NightTextures", {0, 1});
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.NightLayers", {0, 1});
|
||||
openspace.setPropertyValue("Earth.RenderableGlobe.Atmosphere", true);
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
|
||||
@@ -103,11 +103,11 @@ namespace globebrowsing {
|
||||
auto layerManager = owner().chunkedLodGlobe()->layerManager();
|
||||
|
||||
|
||||
auto heightMapProviders = layerManager->layerGroup(LayerManager::HeightMaps).activeLayers();
|
||||
auto heightMapProviders = layerManager->layerGroup(LayerManager::HeightLayers).activeLayers();
|
||||
|
||||
|
||||
size_t HEIGHT_CHANNEL = 0;
|
||||
const LayerGroup& heightmaps = layerManager->layerGroup(LayerManager::HeightMaps);
|
||||
const LayerGroup& heightmaps = layerManager->layerGroup(LayerManager::HeightLayers);
|
||||
std::vector<ChunkTile> tiles = TileSelector::getTilesSortedByHighestResolution(heightmaps, _tileIndex);
|
||||
bool lastHadMissingData = true;
|
||||
for (auto tile : tiles) {
|
||||
|
||||
@@ -162,7 +162,7 @@ namespace globebrowsing {
|
||||
|
||||
int EvaluateChunkLevelByAvailableTileData::getDesiredLevel(const Chunk& chunk, const RenderData& data) const {
|
||||
auto layerManager = chunk.owner().chunkedLodGlobe()->layerManager();
|
||||
auto heightLayers = layerManager->layerGroup(LayerManager::HeightMaps).activeLayers();
|
||||
auto heightLayers = layerManager->layerGroup(LayerManager::HeightLayers).activeLayers();
|
||||
int currLevel = chunk.tileIndex().level;
|
||||
|
||||
for (size_t i = 0; i < LayerManager::NUM_LAYER_GROUPS; i++) {
|
||||
|
||||
@@ -49,9 +49,7 @@ namespace {
|
||||
"InteractionDepthBelowEllipsoid";
|
||||
const std::string keyCameraMinHeight = "CameraMinHeight";
|
||||
const std::string keySegmentsPerPatch = "SegmentsPerPatch";
|
||||
const std::string keyTextures = "Textures";
|
||||
const std::string keyColorTextures = "ColorTextures";
|
||||
const std::string keyHeightMaps = "HeightMaps";
|
||||
const std::string keyLayers = "Layers";
|
||||
}
|
||||
|
||||
namespace openspace {
|
||||
@@ -108,11 +106,11 @@ namespace globebrowsing {
|
||||
_generalProperties.cameraMinHeight.set(cameraMinHeight);
|
||||
|
||||
// Init tile provider manager
|
||||
ghoul::Dictionary texturesDictionary;
|
||||
dictionary.getValue(keyTextures, texturesDictionary);
|
||||
ghoul::Dictionary layersDictionary;
|
||||
dictionary.getValue(keyLayers, layersDictionary);
|
||||
|
||||
|
||||
_layerManager = std::make_shared<LayerManager>(texturesDictionary);
|
||||
_layerManager = std::make_shared<LayerManager>(layersDictionary);
|
||||
|
||||
_chunkedLodGlobe = std::make_shared<ChunkedLodGlobe>(
|
||||
*this, patchSegments, _layerManager);
|
||||
@@ -234,7 +232,7 @@ namespace globebrowsing {
|
||||
geoDiffPoint.lon / geoDiffPatch.lon, geoDiffPoint.lat / geoDiffPatch.lat);
|
||||
|
||||
// Get the tile providers for the height maps
|
||||
const auto& heightMapLayers = _layerManager->layerGroup(LayerManager::HeightMaps).activeLayers();
|
||||
const auto& heightMapLayers = _layerManager->layerGroup(LayerManager::HeightLayers).activeLayers();
|
||||
|
||||
for (const auto& layer : heightMapLayers) {
|
||||
TileProvider* tileProvider = layer->tileProvider();
|
||||
|
||||
@@ -187,7 +187,7 @@ namespace globebrowsing {
|
||||
programObject->setUniform("lonLatScalingFactor", vec2(patchSize.toLonLatVec2()));
|
||||
programObject->setUniform("radiiSquared", vec3(ellipsoid.radiiSquared()));
|
||||
|
||||
if (_layerManager->layerGroup(LayerManager::NightTextures).activeLayers().size() > 0 ||
|
||||
if (_layerManager->layerGroup(LayerManager::NightLayers).activeLayers().size() > 0 ||
|
||||
_layerManager->layerGroup(LayerManager::WaterMasks).activeLayers().size() > 0 ||
|
||||
chunk.owner().generalProperties().atmosphereEnabled ||
|
||||
chunk.owner().generalProperties().performShading) {
|
||||
@@ -262,7 +262,7 @@ namespace globebrowsing {
|
||||
programObject->setUniform("patchNormalCameraSpace", patchNormalCameraSpace);
|
||||
programObject->setUniform("projectionTransform", data.camera.projectionMatrix());
|
||||
|
||||
if (_layerManager->layerGroup(LayerManager::NightTextures).activeLayers().size() > 0 ||
|
||||
if (_layerManager->layerGroup(LayerManager::NightLayers).activeLayers().size() > 0 ||
|
||||
_layerManager->layerGroup(LayerManager::WaterMasks).activeLayers().size() > 0 ||
|
||||
chunk.owner().generalProperties().atmosphereEnabled ||
|
||||
chunk.owner().generalProperties().performShading)
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace globebrowsing {
|
||||
int pileSize = layerGroup.pileSize();
|
||||
for (size_t i = 0; i < gpuActiveLayers.size(); ++i){
|
||||
// should maybe a proper GPULayer factory
|
||||
gpuActiveLayers[i] = category == LayerManager::HeightMaps ?
|
||||
gpuActiveLayers[i] = category == LayerManager::HeightLayers ?
|
||||
std::make_unique<GPUHeightLayer>() :
|
||||
std::make_unique<GPULayer>();
|
||||
std::string nameExtension = "[" + std::to_string(i) + "].";
|
||||
|
||||
@@ -145,13 +145,13 @@ namespace globebrowsing {
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const std::string LayerManager::LAYER_GROUP_NAMES[NUM_LAYER_GROUPS] = {
|
||||
"ColorTextures",
|
||||
"GrayScaleTextures",
|
||||
"GrayScaleOverlays",
|
||||
"NightTextures",
|
||||
"HeightLayers",
|
||||
"ColorLayers",
|
||||
"ColorOverlays",
|
||||
"GrayScaleLayers",
|
||||
"GrayScaleColorOverlays",
|
||||
"NightLayers",
|
||||
"WaterMasks",
|
||||
"Overlays",
|
||||
"HeightMaps",
|
||||
};
|
||||
|
||||
LayerManager::LayerManager(const ghoul::Dictionary& layerGroupsDict) {
|
||||
@@ -168,7 +168,7 @@ namespace globebrowsing {
|
||||
initData.threads = 1;
|
||||
initData.cacheSize = 5000;
|
||||
initData.framesUntilRequestQueueFlush = 60;
|
||||
initData.preprocessTiles = (i == LayerManager::HeightMaps); // Only preprocess height maps.
|
||||
initData.preprocessTiles = (i == LayerManager::HeightLayers); // Only preprocess height maps.
|
||||
|
||||
_layerGroups.push_back(std::make_shared<LayerGroup>(groupName, layerGroupDict));
|
||||
}
|
||||
|
||||
@@ -114,13 +114,13 @@ namespace globebrowsing {
|
||||
static const size_t NUM_LAYER_GROUPS = 7;
|
||||
static const std::string LAYER_GROUP_NAMES[NUM_LAYER_GROUPS];
|
||||
static enum LayerGroupId{
|
||||
ColorTextures,
|
||||
GrayScaleTextures,
|
||||
GrayScaleOverlays,
|
||||
NightTextures,
|
||||
HeightLayers,
|
||||
ColorLayers,
|
||||
ColorOverlays,
|
||||
GrayScaleLayers,
|
||||
GrayScaleColorOverlays,
|
||||
NightLayers,
|
||||
WaterMasks,
|
||||
Overlays,
|
||||
HeightMaps
|
||||
};
|
||||
|
||||
LayerManager(const ghoul::Dictionary& textureCategoriesDictionary);
|
||||
|
||||
@@ -29,18 +29,18 @@
|
||||
#include <${MODULE_GLOBEBROWSING}/shaders/blending.hglsl>
|
||||
|
||||
// First layer type from LayerShaderManager is height map
|
||||
#define NUMLAYERS_HEIGHTMAP #{lastLayerIndexHeightMaps} + 1
|
||||
#define USE_HEIGHTMAP #{useHeightMaps}
|
||||
#define HEIGHTMAP_BLENDING_ENABLED #{blendHeightMaps}
|
||||
#define NUMLAYERS_HEIGHTMAP #{lastLayerIndexHeightLayers} + 1
|
||||
#define USE_HEIGHTMAP #{useHeightLayers}
|
||||
#define HEIGHTMAP_BLENDING_ENABLED #{blendHeightLayers}
|
||||
|
||||
// Second layer type from LayerShaderManager is color texture
|
||||
#define NUMLAYERS_COLORTEXTURE #{lastLayerIndexColorTextures} + 1
|
||||
#define USE_COLORTEXTURE #{useColorTextures}
|
||||
#define COLORTEXTURE_BLENDING_ENABLED #{blendColorTextures}
|
||||
#define NUMLAYERS_COLORTEXTURE #{lastLayerIndexColorLayers} + 1
|
||||
#define USE_COLORTEXTURE #{useColorLayers}
|
||||
#define COLORTEXTURE_BLENDING_ENABLED #{blendColorLayers}
|
||||
|
||||
#define NUMLAYERS_GRAYSCALETEXTURE #{lastLayerIndexGrayScaleTextures} + 1
|
||||
#define USE_GRAYSCALETEXTURE #{useGrayScaleTextures}
|
||||
#define GRAYSCALETEXTURE_BLENDING_ENABLED #{blendGrayScaleTextures}
|
||||
#define NUMLAYERS_GRAYSCALETEXTURE #{lastLayerIndexGrayScaleLayers} + 1
|
||||
#define USE_GRAYSCALETEXTURE #{useGrayScaleLayers}
|
||||
#define GRAYSCALETEXTURE_BLENDING_ENABLED #{blendGrayScaleLayers}
|
||||
|
||||
// Third layer type from LayerShaderManager is water mask
|
||||
#define NUMLAYERS_WATERMASK #{lastLayerIndexWaterMasks} + 1
|
||||
@@ -48,19 +48,19 @@
|
||||
#define WATERMASK_BLENDING_ENABLED #{blendWaterMasks}
|
||||
|
||||
// Fourth layer type from LayerShaderManager is night texture
|
||||
#define NUMLAYERS_NIGHTTEXTURE #{lastLayerIndexNightTextures} + 1
|
||||
#define USE_NIGHTTEXTURE #{useNightTextures}
|
||||
#define NIGHTTEXTURE_BLENDING_ENABLED #{blendNightTextures}
|
||||
#define NUMLAYERS_NIGHTTEXTURE #{lastLayerIndexNightLayers} + 1
|
||||
#define USE_NIGHTTEXTURE #{useNightLayers}
|
||||
#define NIGHTTEXTURE_BLENDING_ENABLED #{blendNightLayers}
|
||||
|
||||
// Fifth layer type from LayerShaderManager is overlay
|
||||
#define NUMLAYERS_OVERLAY #{lastLayerIndexOverlays} + 1
|
||||
#define USE_OVERLAY #{useOverlays}
|
||||
#define OVERLAY_BLENDING_ENABLED #{blendOverlays}
|
||||
#define NUMLAYERS_OVERLAY #{lastLayerIndexColorOverlays} + 1
|
||||
#define USE_OVERLAY #{useColorOverlays}
|
||||
#define OVERLAY_BLENDING_ENABLED #{blendColorOverlays}
|
||||
|
||||
// Sixth layer type from LayerShaderManager is grayscale overlay
|
||||
#define NUMLAYERS_GRAYSCALE_OVERLAY #{lastLayerIndexGrayScaleOverlays} + 1
|
||||
#define USE_GRAYSCALE_OVERLAY #{useGrayScaleOverlays}
|
||||
#define GRAYSCALE_OVERLAY_BLENDING_ENABLED #{blendGrayScaleOverlays}
|
||||
#define NUMLAYERS_GRAYSCALE_OVERLAY #{lastLayerIndexGrayScaleColorOverlays} + 1
|
||||
#define USE_GRAYSCALE_OVERLAY #{useGrayScaleColorOverlays}
|
||||
#define GRAYSCALE_OVERLAY_BLENDING_ENABLED #{blendGrayScaleColorOverlays}
|
||||
|
||||
// Global constants
|
||||
#define CHUNK_DEFAULT_HEIGHT #{defaultHeight}
|
||||
@@ -107,7 +107,7 @@ float calculateUntransformedHeight(
|
||||
#endif // HEIGHTMAP_BLENDING_ENABLED
|
||||
|
||||
|
||||
#for i in 0..#{lastLayerIndexHeightMaps}
|
||||
#for i in 0..#{lastLayerIndexHeightLayers}
|
||||
{
|
||||
height = getTexVal(HeightTextures[#{i}].pile, levelWeights, uv).r;
|
||||
|
||||
@@ -131,7 +131,7 @@ float calculateHeight(
|
||||
#endif // HEIGHTMAP_BLENDING_ENABLED
|
||||
|
||||
|
||||
#for i in 0..#{lastLayerIndexHeightMaps}
|
||||
#for i in 0..#{lastLayerIndexHeightLayers}
|
||||
{
|
||||
float untransformedHeight = getTexVal(HeightTextures[#{i}].pile, levelWeights, uv).r;
|
||||
|
||||
@@ -148,7 +148,7 @@ float calculateHeight(
|
||||
vec4 calculateColor(
|
||||
const vec2 uv,
|
||||
LevelWeights levelWeights,
|
||||
const Layer ColorTextures[NUMLAYERS_COLORTEXTURE]) {
|
||||
const Layer ColorLayers[NUMLAYERS_COLORTEXTURE]) {
|
||||
|
||||
vec4 color = vec4(0);
|
||||
|
||||
@@ -158,11 +158,11 @@ vec4 calculateColor(
|
||||
levelWeights = getDefaultLevelWeights();
|
||||
#endif // COLORTEXTURE_BLENDING_ENABLED
|
||||
|
||||
#for i in 0..#{lastLayerIndexColorTextures}
|
||||
#for i in 0..#{lastLayerIndexColorLayers}
|
||||
{
|
||||
vec4 colorSample = getTexVal(ColorTextures[#{i}].pile, levelWeights, uv);
|
||||
vec4 colorSample = getTexVal(ColorLayers[#{i}].pile, levelWeights, uv);
|
||||
|
||||
colorSample = performLayerSettings(colorSample, ColorTextures[#{i}].settings);
|
||||
colorSample = performLayerSettings(colorSample, ColorLayers[#{i}].settings);
|
||||
|
||||
color = blendOver(color, colorSample);
|
||||
}
|
||||
@@ -175,7 +175,7 @@ vec4 calculateGrayScale(
|
||||
const vec4 currentColor,
|
||||
const vec2 uv,
|
||||
LevelWeights levelWeights,
|
||||
const Layer GrayScaleTextures[NUMLAYERS_GRAYSCALETEXTURE]) {
|
||||
const Layer GrayScaleLayers[NUMLAYERS_GRAYSCALETEXTURE]) {
|
||||
|
||||
vec4 colorGrayScale = currentColor;
|
||||
|
||||
@@ -185,12 +185,12 @@ vec4 calculateGrayScale(
|
||||
levelWeights = getDefaultLevelWeights();
|
||||
#endif // GRAYSCALE_OVERLAY_BLENDING_ENABLED
|
||||
|
||||
#for i in 0..#{lastLayerIndexGrayScaleTextures}
|
||||
#for i in 0..#{lastLayerIndexGrayScaleLayers}
|
||||
{
|
||||
vec4 colorSample = getTexVal(GrayScaleTextures[#{i}].pile, levelWeights, uv);
|
||||
vec4 colorSample = getTexVal(GrayScaleLayers[#{i}].pile, levelWeights, uv);
|
||||
|
||||
colorSample = vec4(colorSample.r, colorSample.r, colorSample.r, 1);
|
||||
colorSample = performLayerSettings(colorSample, GrayScaleTextures[#{i}].settings);
|
||||
colorSample = performLayerSettings(colorSample, GrayScaleLayers[#{i}].settings);
|
||||
|
||||
colorGrayScale = blendOver(colorGrayScale, colorSample);
|
||||
}
|
||||
@@ -226,7 +226,7 @@ vec4 calculateNight(
|
||||
const vec4 currentColor,
|
||||
const vec2 uv,
|
||||
LevelWeights levelWeights,
|
||||
const Layer NightTextures[NUMLAYERS_NIGHTTEXTURE],
|
||||
const Layer NightLayers[NUMLAYERS_NIGHTTEXTURE],
|
||||
const vec3 ellipsoidNormalCameraSpace,
|
||||
const vec3 lightDirectionCameraSpace) {
|
||||
|
||||
@@ -238,10 +238,10 @@ vec4 calculateNight(
|
||||
levelWeights = getDefaultLevelWeights();
|
||||
#endif // NIGHTTEXTURE_BLENDING_ENABLED
|
||||
|
||||
#for i in 0..#{lastLayerIndexNightTextures}
|
||||
#for i in 0..#{lastLayerIndexNightLayers}
|
||||
{
|
||||
vec4 colorSample = getTexVal(NightTextures[#{i}].pile, levelWeights, uv);
|
||||
colorSample = performLayerSettings(colorSample, NightTextures[#{i}].settings);
|
||||
vec4 colorSample = getTexVal(NightLayers[#{i}].pile, levelWeights, uv);
|
||||
colorSample = performLayerSettings(colorSample, NightLayers[#{i}].settings);
|
||||
|
||||
nightColor = blendOver(nightColor, colorSample);
|
||||
}
|
||||
@@ -280,7 +280,7 @@ vec4 calculateOverlay(
|
||||
const vec4 currentColor,
|
||||
const vec2 uv,
|
||||
LevelWeights levelWeights,
|
||||
const Layer Overlays[NUMLAYERS_OVERLAY]) {
|
||||
const Layer ColorOverlays[NUMLAYERS_OVERLAY]) {
|
||||
|
||||
vec4 color = currentColor;
|
||||
|
||||
@@ -290,10 +290,10 @@ vec4 calculateOverlay(
|
||||
levelWeights = getDefaultLevelWeights();
|
||||
#endif // OVERLAY_BLENDING_ENABLED
|
||||
|
||||
#for i in 0..#{lastLayerIndexOverlays}
|
||||
#for i in 0..#{lastLayerIndexColorOverlays}
|
||||
{
|
||||
vec4 colorSample = getTexVal(Overlays[#{i}].pile, levelWeights, uv);
|
||||
colorSample = performLayerSettings(colorSample, Overlays[#{i}].settings);
|
||||
vec4 colorSample = getTexVal(ColorOverlays[#{i}].pile, levelWeights, uv);
|
||||
colorSample = performLayerSettings(colorSample, ColorOverlays[#{i}].settings);
|
||||
|
||||
color = blendOver(color, colorSample);
|
||||
}
|
||||
@@ -306,7 +306,7 @@ vec4 calculateGrayScaleOverlay(
|
||||
const vec4 currentColor,
|
||||
const vec2 uv,
|
||||
LevelWeights levelWeights,
|
||||
const Layer GrayScaleOverlays[NUMLAYERS_GRAYSCALE_OVERLAY]) {
|
||||
const Layer GrayScaleColorOverlays[NUMLAYERS_GRAYSCALE_OVERLAY]) {
|
||||
|
||||
vec4 colorGrayScale = currentColor;
|
||||
|
||||
@@ -316,12 +316,12 @@ vec4 calculateGrayScaleOverlay(
|
||||
levelWeights = getDefaultLevelWeights();
|
||||
#endif // GRAYSCALE_OVERLAY_BLENDING_ENABLED
|
||||
|
||||
#for i in 0..#{lastLayerIndexGrayScaleOverlays}
|
||||
#for i in 0..#{lastLayerIndexGrayScaleColorOverlays}
|
||||
{
|
||||
vec4 colorSample = getTexVal(GrayScaleOverlays[#{i}].pile, levelWeights, uv);
|
||||
vec4 colorSample = getTexVal(GrayScaleColorOverlays[#{i}].pile, levelWeights, uv);
|
||||
|
||||
colorSample = vec4(colorSample.r, colorSample.r, colorSample.r, colorSample.g);
|
||||
colorSample = performLayerSettings(colorSample, GrayScaleOverlays[#{i}].settings);
|
||||
colorSample = performLayerSettings(colorSample, GrayScaleColorOverlays[#{i}].settings);
|
||||
|
||||
colorGrayScale = blendOver(colorGrayScale, colorSample);
|
||||
}
|
||||
|
||||
@@ -34,23 +34,23 @@
|
||||
// the actual fragment color
|
||||
|
||||
#if USE_COLORTEXTURE
|
||||
uniform Layer ColorTextures[NUMLAYERS_COLORTEXTURE];
|
||||
uniform Layer ColorLayers[NUMLAYERS_COLORTEXTURE];
|
||||
#endif // USE_COLORTEXTURE
|
||||
|
||||
#if USE_GRAYSCALETEXTURE
|
||||
uniform Layer GrayScaleTextures[NUMLAYERS_GRAYSCALETEXTURE];
|
||||
uniform Layer GrayScaleLayers[NUMLAYERS_GRAYSCALETEXTURE];
|
||||
#endif // USE_GRAYSCALETEXTURE
|
||||
|
||||
#if USE_NIGHTTEXTURE
|
||||
uniform Layer NightTextures[NUMLAYERS_NIGHTTEXTURE];
|
||||
uniform Layer NightLayers[NUMLAYERS_NIGHTTEXTURE];
|
||||
#endif // USE_NIGHTTEXTURE
|
||||
|
||||
#if USE_OVERLAY
|
||||
uniform Layer Overlays[NUMLAYERS_OVERLAY];
|
||||
uniform Layer ColorOverlays[NUMLAYERS_OVERLAY];
|
||||
#endif // USE_OVERLAY
|
||||
|
||||
#if USE_GRAYSCALE_OVERLAY
|
||||
uniform Layer GrayScaleOverlays[NUMLAYERS_GRAYSCALE_OVERLAY];
|
||||
uniform Layer GrayScaleColorOverlays[NUMLAYERS_GRAYSCALE_OVERLAY];
|
||||
#endif // USE_GRAYSCALE_OVERLAY
|
||||
|
||||
#if USE_WATERMASK
|
||||
@@ -86,7 +86,7 @@ in LevelWeights levelWeights;
|
||||
// the alignment and resolution of the heightmaps
|
||||
|
||||
#if USE_HEIGHTMAP
|
||||
uniform Layer HeightMaps[NUMLAYERS_HEIGHTMAP];
|
||||
uniform Layer HeightLayers[NUMLAYERS_HEIGHTMAP];
|
||||
#endif // USE_HEIGHTMAP
|
||||
|
||||
float getUntransformedTileVertexHeight(vec2 uv, LevelWeights levelWeights){
|
||||
@@ -98,7 +98,7 @@ float getUntransformedTileVertexHeight(vec2 uv, LevelWeights levelWeights){
|
||||
height = calculateUntransformedHeight(
|
||||
uv,
|
||||
levelWeights, // Variable to determine which texture to sample from
|
||||
HeightMaps); // Three textures to sample from
|
||||
HeightLayers); // Three textures to sample from
|
||||
|
||||
#endif // USE_HEIGHTMAP
|
||||
|
||||
@@ -124,7 +124,7 @@ vec4 getTileFragColor(){
|
||||
color = calculateColor(
|
||||
fs_uv,
|
||||
levelWeights,
|
||||
ColorTextures);
|
||||
ColorLayers);
|
||||
#endif // USE_COLORTEXTURE
|
||||
|
||||
#if USE_GRAYSCALETEXTURE
|
||||
@@ -132,7 +132,7 @@ vec4 getTileFragColor(){
|
||||
color,
|
||||
fs_uv,
|
||||
levelWeights,
|
||||
GrayScaleTextures);
|
||||
GrayScaleLayers);
|
||||
#endif // USE_GRAYSCALETEXTURE
|
||||
|
||||
#if USE_GRAYSCALE_OVERLAY
|
||||
@@ -141,7 +141,7 @@ vec4 getTileFragColor(){
|
||||
color,
|
||||
fs_uv,
|
||||
levelWeights,
|
||||
GrayScaleOverlays);
|
||||
GrayScaleColorOverlays);
|
||||
|
||||
#endif // USE_COLORTEXTURE
|
||||
|
||||
@@ -162,7 +162,7 @@ vec4 getTileFragColor(){
|
||||
color,
|
||||
fs_uv,
|
||||
levelWeights,
|
||||
NightTextures,
|
||||
NightLayers,
|
||||
normalize(ellipsoidNormalCameraSpace),
|
||||
lightDirectionCameraSpace); // Should already be normalized
|
||||
|
||||
@@ -202,7 +202,7 @@ vec4 getTileFragColor(){
|
||||
color,
|
||||
fs_uv,
|
||||
levelWeights,
|
||||
Overlays);
|
||||
ColorOverlays);
|
||||
#endif // USE_OVERLAY
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ vec4 getTileFragColor(){
|
||||
color += 0.0001*calculateDebugColor(fs_uv, fs_position, vertexResolution);
|
||||
#if USE_HEIGHTMAP
|
||||
color.r = min(color.r, 0.8);
|
||||
color.r += tileResolution(fs_uv, HeightMaps[0].pile.chunkTile0) > 0.9 ? 1 : 0;
|
||||
color.r += tileResolution(fs_uv, HeightLayers[0].pile.chunkTile0) > 0.9 ? 1 : 0;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
|
||||
#if USE_HEIGHTMAP
|
||||
uniform Layer HeightMaps[NUMLAYERS_HEIGHTMAP];
|
||||
uniform Layer HeightLayers[NUMLAYERS_HEIGHTMAP];
|
||||
#endif // USE_HEIGHTMAP
|
||||
|
||||
uniform int xSegments;
|
||||
@@ -50,7 +50,7 @@ float getUntransformedTileVertexHeight(vec2 uv, LevelWeights levelWeights){
|
||||
height = calculateUntransformedHeight(
|
||||
uv,
|
||||
levelWeights, // Variable to determine which texture to sample from
|
||||
HeightMaps); // Three textures to sample from
|
||||
HeightLayers); // Three textures to sample from
|
||||
|
||||
#endif // USE_HEIGHTMAP
|
||||
|
||||
@@ -67,7 +67,7 @@ float getTileVertexHeight(vec2 uv, LevelWeights levelWeights){
|
||||
height = calculateHeight(
|
||||
uv,
|
||||
levelWeights, // Variable to determine which texture to sample from
|
||||
HeightMaps); // Three textures to sample from
|
||||
HeightLayers); // Three textures to sample from
|
||||
|
||||
#endif // USE_HEIGHTMAP
|
||||
|
||||
@@ -87,15 +87,15 @@ vec3 getTileVertexNormal(
|
||||
float heightCenter = calculateHeight(
|
||||
uv,
|
||||
levelWeights,
|
||||
HeightMaps);
|
||||
HeightLayers);
|
||||
float heightOffsetX = calculateHeight(
|
||||
uv + vec2(sampleDelta, 0.0),
|
||||
levelWeights,
|
||||
HeightMaps);
|
||||
HeightLayers);
|
||||
float heightOffsetY = calculateHeight(
|
||||
uv + vec2(0.0, sampleDelta),
|
||||
levelWeights,
|
||||
HeightMaps);
|
||||
HeightLayers);
|
||||
|
||||
vec3 e0 = normalize(cross(vec3(0,0,1), ellipsoidNormal));
|
||||
vec3 e1 = cross(ellipsoidNormal, e0);
|
||||
|
||||
Reference in New Issue
Block a user