Я хочу знать методы, используемые для визуализации сложных поверхностей, которые не могут быть представлены математическим уравнением (например, автомобилем) в OpenGL
. Создаем ли мы его, объединяя так много основных элементов (сферу, конус, ...)? Или есть другие методы? Я собираюсь приступить к созданию приложения, которое будет отображать 3D-автомобиль и вы хотите знать, с чего начать.Рисование сложных поверхностей в OpenGL
ответ
Для создания моделей, которые можно экспортировать, а затем визуализировать в OpenGL, вы можете использовать сторонний инструмент, например Blender. Эти модели обычно состоят из треугольников, но нарисованы с помощью 3D-инструментов, аналогичных ручке и бумаге 2D.
Вот учебник по этой теме: OpenGL Model Tutorial
Да, OpenGL производит изображения, рисуя множество базовых элементов (известный как «примитивов»).
Наиболее распространенными примитивами являются треугольники и четырехугольники (или «квадрациклы», которые обычно реализуются как два треугольника). (Существуют также положения для рисования линейных и точечных примитивов, но они обычно не используются для рисования фотореалистичных поверхностей.)
Сложные поверхности аппроксимируются сеткой треугольников или квадрациклов. Скрытое удаление поверхности обычно выполняется с помощью карты глубины: примитивы, направленные ближе к камере, блокируют и переопределяют более отдаленные примитивы на основе каждого пикселя.
Для уменьшения уровня тесселяции, необходимого для создания хорошего изображения, OpenGL поддерживает интерполяцию (фиктивной) касательной плоскости между углами треугольника (и квадранта). Это дешевое приближение, называемое «затенением нормального», практически устраняет граненый внешний вид, который в противном случае оставил бы непрерывную поверхность, приближенную к скромному числу примитивов.
Очень сложно сконструировать объект с нуля. OpenGL - это машина для рендеринга полигонов. Обычные объекты представлены вертеками для их трехмерного положения и индексов для того, как они взаимодействуют с obj file. Вы можете найти некоторые файлы obj, которые представляют собой автомобиль, например, или что-то еще, и сделать его. Также существует альтернативный метод проектирования сложных моделей с использованием патчей. Патчи используются в программах САПР для лучшего контроля над моделью patches. Чтобы создать более сложную модель, вы объединяете множество патчей.
- 1. Рисование ткани или поверхностей в openGL ES?
- 2. Рисование 3D-планарных поверхностей
- 3. Рисование 3d-поверхностей в JavaFX
- 4. OpenGL Изменение толщины обработанных поверхностей
- 5. Рисование пикселей в OpenGL
- 6. Рисование строки в OpenGL
- 7. Рисование тора в opengl
- 8. Рисование круга с OpenGL
- 9. Рисование с glutDisplayFunc (OpenGL)
- 10. Рисование 2D-Heptagon OpenGL
- 11. OpenGL VBOs: рисование сферы
- 12. OpenGL рисование нескольких объектов
- 13. Рисование, стиль OpenGL
- 14. Рисование 2D-полигонов в openGL
- 15. Рисование отдельных пикселей в OpenGL
- 16. Рисование вогнутого многоугольника в OpenGL
- 17. Рисование кривых Эрмита в OpenGL
- 18. Рисование многих сфер в OpenGL
- 19. Рисование массива объектов в OpenGL
- 20. Рисование текста в представлении OpenGL
- 21. Рисование площади в OpenGL ES
- 22. Рисование сферы в OpenGL ES
- 23. Рисование нескольких форм в OpenGL
- 24. Выполнение OpenGL Рисование из потока
- 25. Opengl-es Рисование к текстуре
- 26. OPENGL: рисование нескольких точечных огней
- 27. OpenGL ES 2.0 - Рисование Parallels
- 28. Java openGL - рисование 3D-объекта
- 29. Рисование многоугольников opengl и box2D
- 30. OpenGL Рисование для нескольких текстур
Вы используете многоугольные сетки, которые приблизительно приближаются к поверхности. Однако, поскольку создание/моделирование идет, это можно сделать, выполняя операции с использованием основных элементов, таких как сферы, конусы, коробки и т. Д. Это будет процесс, известный как [Конструктивная сплошная геометрия] (http: // ru. wikipedia.org/wiki/Constructive_solid_geometry), и результаты обычно преобразуются в треугольную сетку для эффективного рендеринга в режиме реального времени. –
Я бы предложил вам изучить [твердотельное моделирование] (http://en.wikipedia.org/wiki/Solid_modeling) для более подробного обзора всех доступных подходов. Просто обратите внимание, что графические процессоры традиционно были разработаны с целью рисования треугольников быстро, так что обычно, как модели заканчиваются независимо от того, как они были созданы изначально. –