Nebula
Loading...
Searching...
No Matches
Vegetation Namespace Reference

Detailed Description

The vegetation context handles rendering of grass, trees and other types of vegetation.

Classes

struct  CombinedMeshVertex
 
struct  GrassVertex
 
struct  VegetationBiomeId
 
class  VegetationContext
 
struct  VegetationGrassSetup
 
struct  VegetationMeshSetup
 
struct  VegetationSetupSettings
 

Functions

 __ImplementContext (VegetationContext, VegetationContext::vegetationAllocator)
 

Variables

struct { 
 
   CoreGraphics::TextureId   Vegetation::heightMap 
 
   float   Vegetation::minHeight 
 
   float   Vegetation::maxHeight 
 
   Math::vec2   Vegetation::worldSize 
 
   uint   Vegetation::numGrassBlades 
 
   CoreGraphics::BufferId   Vegetation::grassVbo 
 
   CoreGraphics::BufferId   Vegetation::grassIbo 
 
   CoreGraphics::VertexLayoutId   Vegetation::grassLayout 
 
   CoreGraphics::VertexLayoutId   Vegetation::combinedMeshLayoutWithColor 
 
   CoreGraphics::VertexLayoutId   Vegetation::combinedMeshLayout 
 
   Vegetation::MeshInfo   Vegetation::meshInfos [Vegetation::MAX_MESH_INFOS] 
 
   Ids::IdPool   Vegetation::meshInfoPool 
 
   CoreGraphics::BufferId   Vegetation::meshInfoBuffer 
 
   Vegetation::GrassInfo   Vegetation::grassInfos [Vegetation::MAX_GRASS_INFOS] 
 
   Ids::IdPool   Vegetation::grassInfoPool 
 
   CoreGraphics::BufferId   Vegetation::grassInfoBuffer 
 
   CoreGraphics::ResourceTableId   Vegetation::systemResourceTable 
 
   CoreGraphics::BufferId   Vegetation::systemUniforms 
 
   CoreGraphics::ShaderId   Vegetation::vegetationBaseShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationClearShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationGenerateDrawsShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationGrassZShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationGrassShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationMeshZShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationMeshShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationMeshVColorZShader 
 
   CoreGraphics::ShaderProgramId   Vegetation::vegetationMeshVColorShader 
 
   CoreGraphics::BufferId   Vegetation::grassDrawCallsBuffer 
 
   Util::FixedArray< CoreGraphics::BufferId >   Vegetation::indirectGrassDrawCallsBuffer 
 
   CoreGraphics::BufferId   Vegetation::grassArgumentsBuffer 
 
   Util::FixedArray< CoreGraphics::BufferId >   Vegetation::indirectGrassArgumentBuffer 
 
   CoreGraphics::BufferId   Vegetation::meshDrawCallsBuffer 
 
   Util::FixedArray< CoreGraphics::BufferId >   Vegetation::indirectMeshDrawCallsBuffer 
 
   CoreGraphics::BufferId   Vegetation::meshArgumentsBuffer 
 
   Util::FixedArray< CoreGraphics::BufferId >   Vegetation::indirectMeshArgumentsBuffer 
 
   CoreGraphics::ResourceTableId   Vegetation::argumentsTable 
 
   Util::FixedArray< CoreGraphics::ResourceTableId >   Vegetation::indirectArgumentsTable 
 
   CoreGraphics::BufferId   Vegetation::drawCountBuffer 
 
   Util::FixedArray< CoreGraphics::BufferId >   Vegetation::indirectDrawCountBuffer 
 
   IndexT   Vegetation::grassMaskCount = 0 
 
   IndexT   Vegetation::meshMaskCount = 0 
 
   Ids::IdPool   Vegetation::texturePool 
 
   SizeT   Vegetation::grassDrawsThisFrame = 0 
 
   SizeT   Vegetation::meshDrawsThisFrame [MAX_MESH_INFOS] = { 0 } 
 
   SizeT   Vegetation::meshVertexOffsets [MAX_MESH_INFOS] 
 
   SizeT   Vegetation::meshIndexOffsets [MAX_MESH_INFOS] 
 
   CoreGraphics::VertexLayoutId   Vegetation::layouts [MAX_MESH_INFOS] 
 
   CoreGraphics::ShaderProgramId   Vegetation::meshZPrograms [MAX_MESH_INFOS] 
 
   CoreGraphics::ShaderProgramId   Vegetation::meshPrograms [MAX_MESH_INFOS] 
 
   Vegetation::VegetationMaterialUniforms   Vegetation::materialUniforms 
 
