ВУЗ:
Составители:
Основы компьютерной графики для программистов 78
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Глава 13. Параметры отображения в OpenGL
Под параметрами отображения будем понимать различные настройки изображения
трехмерных объектов в OpenGL, которые не связаны непосредственно с цветовыми
характеристиками поверхностей. При перечислении параметров отображения будем
руководствоваться рис. 45, который был приведен выше.
Итак, рассмотрим пять параметров, которые могут использоваться в большинстве
приложений трехмерной графики.
• Тип закраски
• Видимость граней
• Освещение граней
• Блики
• Изображение граней
Тип закраски: плоская или гладкая
Поверхность трехмерных объектов обычно моделируется с помощью многоугольников,
так что для получения гладких поверхностей пришлось бы уменьшать размеры этих
многоугольников, что привело бы к росту их количества и, соответственно, к резкому
увеличению времени необходимого для расчета очередного кадра изображения. Однако
проблему получения гладких поверхностей можно решить за счет визуального
размывания стыков
граней поверхностей с помощью математических методов. Эта
возможность реализована в OpenGL. Функция
glShadeModel позволяет отображать
грани плоскими, какими они есть или сгладить стыки между ними, создавая иллюзию
гладкой поверхности. В случае сглаживания цвет пикселов поверхности получается за
счет интерполяции цветов соседних вершин.
glShadeModel(GL_FLAT);//плоские грани
glShadeModel(GL_SMOOTH);//сглаживание поверхности
Закономерности отражения света от поверхности учитывают направление нормали к
поверхности, которое программист может задавать произвольно. (По умолчанию
направление нормали определяется перпендикулярно в сторону лицевой плоскости
грани, а лицевая плоскость задается обходом вершин грани против часовой стрелки.)
Видимость граней: лицевые, нелицевые
Грани поверхностей имеют две стороны. Одна из них называется лицевой, другая –
нелицевой. По умолчанию, лицевая поверхность задается обходом вершин грани
против часовой стрелки. Часто поверхности трехмерных объектов обращены к
пользователю только одной стороной. Такая ситуация типична, например, для
замкнутых объектов, внутренность которых никогда не может быть увидена. Эту
особенность удобно использовать
для повышения скорости построения кадра.
Например, если грань оказалась повернутой к пользователю нелицевой стороной, то ее
можно просто отбросить и не учитывать при расчете кадра изображения.
Учет показа разных сторон граней осуществляется включением с помощью символьной
константы
GL_CULL_FACE:
glEnable(GL_CULL_FACE) – включает режим показа разных сторон граней.
Основы компьютерной графики для программистов 78 ____________________________________________________________________________________________________________________ Глава 13. Параметры отображения в OpenGL Под параметрами отображения будем понимать различные настройки изображения трехмерных объектов в OpenGL, которые не связаны непосредственно с цветовыми характеристиками поверхностей. При перечислении параметров отображения будем руководствоваться рис. 45, который был приведен выше. Итак, рассмотрим пять параметров, которые могут использоваться в большинстве приложений трехмерной графики. • Тип закраски • Видимость граней • Освещение граней • Блики • Изображение граней Тип закраски: плоская или гладкая Поверхность трехмерных объектов обычно моделируется с помощью многоугольников, так что для получения гладких поверхностей пришлось бы уменьшать размеры этих многоугольников, что привело бы к росту их количества и, соответственно, к резкому увеличению времени необходимого для расчета очередного кадра изображения. Однако проблему получения гладких поверхностей можно решить за счет визуального размывания стыков граней поверхностей с помощью математических методов. Эта возможность реализована в OpenGL. Функция glShadeModel позволяет отображать грани плоскими, какими они есть или сгладить стыки между ними, создавая иллюзию гладкой поверхности. В случае сглаживания цвет пикселов поверхности получается за счет интерполяции цветов соседних вершин. glShadeModel(GL_FLAT);//плоские грани glShadeModel(GL_SMOOTH);//сглаживание поверхности Закономерности отражения света от поверхности учитывают направление нормали к поверхности, которое программист может задавать произвольно. (По умолчанию направление нормали определяется перпендикулярно в сторону лицевой плоскости грани, а лицевая плоскость задается обходом вершин грани против часовой стрелки.) Видимость граней: лицевые, нелицевые Грани поверхностей имеют две стороны. Одна из них называется лицевой, другая – нелицевой. По умолчанию, лицевая поверхность задается обходом вершин грани против часовой стрелки. Часто поверхности трехмерных объектов обращены к пользователю только одной стороной. Такая ситуация типична, например, для замкнутых объектов, внутренность которых никогда не может быть увидена. Эту особенность удобно использовать для повышения скорости построения кадра. Например, если грань оказалась повернутой к пользователю нелицевой стороной, то ее можно просто отбросить и не учитывать при расчете кадра изображения. Учет показа разных сторон граней осуществляется включением с помощью символьной константы GL_CULL_FACE: glEnable(GL_CULL_FACE) – включает режим показа разных сторон граней. http://www.ksu.ru/persons/9134.ru.html
Страницы
- « первая
- ‹ предыдущая
- …
- 76
- 77
- 78
- 79
- 80
- …
- следующая ›
- последняя »