Open GL



             

Давайте что-нибудь изобразим


Самым простым объектом, с помощью которого можно увидеть всю мощь OpenGL, является сфера. Давайте попытаемся ее изобразить. Для этого надо создать новый проект в VisualC++, выполните следующие действия:

  • Запустите MSVisualC++6.0
  • Щелкните меню File->New->Win32 Console Application.
  • Выберете каталог и имя проекта, впишите - sphere, щелкните OK.
  • Я все свои проекты держу на диске D в каталоге Projects. Projects ветвится дальше на подкатологи с базами данных, утилитами, графикой и Java-приложениями. В общем, старайтесь присваивать разумные имена и вести разумную структуру каталогов. Это очень серьезная проблема.

  • Выберете An Empty Project, щелкните Finish.
  • Cкопируйте в каталог вашего проекта мой шаблон glaux.c и переименуйте его в sphere.c
  • Присоедините его к проекту. Project->Add To Project->Files
  • Щелкните Build->Set Active Configuration и установите тип проекта sphere - Win32 Release
  • Далее, щелкайте Project->Settings->Link->Object/library modules и добавьте туда opengl32.lib, glu32.lib и glaux.lib
  • Вставьте в функцию display следующий код:

    glColor3d(1,0,0); auxSolidSphere(1);

  • Теперь откомпилируйте и запустите Вашу программу.
    Меню Build->Execute Sphere.exe


    Исходный файл смотрите . Исполняемый файл .

    Тперь поясню назначение тех двух функций, что вы вставили в пункте 9. Функция glColor3d устанавливает текущий цвет, которым будут рисоваться фигуры. Тут нужно пояснить, как устанавливается цвет и общую философию в названии функций OpenGL. Цвет устанавливается четырьмя параметрами: красный, синий, зеленый и прозрачность. Эти параметры вариируются в диапозоне от нуля до единицы. Четвертый параметр нам пока не нужен, поэтому мы вызвали glColor с тремя параметрами. В этом случае, значение четвертого параметра, прозрачности, по умолчанию считается равным единице, т.е. абсолютно непрозрачным, ноль - будет абсолютно прозрачным. Так как в языке Си нет перегрузки функций, то применяется следующий синтаксис вызова функций - FuncionName[n=число параметров][тип параметров]. Доступны следующие типы:




      Содержание  Назад  Вперед