|
Nebula
|
The occupancy quad tree implements a tree which allows for a quick search.
The texture tile cache keeps track of which texture tiles should be used based on a last recently used heuristic.
Terrain rendering subsystem.
Classes | |
| struct | BiomeMaterial |
| struct | BiomeMaterialBuilder |
| struct | BiomeParameters |
| struct | BiomeSettings |
| struct | BiomeSettingsBuilder |
| struct | IndirectionEntry |
| class | OccupancyQuadTree |
| struct | PhysicalTileUpdate |
| struct | SubTexture |
| struct | SubTextureCompressed |
| struct | SubTextureUpdateJobOutput |
| struct | SubTextureUpdateJobUniforms |
| struct | TerrainBiomeId |
| class | TerrainContext |
| struct | TerrainCreateInfo |
| struct | TerrainQuad |
| struct | TerrainSetupSettings |
| struct | TerrainTri |
| struct | TerrainVert |
| class | TextureTileCache |
| struct | TileCacheEntry |
Enumerations | |
| enum | BiomeLoadBits { AlbedoLoaded = 0x1 , NormalLoaded = 0x2 , MaterialLoaded = 0x4 , MaskLoaded = 0x8 , WeightsLoaded = 0x10 } |
| enum class | SubTextureUpdateState : uint8_t { NoChange , Deleted , Created , Grew , Shrank } |
Functions | |
| __ImplementContext (TerrainContext, TerrainContext::terrainAllocator) | |
| void | PackSubTexture (const SubTexture &subTex, TerrainSubTexture &compressed) |
| void | UnpackPageDataEntry (uint *packed, uint &status, uint &subTextureIndex, uint &mip, uint &maxMip, uint &subTextureTileX, uint &subTextureTileY) |
| Unpack from packed ushort vectors to full size. | |
| template<typename T> | |
| uint | Upload (TerrainContext::TerrainInstanceInfo &instance, T *data, uint size, uint alignment) |
| void | IndirectionUpdate (TerrainContext::TerrainInstanceInfo &instance, uint mip, uint physicalOffsetX, uint physicalOffsetY, uint indirectionOffsetX, uint indirectionOffsetY, uint subTextureTileX, uint subTextureTileY) |
| void | IndirectionErase (TerrainContext::TerrainInstanceInfo &instance, uint mip, uint indirectionOffsetX, uint indirectionOffsetY, uint subTextureTileX, uint subTextureTileY) |
| void | IndirectionMoveGrow (TerrainContext::TerrainInstanceInfo &instance, uint oldMaxMip, uint oldTiles, const Math::uint2 &oldCoord, uint newMaxMip, uint newTiles, const Math::uint2 &newCoord) |
| Copies mip chain from old region to new region which is bigger by mapping mips 0..X to 1..X in the new region. | |
| void | IndirectionMoveShrink (TerrainContext::TerrainInstanceInfo &instance, uint oldMaxMip, uint oldTiles, const Math::uint2 &oldCoord, uint newMaxMip, uint newTiles, const Math::uint2 &newCoord) |
| Copies mip chain from old region to new region which is smaller, mapping mips 0..X to 0..X-1 in the new region. | |
| void | IndirectionClear (TerrainContext::TerrainInstanceInfo &instance, uint mips, uint tiles, const Math::uint2 &coord) |
| Clear old region. | |
| void | TerrainCullJob (const Jobs::JobFuncContext &ctx) |
|
strong |
| Terrain::__ImplementContext | ( | TerrainContext | , |
| TerrainContext::terrainAllocator | ) |
| void Terrain::IndirectionClear | ( | TerrainContext::TerrainInstanceInfo & | instance, |
| uint | mips, | ||
| uint | tiles, | ||
| const Math::uint2 & | coord ) |
Clear old region.
| void Terrain::IndirectionErase | ( | TerrainContext::TerrainInstanceInfo & | instance, |
| uint | mip, | ||
| uint | indirectionOffsetX, | ||
| uint | indirectionOffsetY, | ||
| uint | subTextureTileX, | ||
| uint | subTextureTileY ) |
| void Terrain::IndirectionMoveGrow | ( | TerrainContext::TerrainInstanceInfo & | instance, |
| uint | oldMaxMip, | ||
| uint | oldTiles, | ||
| const Math::uint2 & | oldCoord, | ||
| uint | newMaxMip, | ||
| uint | newTiles, | ||
| const Math::uint2 & | newCoord ) |
Copies mip chain from old region to new region which is bigger by mapping mips 0..X to 1..X in the new region.
| void Terrain::IndirectionMoveShrink | ( | TerrainContext::TerrainInstanceInfo & | instance, |
| uint | oldMaxMip, | ||
| uint | oldTiles, | ||
| const Math::uint2 & | oldCoord, | ||
| uint | newMaxMip, | ||
| uint | newTiles, | ||
| const Math::uint2 & | newCoord ) |
Copies mip chain from old region to new region which is smaller, mapping mips 0..X to 0..X-1 in the new region.
| void Terrain::IndirectionUpdate | ( | TerrainContext::TerrainInstanceInfo & | instance, |
| uint | mip, | ||
| uint | physicalOffsetX, | ||
| uint | physicalOffsetY, | ||
| uint | indirectionOffsetX, | ||
| uint | indirectionOffsetY, | ||
| uint | subTextureTileX, | ||
| uint | subTextureTileY ) |
| void Terrain::PackSubTexture | ( | const SubTexture & | subTex, |
| TerrainSubTexture & | compressed ) |
| void Terrain::TerrainCullJob | ( | const Jobs::JobFuncContext & | ctx | ) |
| void Terrain::UnpackPageDataEntry | ( | uint * | packed, |
| uint & | status, | ||
| uint & | subTextureIndex, | ||
| uint & | mip, | ||
| uint & | maxMip, | ||
| uint & | subTextureTileX, | ||
| uint & | subTextureTileY ) |
Unpack from packed ushort vectors to full size.
| uint Terrain::Upload | ( | TerrainContext::TerrainInstanceInfo & | instance, |
| T * | data, | ||
| uint | size, | ||
| uint | alignment ) |
| CoreGraphics::BufferId Terrain::biomeBuffer |
| IndexT Terrain::biomeCounter |
| Threading::AtomicCounter Terrain::biomeLoaded[Terrain::MAX_BIOMES][4] |
| uint Terrain::biomeLowresGenerated[Terrain::MAX_BIOMES] |
| CoreGraphics::TextureId Terrain::biomeMasks[Terrain::MAX_BIOMES] |
| Terrain::MaterialLayers::STRUCT Terrain::biomeMaterials |
| BiomeMaterial Terrain::biomeResources[Terrain::MAX_BIOMES][BiomeSettings::BiomeMaterialLayer::NumLayers] |
| Util::Array<CoreGraphics::TextureId> Terrain::biomeTextures |
| CoreGraphics::TextureId Terrain::biomeWeights[Terrain::MAX_BIOMES] |
| Math::vec4 Terrain::cachedSunDirection |
|
static |
| CoreGraphics::BufferId Terrain::constantsBuffer |
| bool Terrain::debugRender |
| CoreGraphics::VertexAlloc Terrain::indexBuffer |
| const uint Terrain::IndirectionNumMips = Math::log2(SubTextureMaxTiles) + 1 |
| const uint Terrain::IndirectionTextureSize = 2048 |
|
static |
| SizeT Terrain::layers |
| const uint Terrain::LowresFallbackMips = Math::log2(LowresFallbackSize) + 1 |
| const uint Terrain::LowresFallbackSize = 4096 |
| CoreGraphics::ResourceTableId Terrain::meshGenTable |
| CoreGraphics::ShaderProgramId Terrain::meshProgram |
| float Terrain::mipLoadDistance = 1500.0f |
| float Terrain::mipRenderPadding = 150.0f |
| SizeT Terrain::numPatches |
| SizeT Terrain::numTris |
| CoreGraphics::BufferId Terrain::patchBuffer |
| const uint Terrain::PhysicalTextureNumTiles = 32 |
| const uint Terrain::PhysicalTexturePaddedSize = (PhysicalTextureTilePaddedSize) * PhysicalTextureNumTiles |
| const uint Terrain::PhysicalTextureSize = (PhysicalTextureTileSize) * PhysicalTextureNumTiles |
| const uint Terrain::PhysicalTextureTileHalfPadding = 4 |
| const uint Terrain::PhysicalTextureTilePaddedSize = PhysicalTextureTileSize + PhysicalTextureTilePadding |
| const uint Terrain::PhysicalTextureTilePadding = PhysicalTextureTileHalfPadding * 2 |
| const uint Terrain::PhysicalTextureTileSize = 256 |
| struct { ... } Terrain::raytracingState |
| bool Terrain::renderToggle |
| IndexT Terrain::setupBlasFrame |
| bool Terrain::shadowMapInvalid |
| const float Terrain::SubTextureFadeStart = 200.0f |
| const uint Terrain::SubTextureMaxPixels = 65536 |
| const uint Terrain::SubTextureMaxTiles = 256 |
| const uint Terrain::SubTextureMaxUpdates = 1024 |
| const float Terrain::SubTextureRange = 300.0f |
| const float Terrain::SubTextureSwapDistance = 10.0f |
| const uint Terrain::SubTextureWorldSize = 64 |
| Graphics::GraphicsEntityId Terrain::sun |
| Threading::CriticalSection Terrain::syncPoint |
| CoreGraphics::ShaderProgramId Terrain::terrainPageClearUpdateBufferProgram |
| CoreGraphics::TextureId Terrain::terrainPosBuffer |
| CoreGraphics::PipelineId Terrain::terrainPrepassPipeline |
| CoreGraphics::ShaderProgramId Terrain::terrainPrepassProgram |
| CoreGraphics::PipelineId Terrain::terrainResolvePipeline |
| CoreGraphics::ShaderProgramId Terrain::terrainResolveProgram |
| std::function<void()> Terrain::terrainSetupCallback |
| CoreGraphics::ShaderId Terrain::terrainShader |
| const uint Terrain::TerrainShadowMapSize = 2048 |
| CoreGraphics::ShaderProgramId Terrain::terrainShadowProgram |
| CoreGraphics::ResourceTableId Terrain::terrainShadowResourceTable |
| struct { ... } Terrain::terrainState |
| CoreGraphics::ShaderProgramId Terrain::terrainTileWriteProgram |
| struct { ... } Terrain::terrainVirtualTileState |
| CoreGraphics::ShaderProgramId Terrain::terrainWriteLowresProgram |
| CoreGraphics::ShaderId Terrain::tileShader |
| bool Terrain::updateMesh = false |
| bool Terrain::updateShadowMap |
| CoreGraphics::VertexAlloc Terrain::vertexBuffer |
| CoreGraphics::VertexLayoutId Terrain::vlo |