12.07.2015 Views

Февраль

Февраль

Февраль

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

codingМихаил Фленов/ www.vr-online.ru /Х-лаба #1Создание изображений с использованиембиблиотеки OpenGLЗадание: аппроксимировать заданную поверхность полигональной сеткой и средствамиOpenGL обеспечить для нее возможностьа) изображения в параллельной и перспективной проекции,б) удаления невидимых линий и поверхностей,в) реалистичного освещения,г) каркасного изображения,д) пространственных аффинных преобразований.Исходные данные, определяющие поверхность, должны считываться из текстовогофайла. Формат представления исходных данных разрабатывается студентами самостоятельно.В зависимости от номера студента в группе предоставляются на выбор следующиеповерхности: сфера с вырезами, конус с вырезами, цилиндр с вырезами и т.д.Сегодня в самом первом выпуске нашего революционного Х-проекта :) мы рассмотримлабу, которую задают на третьем курсе факультета прикладной математикив МАИ, (спецкурс «Компьютерная гра фика»). Я немного усложнил задание, так чточитай — будет интересно.УсложняемЧто такое «аппроксимировать поверхность»?Если посмотреть на фигуры, которые нампредлагают, то видно, что все они имеют формус изгибами. Невозможно создать в компьютернойграфике сферу, можно только рисовать точкии линии, а окружности создаются с помощьюбольшого количества линий (трехмерныеобъекты — из треугольников). Чем большелиний, тем более округлой будет получатьсяформа объекта. Аппроксимировать означаетсоздать объект, максимально приближенныйк реальному. А насколько приближенным егонужно сделать в этом задании? Ладно, выберемстепень соответствия на свое усмотрение.Данные необходимо загружать изфайла, но это же серьезное упущение! Отображениедолжно происходить полигональнымметодом, поэтому какая разница, какие данныев файле — сфера, цилиндр или пышные формыПамелы Андерсон? Достаточно одному студентувыполнить задание, а все остальные должнытолько чуть изменить формат файла и переменныев исходнике, чтобы идентичность кода не бросаласьв глаза. После этого нужно создать необходимуюфигуру в 3DS Max, сохранить ее в файле, и можносчитать, что задание выполнено. Мы усложнимзадачу и будем генерить фигуру программно.ИнициализацияИтак, давай напишем программку, котораябудет динамически формировать сферу. Для началасоздадим пустое Win32‐приложениеи сразу же добавим необходимые заголовочныефайлы, а именно:#include #include Первый заголовочный файл подключает функцииOpenGL, которые нам предстоит использоватьдля отображения сферы. Вторая строкаподключает математические функции./ 126xàêåð 02 /98/ 07

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!