d274284069
Implement Octahedral Compression for normal/tangent vectors *Oct32 for uncompressed vectors *Oct16 for compressed vectors Reduces vertex size for each attribute by *Uncompressed: 12 bytes, vec4<float32> -> vec2<unorm16> *Compressed: 2 bytes, vec4<unorm8> -> vec2<unorm8> Binormal sign is encoded in the y coordinate of the encoded tangent Added conversion functions to go from octahedral mapping to cartesian for normal and tangent vectors sprite_3d and soft_body meshes write to their vertex buffer memory directly and need to convert their normals and tangents to the new oct format before writing Created a new mesh flag to specify whether a mesh is using octahedral compression or not Updated documentation to discuss new flag/defaults Created shader flags to specify whether octahedral or cartesian vectors are being used Updated importers to use octahedral representation as the default format for importing meshes Updated ShaderGLES2 to support 64 bit version codes as we hit the limit of the 32-bit integer that was previously used as a bitset to store enabled/disabled flags |
||
---|---|---|
.. | ||
shaders | ||
rasterizer_canvas_base_gles2.cpp | ||
rasterizer_canvas_base_gles2.h | ||
rasterizer_canvas_gles2.cpp | ||
rasterizer_canvas_gles2.h | ||
rasterizer_gles2.cpp | ||
rasterizer_gles2.h | ||
rasterizer_scene_gles2.cpp | ||
rasterizer_scene_gles2.h | ||
rasterizer_storage_gles2.cpp | ||
rasterizer_storage_gles2.h | ||
SCsub | ||
shader_compiler_gles2.cpp | ||
shader_compiler_gles2.h | ||
shader_gles2.cpp | ||
shader_gles2.h |