16-bit precision for vertex position, normal

Is it possible to use 16 bits for vertex position, normals instead of 32 bits?
Just to avoid confusion I am talking about actual vertex position and not index buffer size.

So instead of vertex buffer size:
32 bit x 4 (x,y,z,w) position
32 bit x 4 (x,y,z,w) normal

data size per vertex: (256 bits) 32 BYTES per vertex data

I need this:
16 bit x 3 (x,y,z) position
16 bit x 3 (x,y,z) normal

data size pre vertex: (96 bits) 12 BYTES per vertex data

?

This is for a procedural generated data.

It’s not, but we’re thinking of how to support it in the future.

Is this available now?

You can enable mesh compression, which isn’t 16 bits, but rather 20 for position, and 8 for normals.

@bgolus Thanks but this solution is only for saving local disk space, when meshes are used in real time they are still at 32 bits. We need method to change vertex buffer component struct sizes at run time for procedural data.

any news about this?

2 Likes