   CoreGraphics::BufferId   Vegetation::materialUniformsBuffer 
 
vegetationState 
 
static const uint VegetationDistributionRadius = 128
 
static const uint MaxNumIndirectDraws = 8192
 

Function Documentation

◆ __ImplementContext()

Vegetation::__ImplementContext ( VegetationContext ,
VegetationContext::vegetationAllocator  )

Variable Documentation

◆ argumentsTable

CoreGraphics::ResourceTableId Vegetation::argumentsTable

◆ combinedMeshLayout

CoreGraphics::VertexLayoutId Vegetation::combinedMeshLayout

◆ combinedMeshLayoutWithColor

CoreGraphics::VertexLayoutId Vegetation::combinedMeshLayoutWithColor

◆ drawCountBuffer

CoreGraphics::BufferId Vegetation::drawCountBuffer

◆ grassArgumentsBuffer

CoreGraphics::BufferId Vegetation::grassArgumentsBuffer

◆ grassDrawCallsBuffer

CoreGraphics::BufferId Vegetation::grassDrawCallsBuffer

◆ grassDrawsThisFrame

SizeT Vegetation::grassDrawsThisFrame = 0

◆ grassIbo

CoreGraphics::BufferId Vegetation::grassIbo

◆ grassInfoBuffer

CoreGraphics::BufferId Vegetation::grassInfoBuffer

◆ grassInfoPool

Ids::IdPool Vegetation::grassInfoPool

◆ grassInfos

Vegetation::GrassInfo Vegetation::grassInfos[Vegetation::MAX_GRASS_INFOS]

◆ grassLayout

CoreGraphics::VertexLayoutId Vegetation::grassLayout

◆ grassMaskCount

IndexT Vegetation::grassMaskCount = 0

◆ grassVbo

CoreGraphics::BufferId Vegetation::grassVbo

◆ heightMap

CoreGraphics::TextureId Vegetation::heightMap

◆ indirectArgumentsTable

Util::FixedArray<CoreGraphics::ResourceTableId> Vegetation::indirectArgumentsTable

◆ indirectDrawCountBuffer

Util::FixedArray<CoreGraphics::BufferId> Vegetation::indirectDrawCountBuffer

◆ indirectGrassArgumentBuffer

Util::FixedArray<CoreGraphics::BufferId> Vegetation::indirectGrassArgumentBuffer

◆ indirectGrassDrawCallsBuffer

Util::FixedArray<CoreGraphics::BufferId> Vegetation::indirectGrassDrawCallsBuffer

◆ indirectMeshArgumentsBuffer

Util::FixedArray<CoreGraphics::BufferId> Vegetation::indirectMeshArgumentsBuffer

◆ indirectMeshDrawCallsBuffer

Util::FixedArray<CoreGraphics::BufferId> Vegetation::indirectMeshDrawCallsBuffer

◆ layouts

CoreGraphics::VertexLayoutId Vegetation::layouts[MAX_MESH_INFOS]

◆ materialUniforms

Vegetation::VegetationMaterialUniforms Vegetation::materialUniforms

◆ materialUniformsBuffer

CoreGraphics::BufferId Vegetation::materialUniformsBuffer

◆ maxHeight

float Vegetation::maxHeight

◆ MaxNumIndirectDraws

const uint Vegetation::MaxNumIndirectDraws = 8192
static

◆ meshArgumentsBuffer

CoreGraphics::BufferId Vegetation::meshArgumentsBuffer

◆ meshDrawCallsBuffer

CoreGraphics::BufferId Vegetation::meshDrawCallsBuffer

◆ meshDrawsThisFrame

SizeT Vegetation::meshDrawsThisFrame[MAX_MESH_INFOS] = { 0 }

◆ meshIndexOffsets

SizeT Vegetation::meshIndexOffsets[MAX_MESH_INFOS]

◆ meshInfoBuffer

CoreGraphics::BufferId Vegetation::meshInfoBuffer

◆ meshInfoPool

Ids::IdPool Vegetation::meshInfoPool

◆ meshInfos

Vegetation::MeshInfo Vegetation::meshInfos[Vegetation::MAX_MESH_INFOS]

◆ meshMaskCount

IndexT Vegetation::meshMaskCount = 0

◆ meshPrograms

CoreGraphics::ShaderProgramId Vegetation::meshPrograms[MAX_MESH_INFOS]

◆ meshVertexOffsets

SizeT Vegetation::meshVertexOffsets[MAX_MESH_INFOS]

◆ meshZPrograms

CoreGraphics::ShaderProgramId Vegetation::meshZPrograms[MAX_MESH_INFOS]

◆ minHeight

float Vegetation::minHeight

◆ numGrassBlades

uint Vegetation::numGrassBlades

◆ systemResourceTable

CoreGraphics::ResourceTableId Vegetation::systemResourceTable

◆ systemUniforms

CoreGraphics::BufferId Vegetation::systemUniforms

◆ texturePool

Ids::IdPool Vegetation::texturePool

◆ vegetationBaseShader

CoreGraphics::ShaderId Vegetation::vegetationBaseShader

◆ vegetationClearShader

CoreGraphics::ShaderProgramId Vegetation::vegetationClearShader

◆ VegetationDistributionRadius

const uint Vegetation::VegetationDistributionRadius = 128
static

◆ vegetationGenerateDrawsShader

CoreGraphics::ShaderProgramId Vegetation::vegetationGenerateDrawsShader

◆ vegetationGrassShader

CoreGraphics::ShaderProgramId Vegetation::vegetationGrassShader

◆ vegetationGrassZShader

CoreGraphics::ShaderProgramId Vegetation::vegetationGrassZShader

◆ vegetationMeshShader

CoreGraphics::ShaderProgramId Vegetation::vegetationMeshShader

◆ vegetationMeshVColorShader

CoreGraphics::ShaderProgramId Vegetation::vegetationMeshVColorShader

◆ vegetationMeshVColorZShader

CoreGraphics::ShaderProgramId Vegetation::vegetationMeshVColorZShader

◆ vegetationMeshZShader

CoreGraphics::ShaderProgramId Vegetation::vegetationMeshZShader

◆ [struct]

struct { ... } Vegetation::vegetationState

◆ worldSize

Math::vec2 Vegetation::worldSize