Chapter 7
Инициализация или как написать приложение с нуля
7.1 Общие положения
В этой главе вы познакомитесь с самой главной частью программного кода - начальной
инициализацией. На мой взгляд, это очень сложная тема. Я решил оставить
ее на конец книги, когда вы уже будете знакомы с OpenGL. В противном случае,
если бы я поместил эту главу в самом начале, я боюсь вы многого не поняли
бы. Да и вообще, может не стали бы читать эту книжку.
Сначала, я расскажу в общих чертах, что нужно для инициализации библиотеки
OpenGL.
Далее мы рассмотрим несколько частных реализаций в среде Windows, Linux
и межплатформенный вариант для Java.
Для программирования графики в OpenGL вы должны иметь контекст воспроизведения.
Это что-то типа контекста устройства в Windows или же магического адреса
0xA000 для графического или же 0xB800 для текстого режима MSDOS. Первое,
что вы должны сделать, это подобрать и установить нужные вам параметры
контекста воспроизведения. Потом создать сам контекст воспроизведения.
И последнее, вы должны сделать его активным. Вообще говоря, вы можете иметь
несколько контекстов воспроизведения, но активным может быть только один.
Теперь вы можете уже что-нибудь рисовать. Но, возможно, вам не подходят
настройки по умолчанию, которые предлагает OpenGL. Так что, придется
еще немного потрудиться. Нужно сделать две вещи. Первое - это разрешить
нужные вам опции с помощью glEnable и, здесь же, настроить параметры ламп,
если вы используете освещение. Второе - надо обрабатывать сообщение об
изменениях размера вашего окна. Тут вы указываете ту часть окна, где
у вас будет располагаться контекст OpenGL. До этой главы у нас во всех
примерах размер нашего окна и окна OpenGL совпадали, но, вообще говоря,
это необязательно. Вывод OpenGL может занимать только часть окна, а в
остальной части вы можете разместить свои компоненты: кнопки, поля ввода
и т.п. Далее, вы должны указать тип проекции: перпективная или параллельная.
В перспективной проекции две параллельных прямых будут сходиться вдалеке.
В параллельной же проекции они всегда будут оставаться параллельными.
И последнее, вы устанавливаете точку, где находится ваш глаз; точку,
куда вы смотрите, и вектор, который принимается за направление вверх. У
меня этот вектор во всех примерах - (0,1,0), т.е. ось Y направлена вверх.
|