OpenSubdiv.OPENSUBDIV_VERSION.Bfr
OpenSubdiv.OPENSUBDIV_VERSION.Far
OpenSubdiv.OPENSUBDIV_VERSION.Osd
OpenSubdiv.OPENSUBDIV_VERSION.Sdc
OpenSubdiv.OPENSUBDIV_VERSION.Vtr

OpenSubdiv.OPENSUBDIV_VERSION.Osd.CpuVertexBuffer

1. 简介

OpenSubdiv中的Osd.CpuVertexBuffer类是一个CPU内存上的缓存类,用于存储网格的顶点数据。此类主要用于配合Osd.CpuComputeContext类进行顶点数据的计算和更新。

2. 类定义

class CpuVertexBuffer : public Far::VertexEditTablesFactory<CpuVertexBuffer> {
public:
    /// 构造函数
    CpuVertexBuffer(int numElements, int numVertices);

    /// 析构函数
    virtual ~CpuVertexBuffer();

    /// 返回这个缓存中存储的元素数量
    int GetNumElements() const;

    /// 返回这个缓存中存储的顶点数量
    int GetNumVertices() const;

    /// 获取指定元素和顶点的值
    void* BindCpuBuffer() const;

    /// 获取指定元素和顶点的值
    template<class T>
    T* BindCpuBuffer() const;
};

3. 成员函数

3.1 构造函数

CpuVertexBuffer(int numElements, int numVertices)

参数:

  • numElements:缓存中每个顶点的元素数量
  • numVertices:缓存中顶点的数量

3.1.1 用法

构造一个指定大小的CPU内存缓存。

3.2 析构函数

virtual ~CpuVertexBuffer()

3.2.1 用法

释放CPU内存缓存。

3.3 GetNumElements

int GetNumElements() const

3.3.1 用法

获取缓存中每个顶点的元素数量。

3.4 GetNumVertices

int GetNumVertices() const

3.4.1 用法

获取缓存中顶点的数量。

3.5 BindCpuBuffer

void* BindCpuBuffer() const

3.5.1 用法

获取指定元素和顶点的值。

返回值:返回缓存中保存的元素值的指针。

template<class T>
T* BindCpuBuffer() const

3.5.2 用法

获取指定元素和顶点的值。

返回值:返回缓存中保存的元素值的指针。

4. 参考链接