webgpu sponza
This commit is contained in:
parent
5553ded476
commit
b5d0f52da0
21 changed files with 1426 additions and 58 deletions
|
|
@ -64,6 +64,7 @@ export namespace Crafter {
|
|||
#ifdef CRAFTER_GRAPHICS_WINDOW_DOM
|
||||
import std;
|
||||
import Crafter.Math;
|
||||
import Crafter.Asset;
|
||||
import :WebGPU;
|
||||
|
||||
export namespace Crafter {
|
||||
|
|
@ -108,6 +109,15 @@ export namespace Crafter {
|
|||
void Build(std::span<Crafter::Vector<float, 3, 3>> vertices,
|
||||
std::span<std::uint32_t> indices,
|
||||
WebGPUCommandEncoderRef cmd = 0);
|
||||
|
||||
// CPU-decompress the .cmesh blob (no VK_EXT_memory_decompression
|
||||
// equivalent in WebGPU) and forward to the positions+indices path,
|
||||
// plus push the optional `data` region into the per-vertex attribs
|
||||
// heap so closest-hit shaders can sample UVs / normals / tangents.
|
||||
// The data layout is example-defined — the heap is exposed in WGSL
|
||||
// as `vertexAttribs : array<u32>` with a per-mesh u32-word offset.
|
||||
void Build(const ::Crafter::CompressedMeshAsset& asset,
|
||||
WebGPUCommandEncoderRef cmd = 0);
|
||||
};
|
||||
}
|
||||
#endif // CRAFTER_GRAPHICS_WINDOW_DOM
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue