1.3 KiB
1.3 KiB
Mesh::SetVertexData
void SetVertexData(const void* data, size_t size, Core::uint32 vertexCount,
Core::uint32 vertexStride, VertexAttribute attributes);
设置网格的顶点数据。此方法会复制传入的数据到内部缓冲区。
参数:
data- 顶点数据指针,不能为 nullptrsize- 顶点数据总字节数vertexCount- 顶点数量vertexStride- 单个顶点的字节大小attributes- 顶点属性标志,指定数据包含哪些顶点通道
返回: 无
异常: 无
线程安全: ❌
复杂度: O(n) - n 为顶点数据大小
示例:
#include "XCEngine/Resources/Mesh.h"
using namespace XCEngine::Resources;
struct Vertex {
float position[3];
float normal[3];
float uv[2];
};
Vertex vertices[4] = {
{{-0.5f, -0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {0.0f, 0.0f}},
{{ 0.5f, -0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {1.0f, 0.0f}},
{{ 0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {1.0f, 1.0f}},
{{-0.5f, 0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {0.0f, 1.0f}}
};
Mesh mesh;
mesh.SetVertexData(
vertices,
sizeof(vertices),
4,
sizeof(Vertex),
VertexAttribute::Position | VertexAttribute::Normal | VertexAttribute::UV0
);
相关文档
- 类总览 - 返回类总览