INNER CODE UNIT · C++

last_lod

oxylusengine/Oxylus · ResourceCompiler/private/ModelCompiler.cpp:311

      const auto& last_lod = mesh.lods[lod_index - 1];
      auto lod_index_count = ((last_lod_indices.size() + 5_sz) / 6_sz) * 3_sz;
      simplified_indices.resize(last_lod_indices.size(), 0_u32);
      constexpr auto TARGET_ERROR = std::numeric_limits<f32>::max();
      constexpr f32 NORMAL_WEIGHTS[] = {1.0f, 1.0f, 1.0f};

      auto result_error = 0.0f;
      // A primitive without NORMAL leaves nothing to weight the attribute error by, and handing
      // meshoptimizer a null attribute buffer dereferences it.
      auto result_index_count = normals.empty() ? meshopt_simplify(
                                                    simplified_indices.data(),
                                                    last_lod_indices.data(),
                                                    last_lod_indices.size(),
                                                    reinterpret_cast<const f32*>(positions.data()),
                                                    vertex_count,
                                                    sizeof(glm::vec3),
                                                    lod_index_count,
                                                    TARGET_ERROR,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…