Graphics & Media Lab. >> Курсы >> Курс Ю.М.Баяковского 2000

Компьютерная графика
О курсе
О курсе
Лекции
Лекции
Практикум
Практикум
FAQs
FAQs
Оценки
Оценки
Глоссарий
Глоссарий
Литература
Литература
 
Общие вопросы
Вопросы по заданиям
Задание №1
Задание №2
Задание №3
Задание №4
Задание №5
Задание №6

Общие вопросы
В:На какой адрес и в каком формате нужно отправлять выполненные задания?

О:Присылать задания по e-mail: assignN@graphics.cs.msu.su(где N - номер задания) в следующем виде:
.zip файл с именем, построенным следующим образом:
имя начинается с цифры - это последняя цифра в номере вашей группы (например, если у вас 206 группа, то название файла будет начинаться с цифры 6), дальше первые три буквы вашей фамилии (латинским шрифтом), далее - знак подчеркивания и три первые буквы имени (латинским шрифтом)
Пример: Иванов Андрей из 202 группы должен прислать нам .zip файл с именем: 2iva_and.zip

Теперь о том, какие файлы должен содержать ваш .zip - файл

  1. исходники 
  2. *.exe 
  3. файл readme (что работает, что не работает, что дополнительно реализовано и т.п., на какой платформе и на каком ПО программа написана и оттестирована) 
Внимание: номер задания и его название, фамилия и имя автора, номер группы, - суть обязательные атрибуты READ.ME. Та же информация должна как комментарий содержаться в исходных текстах программы.

В: Можно ли приносить выполненные программы на дискетах?

О: Да, можно. Время будет объявляться дополнительно по каждому заданию..

Вопросы по заданиям

Задание №3

В: Как вычислять итоговый цвет, если задан коэффициент непрозрачности (opacity)? Для каждой компоненты цвета (Красной, Зеленой, Синей) в отдельности или как-то по другому?
О: Да, для каждой компоненты применяется  формула
I = I1(a) + I2(1-a), где

a - тот самый коэффициент непрозначности
I - итоговый цвет удара; 
I1 - цвет удара;
I2 - цвет исходной картинки в области удара.

Итоговый цвет получается из трех вычисленных компонент. (RGB)

Задание №5

В: Я компилирую программу в Borland C++ 5.01. Почему при попытке воспользоваться функцией библиотеки Glaux для загрузки текстуры программа "падает"?
О: Внимательнее читайте пособие! Там сказано, что это необъяснимая ошибка возникает только при работе с Borland C++ 5.01. Если Вы хотите корректно загружать текстуры, либо используйте собственную функцию загрузки изображения текстуры ( наиболее предпочтительный вариант), либо компилируйте программу с использованием Microsoft Visual C++.

В: Можно ли автоматически генерировать нормали в OpenGL?
О: Для произвольной геометрии - нет. Автоматическая генерация нормалей возможна только для примитивов из библиотеки Glu. 

В: Где я могу найти примеры использования OpenGL?
О: Огромное количество разнообразных примеров использования OpenGL можно найти в секции Developers and Coding Examples на сайте http:://www.opengl.org
Большое количество ссылок собрано на страничке http://reality.sgi.com/mjk/

В: Как использовать OpenGL при программировании под Win32 ( без использования Glut)
О: Вопрос очень объемный, поэтому ограничимся ссылкой на довольно подробный источник информации: http://trant.sgi.com/opengl/examples/win32_tutorial/win32_tutorial.html
Если Вы программируете под MS Visual C++, большое количество информации можно найти в MSDN.

В: Почему в моей программе неправильно работают текстуры/освещение/туман?
О: Часто такие проблемы бывают вызваны попытками задать позицию и ориентацию камеры в матрице проекции. На первый взгляд, все выглядит нормально, однако это не так. Преобразовани камеры должны быть скомбинированы с модельными преобразованиями и в модельно-видовой матрице. Некоторые вычисления, связанные с освещением, визуализацией тумана, а также с тектурированием, базируются на информации о поворотах камеры и смещении объектов, а матрица проекции не учитывается.

В: Почему не появляются тектуры?
О: Возможны следующие причины:

  • Не включен режим GL_TEXTURE_2D
  • Неправильные текстурные координаты
  • glBindTexture вернула ошибку
В: Каким образом можно перейти в полноэкранный режим?
О: Если Вы программируете с помощью Glut, для этого служит специальная команда void glutFullScreen()

Задание №6

В: После нескольних вызовов glRotate() объекты вращаются вокруг неправильной оси. Почему?
О: Это следствие проблем использования 3 углов для описания ориентации в трехмерном пространстве и обычно на нее обращается внимание в книгах по компьютерной графике. Обычным решением является другое представление для ориентации в пространстве, например, квартенионы.

http://www.3dgamedev.com/articles/eulers_are_evil.htm

На основную
На главную
 
Graphics & Media Lab. >> Библиотека | Курсы | Графикон
 
Hosted by Graphics & Media Lab
http://graphics.cs.msu.su
lab_logo
Поддержка и дизайн: Алексей Игнатенко