INNER CODE UNIT · C++
quantized_normal
oxylusengine/Oxylus · ResourceCompiler/private/ModelCompiler.cpp:272
quantized_normal = ((meshopt_quantizeSnorm(normal.x, 10) + 511) << 20) |
((meshopt_quantizeSnorm(normal.y, 10) + 511) << 10) |
(meshopt_quantizeSnorm(normal.z, 10) + 511);
}
auto quantized_texcoords = std::vector<glm::u16vec2>(vertex_count);
for (const auto& [texcoord, quantized_texcoord] : std::views::zip(texcoords, quantized_texcoords)) {
quantized_texcoord.x = meshopt_quantizeHalf(texcoord.x);
quantized_texcoord.y = meshopt_quantizeHalf(texcoord.y);
}
auto mesh = ModelData::Mesh{};
mesh.name = source.name;
mesh.vertex_count = vertex_count;
mesh.collision_positions.reserve(positions.size() * 3);
for (const auto& position : positions) {
mesh.collision_positions.push_back(position.x);