Меню Рубрики

Установка glut для dev

Установка glut для dev

How to Install Dev-C++ and the GLUT Libraries
for Compiling OpenGL Programs with ANSI C

(version of July 16, 2009)

These notes explain how to compile programs written in ANSI C with OpenGL and GLUT using the Dev-C++ compiler.

Bloodshed Dev-C++ is a free C++ compiler and development environment for Windows operating systems. Like most C++ compilers, it also can be used to compile ANSI C. By installing the GLUT header and library files, it can be used to write programs that use OpenGL. This is needed to run programs for Edward Angel’s textbook, Interactive Computer Graphics 5 th edition and possibly other computer graphics texts.

These notes do not explain how to compile OpenGL with C++ . The 6 th edition of Angel’s book uses C++ which will not work with these notes.

These instructions have been tested on a small variety of Windows 2000 and Windows XP systems. These systems come with the files needed for OpenGL, but not the files needed for GLUT.

Dev-C++ does not work well with Microsoft’s Vista. The problem, and a possible fix, is discussed here: http://aresio.blogspot.com/2007/06/vista-and-dev-cpp.html but I have not tested this information.

I. Download Dev-C++ from http://www.bloodshed.net/dev/devcpp.html and install it.

Get Dev-C++ 5.0 beta 9.2 ( (9.0 MB) with Mingw/GCC 3.4.2 Although this is a «beta» version, it works perfectly fine. Click on SourceForge to go to a list of download sites and pick one. The file will be something like devcpp4.9.9.2_setup.exe. Save this file in a place like C:\Temp.

When the download is complete, click on the «open» button to start the installation process. (Or go to C:\Temp andDouble click on devcpp4.9.9.2_setup.exe). You will see a few screens that ask you to pick a language (English) and to agree to the license terms. Choose a «typical» installation.

Accept the suggested destination for the installation:

Many subdirectories and files are extracted to the destintion:

Answer «yes» when it asks if you wish to install Dev-cpp for all users. Note: if the installation fails, re-install and try «no» for this.

A screen says the installation is complete:

Keep the check mark in the box. Click on «Finish». A first-time configuration screen appears:

Pick «English» and «New Look». In the next several screens, hit «Yes» for its suggestions.

Eventually you are done. Click «OK».

II. DEV-C++ starts up. Try out the installation with a simple C program.

The program starts up automatically.

Click File/New/Project. Pick a name for the project (such as «myProject»). Click «C Project». Click on «Empty Project». Click «OK».

In «Create New Project», click «save» (later on you will probably want to create separate subdirectories for your various projects.).

Click «File/New/Source File» and in «Add source file to current project» click «Yes». You now get a screen where you can edit the source file.

Type in a simple C program, as below. Now click «File/Save As» and save the file as «hello.c» (or other name.) Important: be sure that the file extension is .c . With any other extension (such as the suggested .cpp) you will have problems compiling.

Now click «Execute/Compile and Run»

The program will (hopefully) compile, run, and write its output to a DOS window. If you have the system(«pause») statement in your program, the output will stay in the window until you hit a key. Another way to run the program (after it has been compiled) is to start a DOS window outside of the Dev-Cpp system, then navigate to the subdirectory that holds your project, and type hello.exe.

At this point, the compiler and development environment has been installed. You should find Dev-C++ listed under «Programs» on the «Start» menu and will now be able to write, compile, and run C (and C++) programs. You will have include files, libraries, and dll’s for OpenGL (and all other standard packages) but not GLUT. GLUT manages the windows and other user interface components needed for OpenGL programming, and needs to be separately installed.

Читайте также:  Установка поддона картера дэу нексия

If you do not need GLUT , you can quit now.

III. Download and install GLUT

To run OpenGL with GLUT (which is what the programs in Angel’s book use), you need to get three files and place each file in its proper directory. All the files you need (and more) are contained in one zip file.

Download GLUT files from http://chortle.ccsu.edu/Bloodshed/glutming.zip Download the file glutming.zip Save the zip file in some convenient location (perhaps C:\temp).

Double click on glutming.zip (or otherwise unzip it). You will see the files that are in the zip archive. (Your un-zipping program will probably be diferent than the one shown here, but should work about the same.)

Click on «Extract» to extract all the subdirectories and files. Pick some convenient directory to extract them to (perhaps C:\temp\glutming). You only need three files, but extract all of them anyway.

Only three of the files in the various subdirectories are needed. Each of the three files should be put in a subdirectory with other files of its type. Use Explorer to move the files to where they are needed.

Note: If you only see some of these files listed in Explorer, click on «View/Options/View» and then select the radio button «Show all Files».

glut.h — copy this file to C:\Dev-Cpp\include\GL

Copy from your «unzipped» subdirectories (wherever they are):

libglut32.a — copy this file from your unzipped directories to C:\Dev-Cpp\lib

There may be a newer version of this file there, already. Replace that version with the one you unzipped (if you keep the newer version your programs will not link correctly.)

Copy from your «unzipped» subdirectories:

glut32.dll — move this file to C:\WINNT\System32, or similar location.

The location for this file depends on your operating system. The directory where it goes is the directory that holds the dynamic load libraries (*.dll). An easy way to find where it should go is to look for glu32.dll (use «Search» from the start menu).

The directory to use should also have the files glu32.dll and opengl32.dll. These should have come with your operating system.

IV. Test Dev-cpp with GLUT

The essential step in compiling and running a C program that contains OpenGL and GLUT functions is to tell the linker where the libraries are. This is done by clicking Project/Project Options/Parameters/Add Library or Options and then navigating to the libraries you need to include: libopengl32.a, libglu32.a, and libglut32.a. The libraries should be added in that order.

a. Create a subdirectory for a project. Do this first, before you start Dev-Cpp. Create a new subdirectory with «Explorer» by clicking «File/New/Folder».

For example, create a folder C:\GLproject.

c. Start a new project by clicking File/New/Project. In the panel that pops up, name the project something like «rectangle», click on «empty project» and «C»: Click OK.

Note: For compiling with OpenGL you must create a project. You need to have a project (not just a single C file) in order to link in the OpenGL libraries.

d. In the next panel, navigate to your folder C:\GLproject, and click «Save».

e. In Dev-C++, click «File/New/Source File» and then in the next panel «Add to Project» click «yes». Click «File/Save As» and then give the file a name. Navigate to your project subdirectory to save the file in it. Name the file something like «rectangle.c»

Be sure that the file names ends with «.c» anything else will cause big problems.

f. Click and drag your mouse over the following program so that it is highlighted, then click «Edit/Copy» from the browser’s menu bar.

g. Now click in the editing window of Dev-cpp and then click «Edit/Paste» in its menu bar. The program will appear in the editing window.

h. Click «File/Save». The file in your project directory should now contain an OpenGL program.

Читайте также:  Установка блокировки дифференциала иж техно

i. Tell Dev-cpp what libraries need to be linked. Click «Project/Project Options».

j. Now click «Parameters». Click the «Add Library or Object» button and navigate to the libraries that should be added, found under C:\Dev-cpp\lib

Add them in that order (only). Notice that the slashes will appear in Unix style «/» rather than DOS-style «\».

When you are done adding the three libaries, you should see:

The exact pattern of «../../..» you see depends on how deep in the directory structure your source file lies.

k. Click «Execute/Compile and Run». The program should compile, link, and run:

If things don’t work (very common) click on the «Compile Log» tab for some confusing error messages. If you see something like the following, it means that you made a mistake in adding the libraries to the project:

Try to fix the list of libraries, or perhaps start over from scratch.

You now are finished, or have given up.


Программирование на OpenGl(freeglut), рисование примитивов

Приветствую тебя Хабраюзер! Сегодня в своей первой статье расскажу о программирование на OpenGl.

//Замечание: Вы также вместо freeglut’a(открытая альтернатива glut’у) можете использовать glut.

Для начала немного напишу о том что нужно скачать и установить, для того чтобы начать кодить на opengl(freeglut’e).

Для рисования на opengl мы будем использовать библиотеку freeglut(OpenGL Utility Toolkit — так сказать обертка для opengl). Файлы freeglut’a можно найти тут. Там же есть инструкции как это поставить на linux и windows(MSVC и MinGW). На linux freeglut ставится в несколько команд, а в windows в несколько кликов. Если возникнут проблемы с установкой можете написать мне, я распишу подробней как установить freeglut.

И так в начале давайте познакомимся с начальной инициализацией кода.
Обычно любой проект на freeglut содержит следующий код:

Разберем некоторые из вышеперечисленных функции поподробней:
Ф-я glutInitDisplayMode() может принимать разные параметры, но пока мы будем использовать только некоторые из них:

GLUT_RGB — Использование режима RGB(red|green|blue — красный|зеленый|синий — соответственно). Используется по умолчанию.
GLUT_SINGLE — окно с одиночным буфером. Этот режим используется также по умолчанию.
GLUT_DOUBLE — окно с двойным буфером.

Буфер — это область в которой временно хранятся данные.

Возникает вопрос, чем же одиночный буфер отличается от двойного? Двойной буфер работает слудующим образом: Есть два буфера, пока первый буфер отрисовывается на экране, второй буфер подготавливается и отрисовывается после того как отрисуется полностью первый буфер. Потом точно так же, только буферы меняются местами. Т.е. буферы отрисовываются по очереди. Зачем это нужно? Для того чтобы не возникало мерцания на экране. Думаю из выше написанного можно понять что значит одиночный буфер.

Ф-я glOrtho(left, right, bottom, top, zNear, zFar) — задает систему координат
параметр left означает на сколько единиц двинимся влево по оси oX
параметр right означает на сколько единиц двинимся вправо по оси oX
параметр bottom означает на сколько единиц двинимся вниз по оси oY
параметр top означает на сколько единиц двинимся вверх по оси oY
параметр zNear означает на сколько единиц двинимся вглубь по оси oZ
параметр zFar означает на сколько единиц двинимся вперед по оси oZ
Для более легкого понимания накатал рисунок:

Программирование примитивов на opengl:
Давайте приступим непосредственно к кодингу.
Небольшой код, который отрисовывает линию:

В ф-ии glBegin() задаем то, что хотим начать рисовать, она может принимать такие параметры как:

GL_POINTS — говорит программе о том что будем рисовать точку
GL_LINES — будем рисовать линию
GL_TRIANGLES — будем рисовать треугольник
GL_QUADS — будем рисовать прямоугольник

и другие параметры, с помощью которых можно объединять линии, рисовать группы треугольников, четырехугольников и многоугольники.
Ф-я glEnd() завершает рисование объета(ов)

Теперь давайте с помощью glBegin(GL_POINTS), glBegin(GL_LINES), glBegin(GL_TRIANGLES), glBegin(GL_QUADS) отрисуем точку, линию, треугольник и прямоугольник.

На этом думаю пора закончить, остальное опишу в следующих статьях. Если у вас есть, какие либо замечания, вопросы, пишите мне в личку или в комментариях. Если вы нашли какую то ошибку в описании или в коде прошу сообщить мне.

Читайте также:  Установка opencart на хостинг sprinthost


Библиотека GLUT. Урок 1. Инициализация.

Добро пожаловать в изучение OpenGl и Glut. Необходимые знания — геометрия пространства, базовые понятия графических примитивов — точка, ребро, пиксель, плоскость, полигон или фейс и т.д. и т.п. OpenGl является основным 3D набором инструментов разработчика, который пишет продвинутые графические приложения для работы с 3D графикой, разрабатывает игры под MacOS или Линукс ( напомню, что под Windows есть свой API — DirectX, тоже богатый на возможности, но поддержка OpenGl в ней также реализована).
Среда разработки — MS Visual Studio Ultimate 2012.
В этом разделе мы собираемся создать функцию main нашей программы. Функция main будет состоять из необходимой инициализации и цикл обработки событий.
Первый блок функции main будет инициализировать процедуры GLUT и создаст окно.
После GLUT входит в цикл обработки событий, получив контроль над приложением. GLUT будет ждать каждое следующее событие, проверяя, есть ли функция для его обработки.
Поэтому, прежде чем GLUT вступит в цикл обработки событий мы должны инициализировать те функции GLUT, которые мы хотим вызвать для обработки вызываемых событий.
Каждый раз для вызова функции GLUT, её( функцию) — нужно зарегистрировать.

Скелет нашей функции main.

void glutInit ( int * argc, char ** argv ) ;

* int argc — количество аргументов
* char** argv — их описание в виде указателя на строку

После инициализации GLUT, мы собираемся инициализировать окно приложения. Сначала установим положение окна, вернее его верхний левый угол. Для этого мы используем функцию glutInitWindowPosition.

void glutInitWindowPosition ( int x, int y ) ;

х — число пикселей от левой части экрана.
у — количество пикселей от верхней части экрана.

Далее мы выбираем размер окна. Для этого мы используем функцию glutInitWindowSize.

void glutInitWindowSize ( int w >int height ) ;

width — ширина окна;
height — высота окна;

Затем вы должны определить режим отображения с помощью функции glutInitDisplayMode.

void glutInitDisplayMode ( unsigned int mode ) ;

mode — определяет режим отображения;

Вы можете использовать режим , чтобы определить цвет, а также количество и тип буферов.
Предопределенных констант для определения цвета модели являются:
GLUT_RGBA или GLUT_RGB — выбирает окно RGBA.
GLUT_INDEX — выбирает режим индексированного цвета.
Режим отображения также позволяет выбрать одно-или двухместных буфера окна. Предопределенные константы для этого являются:
GLUT_SINGLE — режим одинарной буферизации.
GLUT_DOUBLE — режим двойной буферизации, — РЕЖИМ, ПОДХОДЯЩИЙ ДЛЯ АНИМАЦИИ.
Также существуют специализированные режимы буфера:
GLUT_ACCUM -буфер накопления.
GLUT_STENCIL — Буфер трафарета.
GLUT_DEPTH -буфер глубины.
Итак, предположим, вы хотите создать окно в цветовом пространстве RGB , с двойной буферизацией, с использованием буфера глубины. Все, что вам нужно сделать, это прописать соответствующие константы для того, чтобы создать необходимый режим.

glutInitDisplayMode ( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH ) ;

После этих шагов, окно может быть создано с помощью glutCreateWindow.

int glutCreateWindow ( char * title ) ;

title — имя создаваемого окна;

Функции рисования и регистрации обратных вызовов
Если вы запустите этот код свыше, вы получите пустое черное окно консоли, без окна OpenGL. Есть две вещи, которые нужно сделать прежде всего. Во-первых, указать GLUT, какие функции отвечают за визуализацию. Давайте создадим пример функции для рисования. Функции представлены ниже очищают буфер цвета и рисуют треугольник.

Название этой функции задаётся программистом. Однако теперь вы должны сказать GLUT что он должен использовать функции, которую мы только что написали для рисования. Это называется регистрации обратного вызова. GLUT будет вызывать функцию всякий раз, когда вы выберете её для рендеринга( отрисовнки ).
Так что давайте говорить GLUT, что функция renderScene должны использоваться всякий раз, когда окно требуется окрасить. GLUT имеет функцию, которая принимает в качестве параметра имя функции для использования при необходимости перерисовки.

void glutDisplayFunc ( void ( * funcName ) ( void ) ) ;

Пропись главного цикла программы. Бесконечный цикл, отрабатывающий все функции событий, зарегестрированные программистом.

void glutMainLoop ( void ) ; //главный цикл

Итоговый текст программы выглядит вот так:

Пробуем скомпилировать

Результат работы программы: окно размером 400*400 пикселей с заголовком «Урок 1» и белым треугольником внутри окна


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *