#include "procgen/heightmap/TerrainGenerationSession.h"#include <bit>#include <limits>#include <optional>#include <string_view>#include <type_traits>#include <variant>#include "common/Value.h"#include "procgen/heightmap/TerrainEffect.h"#include "procgen/heightmap/TerrainErosion.h"#include "procgen/heightmap/TerrainRasterInternal.h"#include "procgen/heightmap/TerrainStamp.h"#include "procgen/heightmap/TerrainWaterField.h"类 | |
| struct | eve::procgen::TerrainGenerationSession::Command |
| struct | eve::procgen::TerrainGenerationSession::Impl |
命名空间 | |
| namespace | eve |
| Build metadata (engine git commit, build time, third-party version). | |
| namespace | eve::procgen |
宏定义 | |
| #define | SESSION_STAMP_FIELDS(X) X(originX) X(originZ) X(spacingX) X(spacingZ) X(centerX) X(centerZ) X(width) X(depth) X(rotation) X(amplitude) X(baseHeight) X(blendStrength) X(operation) |
| #define | SESSION_SMOOTH_FIELDS(X) X(radius) X(verticality) X(strength) |
| #define | SESSION_RIDGE_FIELDS(X) X(mixStrength) X(exponent) X(strength) X(minimum) X(maximum) X(passes) |
| #define | SESSION_TERRACE_FIELDS(X) X(count) X(bevel) X(strength) |
| #define | SESSION_MIX_FIELDS(X) X(minimum) X(maximum) X(midpoint) X(strength) X(clipMinimum) X(clipMaximum) |
| #define | SESSION_WATER_FIELDS(X) X(spacingX) X(spacingZ) X(heightScale) X(waterScale) X(dt) X(precipitation) X(evaporation) X(flowAcceleration) |
| #define | SESSION_SEDIMENT_FIELDS(X) X(effect) X(depositRate) X(bankDeposit) X(bedDeposit) |
| #define | SESSION_THERMAL_FIELDS(X) X(spacingX) X(spacingZ) X(heightScale) X(reposeSlope) X(dt) X(iterations) |
| #define | SESSION_WRITE_FIELD(name) writer.scalar(value.name); |
| #define | SESSION_READ_FIELD(name) if (!reader.scalar(value.name)) return false; |
宏定义说明
◆ SESSION_MIX_FIELDS
| #define SESSION_MIX_FIELDS | ( | X | ) | X(minimum) X(maximum) X(midpoint) X(strength) X(clipMinimum) X(clipMaximum) |
在文件 TerrainGenerationSession.cpp 第 179 行定义.
◆ SESSION_READ_FIELD
| #define SESSION_READ_FIELD | ( | name | ) | if (!reader.scalar(value.name)) return false; |
在文件 TerrainGenerationSession.cpp 第 184 行定义.
◆ SESSION_RIDGE_FIELDS
| #define SESSION_RIDGE_FIELDS | ( | X | ) | X(mixStrength) X(exponent) X(strength) X(minimum) X(maximum) X(passes) |
在文件 TerrainGenerationSession.cpp 第 177 行定义.
◆ SESSION_SEDIMENT_FIELDS
| #define SESSION_SEDIMENT_FIELDS | ( | X | ) | X(effect) X(depositRate) X(bankDeposit) X(bedDeposit) |
在文件 TerrainGenerationSession.cpp 第 181 行定义.
◆ SESSION_SMOOTH_FIELDS
在文件 TerrainGenerationSession.cpp 第 176 行定义.
◆ SESSION_STAMP_FIELDS
| #define SESSION_STAMP_FIELDS | ( | X | ) | X(originX) X(originZ) X(spacingX) X(spacingZ) X(centerX) X(centerZ) X(width) X(depth) X(rotation) X(amplitude) X(baseHeight) X(blendStrength) X(operation) |
在文件 TerrainGenerationSession.cpp 第 175 行定义.
◆ SESSION_TERRACE_FIELDS
在文件 TerrainGenerationSession.cpp 第 178 行定义.
◆ SESSION_THERMAL_FIELDS
| #define SESSION_THERMAL_FIELDS | ( | X | ) | X(spacingX) X(spacingZ) X(heightScale) X(reposeSlope) X(dt) X(iterations) |
在文件 TerrainGenerationSession.cpp 第 182 行定义.
◆ SESSION_WATER_FIELDS
| #define SESSION_WATER_FIELDS | ( | X | ) | X(spacingX) X(spacingZ) X(heightScale) X(waterScale) X(dt) X(precipitation) X(evaporation) X(flowAcceleration) |
在文件 TerrainGenerationSession.cpp 第 180 行定义.
◆ SESSION_WRITE_FIELD
| #define SESSION_WRITE_FIELD | ( | name | ) | writer.scalar(value.name); |
在文件 TerrainGenerationSession.cpp 第 183 行定义.
变量说明
◆ bytes
| std::string_view bytes |
在文件 TerrainGenerationSession.cpp 第 21 行定义.
◆ curve
| Heightmap curve |
在文件 TerrainGenerationSession.cpp 第 140 行定义.
被这些函数引用 eve::action::actionBlendCurveName(), eve::graphics::hair::StrandsDatas::addCurve(), eve::procgen::TerrainCollisionMaskStack::apply(), eve::procgen::applyTerrainGlobalSpawnerMask(), eve::procgen::applyTerrainHeightCurve(), eve::procgen::applyTerrainStrength(), eve::procgen::bakeTerrainCurveTexture(), eve::procgen::TerrainRiverMeshBuilder::build(), eve::editor::EditorCurveDocument::commitDomainState(), eve::procgen::raster_detail::curveSample(), eve::graphics::hair::GroomBinding::deform(), eve::editor::exposeActionTimelineScriptBindings(), eve::procgen::exposeTerrainCurveTexture(), eve::graphics::exposeWaterUnderwaterEffectsBindings(), eve::graphics::hair::extractGuides(), eve::graphics::hair::filterStrandsByCurves(), eve::graphics::hair::generateOnMesh(), eve::procgen::generateTerrainConcavityMask(), eve::procgen::generateTerrainCurvatureMask(), eve::procgen::generateTerrainErosionMask(), eve::procgen::generateTerrainImageMask(), eve::procgen::generateTerrainImageMaskFromImage(), eve::procgen::generateTerrainNoiseMask(), eve::buildingfx::BuildingFx::getCurveVisualFallbackReason(), eve::procgen::growShrinkTerrainMask(), eve::procgen::TerrainGenerationSession::heightCurve(), eve::graphics::hair::interpolateStrands(), eve::graphics::SkyWispsAsset::load(), eve::animation::AnimCurveLibrary::sample(), eve::animation::AnimPlayer::setBlendCurve(), eve::graphics::hair::GuideSimulator::snapshot(), eve::stylize::MeshVfxAsset::toJson(), eve::procgen::transformTerrainMask(), eve::stylize::MeshVfxAssetInstance::update(), eve::stylize::MeshVfxAsset::validate() , 以及 eve::action::ActionNotifyRegistry::validate().
◆ depth
| float depth |
在文件 TerrainGenerationSession.cpp 第 92 行定义.
◆ featureSize
| float featureSize |
◆ global
| Heightmap global |
在文件 TerrainGenerationSession.cpp 第 116 行定义.
被这些函数引用 eve::procgen::applyTerrainHeightMix(), eve::dialogue::Dialogue::captureState(), eve::procgen::TerrainGenerationSession::heightMix(), eve::graphics::restoreVegetationDetails(), eve::procgen::TerrainGenerationSession::stamp() , 以及 eve::procgen::TerrainWorldWorkspace::stamp().
◆ iterations
| int iterations |
在文件 TerrainGenerationSession.cpp 第 101 行定义.
◆ local
| Heightmap local |
在文件 TerrainGenerationSession.cpp 第 116 行定义.
◆ mask
| Heightmap mask |
在文件 TerrainGenerationSession.cpp 第 120 行定义.
◆ maximum
| float maximum |
在文件 TerrainGenerationSession.cpp 第 141 行定义.
◆ minimum
| float minimum |
在文件 TerrainGenerationSession.cpp 第 141 行定义.
◆ offset
| std::size_t offset = 0 |
在文件 TerrainGenerationSession.cpp 第 36 行定义.
◆ power
| float power |
在文件 TerrainGenerationSession.cpp 第 137 行定义.
◆ sediment
| TerrainSedimentSettings sediment |
在文件 TerrainGenerationSession.cpp 第 88 行定义.
被这些函数引用 eve::procgen::addCaveSediment(), eve::procgen::TerrainWaterField::advanceHydraulic(), eve::procgen::applyTerrainLegacyHydraulic(), eve::procgen::applyTerrainSediment(), eve::procgen::applyTerrainThermal(), eve::procgen::carveCaveParagenesis(), eve::procgen::TerrainPipeline::erodeHydraulic(), eve::procgen::TerrainGenerationSession::hydraulic() , 以及 eve::procgen::isCaveSedimentSurface().
◆ settings
| TerrainHeightMixSettings settings |
在文件 TerrainGenerationSession.cpp 第 95 行定义.
被这些函数引用 eve::procgen::TerrainSpawnPlan::addDetail(), eve::procgen::GtsPackedLayerSet::addLayer(), eve::procgen::TerrainSpawnPlan::addObjects(), eve::procgen::TerrainSpawnPlan::addProbes(), eve::procgen::TerrainSpawnPlan::addTrees(), eve::graphics::advanceWaterSystem(), eve::graphics::advanceWaterUnderwaterEffects(), eve::fluids_editing::FluidSimulationRuntimeApplier::apply(), eve::procgen::TerrainDetailLayer::apply(), eve::procgen::TerrainWorldWorkspace::applyDetail(), eve::procgen::TerrainWorldWorkspace::applyObjects(), eve::procgen::TerrainWorldWorkspace::applyProbes(), eve::procgen::applyTerrainDetailMultiTile(), eve::graphics::grass::applyTerrainDetailOverwrite(), eve::procgen::applyTerrainGlobalSpawnerMask(), eve::procgen::applyTerrainHeightMix(), eve::procgen::applyTerrainLegacyDistributedErosion(), eve::procgen::applyTerrainLegacyHydraulic(), eve::procgen::applyTerrainLegacySteepestErosion(), eve::procgen::applyTerrainRidges(), eve::procgen::applyTerrainSmooth(), eve::procgen::applyTerrainStampMultiTile(), eve::procgen::applyTerrainTerrace(), eve::procgen::applyTerrainThermal(), eve::procgen::TerrainWorldWorkspace::applyTrees(), eve::graphics::GrassField::bakeFoliagePoints(), eve::procgen::bakeGtsColorMapAlbedo(), eve::procgen::bakeGtsDetailSurface(), eve::procgen::bakeGtsGeologicalSurface(), eve::procgen::bakeGtsMacroVariationAlbedo(), eve::procgen::bakeTerrainGrassFoliage(), eve::animation_editing::AnimationClipRuntimeBuilder::build(), eve::procgen::buildGtsTerrainExportLodsFromHeightmapInto(), eve::procgen::buildGtsTerrainLodsFromHeightmapInto(), eve::procgen::Procgen::buildTerrainChunk(), eve::graphics::buildWaterPlanarReflectionPlan(), eve::graphics::calculateWaterMeshTriangles(), eve::procgen::TerrainWorldWorkspace::clearSpawns(), eve::crowd::Crowd::configureAvoidance(), eve::graphics::Bloom::configureFilter(), eve::fluids::FluidSurfaceRenderer::configureRendererSettings(), eve::graphics::Water::createProceduralMesh(), eve::climbing::decodeClimbingAnchorBakeRequest(), eve::fluids::decodeVolumeFluid(), eve::fluids::encodeFluidRendererSettings(), eve::graphics::WaterReflectionMasker::evaluate(), eve::graphics::evaluateDepthOfFieldFocus(), eve::scene::evaluateFollowPlayer(), eve::ui::evaluateParentScaler(), eve::procgen::PcgRuntimeStamper::execute(), eve::editor::exposeActionTimelineScriptBindings(), eve::graphics::exposeDepthOfFieldFocusBindings(), eve::scene::exposeFollowPlayerBindings(), eve::ui::exposeParentScalerBindings(), eve::graphics::detail::exposeShaderResourceBindings(), eve::procgen::exposeTerrainGrassAdapter(), eve::graphics::exposeWaterPlanarReflectionBindings(), eve::graphics::exposeWaterReflectionMaskerBindings(), eve::graphics::exposeWaterSystemBindings(), eve::graphics::exposeWaterUnderwaterEffectsBindings(), eve::procgen::gridgraph::generate(), eve::hexmap::generateHexMap(), eve::hexmap::generateSphereMap(), eve::procgen::generateTerrainImageMaskFromImage(), eve::procgen::Procgen::generateTerrainLakeMesh(), eve::procgen::Procgen::generateTerrainRiverMeshAdvanced(), eve::procgen::generateTerrainWaterFlowMap(), eve::procgen::TerrainGenerationSession::heightMix(), eve::editor::importerSettingsSchema(), eve::graphics::initializeWaterSystem(), eve::animation_editing::AnimationClipDocumentTarget::loadSnapshot(), eve::procgen::mapTerrainOperationMultiTile(), eve::daynight::SkyRuntime::prepare(), eve::animation_editing::registerEditingCommands(), eve::editor::MaterialPreviewService::render(), eve::fluids::FluidSurfaceRenderer::rendererSettings(), eve::procgen::GtsTerrainLodSet::restoreJson(), eve::procgen::TerrainGenerationSession::ridges(), eve::graphics::scoreSpotShadowCandidate(), eve::graphics::selectShadowCasters(), eve::procgen::Procgen::selectTerrainLod(), eve::editor::ActionTimelineEditor::setMontageSettings(), eve::editor::MaterialStudioController::setPreviewSettings(), eve::animation::MontagePlayer::setSettings(), eve::graphics::GrassField::setTerrainDetailOverwrite(), eve::procgen::TerrainGenerationSession::smooth(), eve::procgen::smoothTerrainMask(), eve::procgen::GtsTerrainLodSet::snapshotJson(), eve::graphics::snapshotVegetationDetails(), eve::procgen::TerrainGenerationSession::stamp(), eve::procgen::TerrainWorldWorkspace::stamp(), eve::fluids::FluidSimulator::step(), eve::physics::Cloth::step(), eve::physics::Cloth3D::step(), eve::physics::ClothGPU::step(), eve::physics::Rope3D::step(), eve::physics::SoftBody3D::step(), eve::physics::World::step(), eve::physics::World3D::step(), eve::rts::CrowdMotionSystem::step(), eve::scene_editor::ScenePhysicsPlacementBackend::step(), eve::procgen::TerrainMultiTileWorkspace::stitch(), eve::procgen::stitchTerrainHeightmaps(), eve::procgen::TerrainGenerationSession::terrace(), eve::procgen::TerrainGenerationSession::thermal(), eve::gpuagents_editing::toEffectProfile() , 以及 eve::weather::triggerThunderStrike().
◆ stamp
| Heightmap stamp |
在文件 TerrainGenerationSession.cpp 第 116 行定义.
被这些函数引用 eve::procgen::TerrainSpawnPlan::addModifierStamp(), eve::procgen::applyTerrainStamp(), eve::procgen::applyTerrainStampMultiTile(), eve::pixelworld::decodePixelWorldGenerationRequestJson(), eve::pixelworld::encodePixelWorldGenerationRequestJson(), eve::pixelworld::generatePixelWorld(), eve::procgen::PcgRuntimeStamper::loadStamp(), eve::editor::FieldBrushTool::pointerEvent(), eve::editor::VolumeBrushTool::pointerEvent() , 以及 eve::procgen::TerrainGenerationSession::stamp().
◆ strength
| float strength |
在文件 TerrainGenerationSession.cpp 第 121 行定义.
被这些函数引用 eve::particles::ParticleEmitter::addForceField(), eve::procgen::TerrainPolygonMask::addNode(), eve::graphics::advanceVegetationWind(), eve::heightmap_target::HeightmapTargetModule::applyBrush(), eve::procgen::MeshDeformationSession::applyBrushGpuResult(), eve::procgen::MeshDeformationSession::applyBrushResult(), eve::particles::applyConfigDocument(), eve::procgen_editing::applyHeightmapBrush(), eve::procgen::applyTerrainContrast(), eve::procgen::applyTerrainObjectsMultiTile(), eve::procgen::applyTerrainProbesMultiTile(), eve::procgen::applyTerrainStrength(), eve::procgen::applyTerrainTreesMultiTile(), eve::procgen::bakeGtsDetailSurface(), eve::procgen::bakeGtsGeologicalSurface(), eve::procgen::bakeGtsWeatherPbr(), eve::decal::bakeProceduralDecal(), eve::procgen::blendTerrainMask(), eve::graphics::buildDirectionalCSM(), eve::procgen::closeCaveDensityBoundary(), eve::graphics::Graphics::configureFoliageWind(), eve::procgen::TerrainGenerationSession::contrast(), eve::procgen::createCaveBreakdown(), eve::procgen::createCaveSediment(), eve::editor::PaintIntFieldOperation::createCommand(), eve::editor::AddScalarFieldOperation::createCommand(), eve::graphics::decodeVegetationNormal(), eve::procgen::detachUnsupportedCaveFragments(), eve::effects::EffectContainer::dispel(), eve::graphics::Water::drawWithPlanarReflection(), eve::procgen::erodeCaveByCondensation(), eve::procgen::Procgen::erodeTerrainThermal(), eve::procgen::evolveCaveSurfaceByCorrelatedReactivity(), eve::procgen::evolveCaveSurfaceByCurvature(), eve::procgen::evolveCaveSurfaceByCurvature(), eve::procgen::evolveCaveSurfaceByReactivity(), eve::procgen::evolveSurface(), eve::pixelworld::PixelWorld::explode(), eve::procgen::exportTerrainObjectPoints(), eve::procgen::exportTerrainProbePoints(), eve::procgen::exportTerrainTreePoints(), eve::graphics::exposeGrassWindBindings(), eve::animation::exposeMotionScriptBindings(), eve::procgen::Procgen::generateNormalImageHandle(), eve::procgen::generateTerrainErosionMask(), eve::procgen::heightToNormalImage(), eve::graphics::initializeVegetationWind(), eve::physics::Cloth::interactAt(), eve::physics::ClothGPU::interactAt(), eve::physics::Fluid2D::interactAt(), eve::physics::Cloth3D::interactAt(), eve::physics::SoftBody3D::interactAt(), eve::asset_procgen::EvpackInstanceSetLoader::load(), eve::asset_import::prepareUnityVegetationMaterial(), eve::animation::Animation::punch(), eve::animation::Animation::punchVec2(), eve::animation::Animation::punchVec3(), eve::procgen::removeTerrainTerraces(), eve::procgen::sampleCaveBiogenicCorrosion(), eve::procgen::sampleCaveCondensationFacets(), eve::procgen::sampleCaveDifferentialVeinErosion(), eve::graphics::vulkan::Graphics::setCloudShadows(), eve::graphics::webgpu::Graphics::setCloudShadows(), eve::graphics::Material::setFoliageTranslucency(), eve::graphics::Material::setFoliageWind(), eve::graphics::vulkan::Graphics::setMesh3DTexCellBomb(), eve::graphics::webgpu::Graphics::setMesh3DTexCellBomb(), eve::particles::ParticleEmitter::setNoise(), eve::graphics::Water::setScreenSpaceReflection(), eve::graphics::MapFog::setSelectStrength(), eve::graphics::hair::GroomInstance::setSelfShadow(), eve::graphics::MapFog::setShadow(), eve::graphics::Light3D::setShadowStrength(), eve::editor::FieldBrushTool::setStrength(), eve::graphics::Material::setTexCellBomb(), eve::graphics::Renderable3D::setTexCellBomb(), eve::joystick::sdl::Pad::setVibration(), eve::animation::Animation::shake(), eve::animation::Animation::shakeVec2(), eve::animation::Animation::shakeVec3(), eve::graphics::silPomHorizonTrim() , 以及 eve::rts::CaptureSystem::step().
◆ terrain
| Heightmap terrain |
在文件 TerrainGenerationSession.cpp 第 88 行定义.
◆ thermal
| TerrainThermalSettings thermal |
◆ water
| TerrainWaterSettings water |
在文件 TerrainGenerationSession.cpp 第 89 行定义.
被这些函数引用 eve::procgen::TerrainWaterField::advanceHydraulic(), eve::procgen::applyTerrainLegacyHydraulic(), eve::procgen::applyTerrainSediment(), eve::procgen::TerrainPipeline::erodeHydraulic(), eve::procgen::generateTerrainVelocityFlowMap(), eve::procgen::TerrainGenerationSession::hydraulic() , 以及 eve::hexmap::HexMapModule::rebuildSphere().