添加缓冲区工具函数和优化几何体处理

This commit is contained in:
SpecialX
2025-11-19 11:35:51 +08:00
parent 7d5265bced
commit 14c01ea55a
3 changed files with 51 additions and 32 deletions

30
src/buffer-util.ts Normal file
View File

@@ -0,0 +1,30 @@
export class BufferUtil {
public static createVertexBuffer(device: GPUDevice, data: Float32Array ): GPUBuffer {
const buffer = device.createBuffer({
size: data.byteLength,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.VERTEX,
mappedAtCreation: true,
});
new Float32Array(buffer.getMappedRange()).set(data);
buffer.unmap();
return buffer;
}
public static createIndexBuffer(device: GPUDevice, data: Uint16Array): GPUBuffer {
const buffer = device.createBuffer({
size: data.byteLength,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.INDEX,
mappedAtCreation: true,
});
new Uint16Array(buffer.getMappedRange()).set(data);
buffer.unmap();
return buffer;
}
}