Import mesh colors in 8BPP.

* Colors were imported as 16BPP (half float)
* Far most common use cases only require 8BPP
* If you need higher data precision, use a custom array, which are supported now.

**WARNING**: 3D Scenes imported in 4.0 no longer compatible with this new format. You need to re-import them (erase them from .godot/import)
This commit is contained in:
reduz 2021-06-30 17:03:33 -03:00
parent 3530cb639a
commit 9ad0c6cde7
4 changed files with 33 additions and 31 deletions

View file

@ -3258,8 +3258,8 @@ void RendererStorageRD::_mesh_surface_generate_version_for_input_mask(Mesh::Surf
case RS::ARRAY_COLOR: {
vd.offset = attribute_stride;
vd.format = RD::DATA_FORMAT_R16G16B16A16_SFLOAT;
attribute_stride += sizeof(int16_t) * 4;
vd.format = RD::DATA_FORMAT_R8G8B8A8_UNORM;
attribute_stride += sizeof(int8_t) * 4;
buffer = s->attribute_buffer;
} break;
case RS::ARRAY_TEX_UV: {