Я работаю над приложением 3D OpenGl (C ++), в котором у меня есть собственная структура сетки, основанная на структуре данных Half-Edge. Я хочу создать простой способ загрузки файлов obj Wavefront в мою структуру сетки. Конечно, я могу делать это наивно построчно, но должен быть какой-то более эффективный способ (я знаю, что профессиональные приложения не загружают файл построчно наивно, это было бы слишком медленно для миллионов вершин).
Может ли кто-нибудь указать мне на учебник или пример действительно быстрого загрузчика OBJ? Было бы предпочтительнее, если бы это было связано со структурой данных Half Edge.
Редактировать:
Есть две основные проблемы, которые я пытаюсь решить.
1) Избегайте общей медлительности чтения чисел с плавающей запятой из файла.
2) Как на лету грамотно определять «смежную» половину кромки для каждого ребра. Я представляю себе какую-то хеш-функцию, чтобы определить, существует ли уже симметричное или следующее ребро для создаваемого ребра, и если да, то использовать этот указатель.