载入中...
搜索中...
未找到
eve::virtualgeometry::VirtualGeometryRenderer类 参考

A virtual-geometry renderer: preprocesses a mesh into a cluster DAG, uploads it to the GPU, then each frame runs GPU-driven culling + a software rasterizer into a visibility buffer. 更多...

#include <VirtualGeometryRenderer.h>

Public 成员函数

 VirtualGeometryRenderer ()
 
 ~VirtualGeometryRenderer ()
 
 VirtualGeometryRenderer (const VirtualGeometryRenderer &)=delete
 
VirtualGeometryRendereroperator= (const VirtualGeometryRenderer &)=delete
 
bool isReady () const
 
bool build (const float *positions, int vertexCount, const std::uint32_t *indices, int indexCount)
 
bool build (const VirtualGeometryBuilder::MeshInput &in)
 
bool buildIcosphere (int subdiv)
 Convenience: procedural unit icosphere, subdiv subdivision levels.
 
void setViewport (int width, int height, float fovYDeg, float errorPx=1.0f)
 
void setCamera (const float view[16], const float proj[16], const float model[16], const float camPos[3])
 
void setCameraSimple (float camX, float camY, float camZ, float nearZ=0.1f, float farZ=100.f)
 Script-friendly: identity view (camera looking down -Z) + perspective.
 
void setModelYaw (float yaw)
 Spin the virtualized model about Y by yaw radians each frame.
 
int update ()
 Run cull + raster; returns the number of visible clusters.
 
bool resolve (unsigned char *outRgba, int &outW, int &outH)
 
eve::data::ByteDataresolveByteData ()
 Resolve into a heap ByteData (RGBA) for scripting/display.
 
int getViewWidth () const
 
int getViewHeight () const
 
int getClusterCount () const
 
int getVisibleCount () const
 
int getTotalTriangleCount () const
 
int getLodLevel (int clusterId) const
 
int getMaxLodLevel () const
 

详细描述

A virtual-geometry renderer: preprocesses a mesh into a cluster DAG, uploads it to the GPU, then each frame runs GPU-driven culling + a software rasterizer into a visibility buffer.

Lifecycle (Squirrel): r <- vg.newRenderer() r.buildIcosphere(4) (or build(...) with raw arrays) r.setViewport(w, h, fovYDeg, errorPx) r.setCamera(view[16], proj[16], model[16], cam[3]) visible <- r.update() ok <- r.resolve(rgbaArray, w, h) // CPU readback of the visibility buffer

在文件 VirtualGeometryRenderer.h29 行定义.

构造及析构函数说明

◆ VirtualGeometryRenderer() [1/2]

eve::virtualgeometry::VirtualGeometryRenderer::VirtualGeometryRenderer ( )

◆ ~VirtualGeometryRenderer()

eve::virtualgeometry::VirtualGeometryRenderer::~VirtualGeometryRenderer ( )

◆ VirtualGeometryRenderer() [2/2]

eve::virtualgeometry::VirtualGeometryRenderer::VirtualGeometryRenderer ( const VirtualGeometryRenderer )
delete

成员函数说明

◆ build() [1/2]

bool eve::virtualgeometry::VirtualGeometryRenderer::build ( const float *  positions,
int  vertexCount,
const std::uint32_t *  indices,
int  indexCount 
)

◆ build() [2/2]

bool eve::virtualgeometry::VirtualGeometryRenderer::build ( const VirtualGeometryBuilder::MeshInput in)

◆ buildIcosphere()

bool eve::virtualgeometry::VirtualGeometryRenderer::buildIcosphere ( int  subdiv)

Convenience: procedural unit icosphere, subdiv subdivision levels.

在文件 VirtualGeometryRenderer.cpp111 行定义.

引用了 build(), idx , 以及 pos.

◆ getClusterCount()

int eve::virtualgeometry::VirtualGeometryRenderer::getClusterCount ( ) const

◆ getLodLevel()

int eve::virtualgeometry::VirtualGeometryRenderer::getLodLevel ( int  clusterId) const

◆ getMaxLodLevel()

int eve::virtualgeometry::VirtualGeometryRenderer::getMaxLodLevel ( ) const

◆ getTotalTriangleCount()

int eve::virtualgeometry::VirtualGeometryRenderer::getTotalTriangleCount ( ) const

◆ getViewHeight()

int eve::virtualgeometry::VirtualGeometryRenderer::getViewHeight ( ) const
inline

在文件 VirtualGeometryRenderer.h60 行定义.

◆ getViewWidth()

int eve::virtualgeometry::VirtualGeometryRenderer::getViewWidth ( ) const
inline

在文件 VirtualGeometryRenderer.h59 行定义.

◆ getVisibleCount()

int eve::virtualgeometry::VirtualGeometryRenderer::getVisibleCount ( ) const
inline

在文件 VirtualGeometryRenderer.h64 行定义.

◆ isReady()

bool eve::virtualgeometry::VirtualGeometryRenderer::isReady ( ) const
inline

◆ operator=()

VirtualGeometryRenderer & eve::virtualgeometry::VirtualGeometryRenderer::operator= ( const VirtualGeometryRenderer )
delete

◆ resolve()

bool eve::virtualgeometry::VirtualGeometryRenderer::resolve ( unsigned char *  outRgba,
int &  outW,
int &  outH 
)

Resolve the visibility buffer to RGBA (w*h*4 bytes).

在文件 VirtualGeometryRenderer.cpp191 行定义.

引用了 depth, h, n, u , 以及 eve::virtualgeometry::vgReadPixels().

被这些函数引用 resolveByteData().

◆ resolveByteData()

eve::data::ByteData * eve::virtualgeometry::VirtualGeometryRenderer::resolveByteData ( )

Resolve into a heap ByteData (RGBA) for scripting/display.

在文件 VirtualGeometryRenderer.cpp222 行定义.

引用了 h, resolve() , 以及 w.

◆ setCamera()

void eve::virtualgeometry::VirtualGeometryRenderer::setCamera ( const float  view[16],
const float  proj[16],
const float  model[16],
const float  camPos[3] 
)

◆ setCameraSimple()

void eve::virtualgeometry::VirtualGeometryRenderer::setCameraSimple ( float  camX,
float  camY,
float  camZ,
float  nearZ = 0.1f,
float  farZ = 100.f 
)

Script-friendly: identity view (camera looking down -Z) + perspective.

在文件 VirtualGeometryRenderer.cpp147 行定义.

引用了 a, eve::virtualgeometry::VgUniforms::params, proj, setCamera() , 以及 view.

◆ setModelYaw()

void eve::virtualgeometry::VirtualGeometryRenderer::setModelYaw ( float  yaw)

Spin the virtualized model about Y by yaw radians each frame.

在文件 VirtualGeometryRenderer.cpp167 行定义.

◆ setViewport()

void eve::virtualgeometry::VirtualGeometryRenderer::setViewport ( int  width,
int  height,
float  fovYDeg,
float  errorPx = 1.0f 
)

◆ update()

int eve::virtualgeometry::VirtualGeometryRenderer::update ( )

Run cull + raster; returns the number of visible clusters.

在文件 VirtualGeometryRenderer.cpp184 行定义.

引用了 eve::virtualgeometry::VirtualGeometryAsset::clusters, eve::virtualgeometry::VgBackend::state , 以及 eve::virtualgeometry::vgUpdate().


该类的文档由以下文件生成: