и в поле Object/library modules набрать названия нужных библиотек: opengl32.lib, glu32.lib, glut32.lib и, если надо, glaux.lib.
• Для компиляции выбрать Build→Build program.exe, для выполнения - Build→Execute program.exe.
• Чтобы при запуске не появлялось текстовое окно, надо выбрать Project→Settings→Link и в поле Project Options вместо ‘subsystem:console’ набрать ‘subsystem:windows’,и набрать там же строку ‘/entry:mainCRTStartup’
Когда программа готова, рекомендуется перекомпилировать ее в режиме ‘Release’ для оптимизации по быстродействию и объему. Для этого сначала надо выбрать Build→Set Active Configuration… и отметить -Win32 Release, а затем заново подключить необходимые библиотеки.
Создание приложения в среде Borland C++ 5.02
Как и для Visual C++, сначала надо обеспечить наличие файлов glut.h, glut32.lib, glut32.dll в каталогах…\BorlandC\Include\Gl,…\BorlandC\Lib,…\Windows\System соответственно. Также в этих каталогах надо проверить наличие файлов gl.h, glu.h, opengl32.lib, glu32.lib, opengl32.dll, glu32.dll, которые обычно входят в состав BorlandC++ и Windows. При этом надо учитывать, что версии Microsoft файлов opengl32.lib, glu32.lib, glut32.lib для Borland C++ не подходят и следует использовать только совместимые версии. Чтобы создать такие версии, надо использовать стандартную программу ‘implib, которая находится в каталоге…\BorlandC\Bin. Для этого надо выполнить команды вида implib…\BorlandC\Lib\filename.lib…\filename.dll для перечисленных файлов, которые создают нужный *.lib файл из соответствующего *.dll файла. Кроме того, надо отметить, что компилятор BorlandC не может по неизвестным причинам использовать файл glaux.lib, входящий в состав BorlandC++5.02, при компиляции приложения, использующего библиотеку GLAUX, поэтому возможно от этой библиотеки придется отказаться. Для создания приложения надо выполнить следующие действия:
• Создание проекта: для этого надо выбрать Project→New Project и заполнить поля в окне Target Expert следующим образом: в поле Platform выбрать Win32,в поле Taget Model выбрать Сonsole, нажать Advanced и отменить выбор пунктов *.rc и *.def.
• Подключить к проекту библиотеки OpenGL. Для этого надо выбрать в окне проекта название исполняемого файла проекта (*.exe) и нажав правую кнопку мыши выбрать в контекстном меню пункт Add node. Затем надо определить положение файлов opengl32.lib, glu32.lib, glut32.lib.
• Для компиляции выбрать Project→Build All, для выполнения Debug-›Run.
Результатом выполнения этой программы является построение тетраэдра с вращающимися вокруг него кольцами, на которые нанесена текстура. В среде MS Visual C++ программа может компилироваться без изменений, а при компиляции в Borland C++ придется закомментировать вызов и описание функции TextureInit(), после чего не будет проводиться наложение текстур. Как было сказано выше, попытка использовать функции из библиотеки GLAUX приводит к сообщению об ошибке при компиляции программы.
При компиляции программы в MS Visual C++ файл ‘texture.bmp’ надо поместить в каталог проекта или указать полный путь к нему, используя символ ‘/’. Если путь не указан, то при запуске исполняемого файла из операционной системы, файл с текстурой должен находиться в том же каталоге.
>#include
>#include
>#include
>#define TETR_LIST 1
>GLfloat light_col[] = {1,1,1};
>float mat_diff1[]={0.8,0.8,0.8};
>float mat_diff2[]={0.0,0.0,0.9};
>float mat_amb[]= {0.2,0.2,0.2};
>float mat_spec[]={0.6,0.6,0.6};
>float shininess=0.7*128, CurAng=0, RingRad=1, RingHeight=0.1;
>GLUquadricObj* QuadrObj;
>GLuint TexId;
>GLfloat TetrVertex[4][3], TetrNormal[4][3];
>//--Вычисление нормали к плоскости, задаваемой точками a,b,c----------//
>void getnorm (float a[3],float b[3],float c[3],float *n) {
> float mult=0;
> n[0]=(b[1]-a[1])*(c[2]-a[2])-(b[2]-a[2])*(c[1]-a[1]);
> n[1]=(c[0]-a[0])*(b[2]-a[2])-(b[0]-a[0])*(c[2]-a[2]);
> n[2]=(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]);
> //--Определение нужного направления нормали: от точки (0,0,0)---------//
> for (int i=0;i<3;i++) mult+=a[i]*n[i];