载入中...
搜索中...
未找到
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 ()
 Virtual geometry renderer.
 
 ~VirtualGeometryRenderer ()
 Virtual geometry renderer.
 
 VirtualGeometryRenderer (const VirtualGeometryRenderer &)=delete
 
VirtualGeometryRenderer & operator= (const VirtualGeometryRenderer &)=delete
 
bool isReady () const
 True when ready.
 
bool build (const float *positions, int vertexCount, const std::uint32_t *indices, int indexCount)
 Builds .
 
bool build (const VirtualGeometryBuilder::MeshInput &in)
 Builds .
 
bool buildIcosphere (int subdiv)
 Convenience: procedural unit icosphere, subdiv subdivision levels.
 
void setViewport (int width, int height, float fovYDeg, float errorPx=1.0f)
 Sets the viewport.
 
void setCamera (const float view[16], const float proj[16], const float model[16], const float camPos[3])
 Sets the camera.
 
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)
 Resolve.
 
eve::data::ByteData * resolveByteData ()
 Resolve into a heap ByteData (RGBA) for scripting/display.
 
int getViewWidth () const
 Returns the view width.
 
int getViewHeight () const
 Returns the view height.
 
int getClusterCount () const
 Returns the cluster count.
 
int getVisibleCount () const
 Returns the visible count.
 
int getTotalTriangleCount () const
 Returns the total triangle count.
 
int getLodLevel (int clusterId) const
 Returns the lod level.
 
int getMaxLodLevel () const
 Returns the max lod level.
 

详细描述

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.h 第 29 行定义.

构造及析构函数说明

◆ VirtualGeometryRenderer() [1/2]

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

Virtual geometry renderer.

在文件 VirtualGeometryRenderer.cpp 第 38 行定义.

引用了 eve::virtualgeometry::vgCreate().

◆ ~VirtualGeometryRenderer()

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

Virtual geometry renderer.

在文件 VirtualGeometryRenderer.cpp 第 40 行定义.

引用了 eve::virtualgeometry::vgDestroy().

◆ 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.cpp 第 111 行定义.

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

◆ getClusterCount()

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

Returns the cluster count.

在文件 VirtualGeometryRenderer.cpp 第 235 行定义.

引用了 eve::virtualgeometry::VirtualGeometryAsset::clusters.

◆ getLodLevel()

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

Returns the lod level.

在文件 VirtualGeometryRenderer.cpp 第 243 行定义.

引用了 clusterId , 以及 eve::virtualgeometry::VirtualGeometryAsset::clusters.

◆ getMaxLodLevel()

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

Returns the max lod level.

在文件 VirtualGeometryRenderer.cpp 第 248 行定义.

引用了 c, eve::virtualgeometry::VirtualGeometryAsset::clusters , 以及 m.

◆ getTotalTriangleCount()

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

Returns the total triangle count.

在文件 VirtualGeometryRenderer.cpp 第 239 行定义.

引用了 eve::virtualgeometry::VirtualGeometryAsset::totalTriangles().

◆ getViewHeight()

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

Returns the view height.

在文件 VirtualGeometryRenderer.h 第 70 行定义.

◆ getViewWidth()

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

Returns the view width.

在文件 VirtualGeometryRenderer.h 第 68 行定义.

◆ getVisibleCount()

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

Returns the visible count.

在文件 VirtualGeometryRenderer.h 第 76 行定义.

◆ isReady()

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

True when ready.

在文件 VirtualGeometryRenderer.h 第 40 行定义.

◆ operator=()

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

◆ resolve()

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

Resolve.

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

在文件 VirtualGeometryRenderer.cpp 第 191 行定义.

引用了 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.cpp 第 224 行定义.

引用了 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.cpp 第 147 行定义.

引用了 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.cpp 第 167 行定义.

引用了 yaw.

◆ setViewport()

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

Sets the viewport.

在文件 VirtualGeometryRenderer.cpp 第 119 行定义.

引用了 height, eve::virtualgeometry::VgUniforms::params , 以及 width.

◆ update()

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

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

在文件 VirtualGeometryRenderer.cpp 第 184 行定义.

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


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