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);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…