Вторник, 19 Марта 2024, 13:33

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [354]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [144]
Статьи о программах для создания игр, уроки и описания.
Софт [39]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [160]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [128]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На каких мобильных устройствах вы играете?
Всего ответов: 952
Главная » Статьи » Создание игр

С++.Подключение и опыт работы с библиотекой glut

Подключение и опыт работы с библиотекой glut

Язык C++

В этой статье я расскажу как установить графическую библиотеку glut, и покажу вам самый элементарный пример программы с его использование, пользуясь средой разработки "Microsoft Visual C++ Express 2010"
Glut предназначен для создания/манипуляции окон, вывода графики.Так же glut прекрасно подходит для освоения OpenGL.
Загрузка и распаковка

Ну, что ж, приступим.Для начала скачаем Glut c сайта OpenGL.Выбираем версию под вашу операционную систему.В разделе "Other GLUT Information/Downloads".(*Под Windows cсылка называется Nate Robin's GLUT for Windows page*)Скачиваем архив.Вас перебрасывает на страницу с вариантам архивов. Выбираем glut-3.7.6-bin.zip (117 KB)(либо если есть, версию по новее) .
В архиве мы видим:
  • glut.def
  • glut.h
  • glut32.dll
  • glut32.lib
  • README
    Извлекаем файлы в любую из папок.Из всех файлов glut.def и README можно удалить.
    Процесс установки

    1)Начнём с glut32.dll.Его мы должны перекинуть по этому адресу:
    C://Windows/System32
    2)glut32.lib надо перекинуть по этому адресу:
    C://Program files/Microsoft Visual Studio/VC/lib
    3)Для glut.h Мы создадим папку по адресу .../VC/include , назовём её GL.И в эту папку перекинем glut.h.
    (Таким же образом можно установить библиотеки gl.h и glu.h все файлы можно скачать по отдельности здесь)
    4)Открываем Microsoft Visual C++.Создаём проект.(Win32->Консольное приложение(пустой проект))
    5)Правой кнопкой жмём на проект ->Cвойства->Открываем вкладку "Компоновщики".В "Дополнительных зависимостях"пишем:
    opengl32.lib glut32.lib glu32.lib
    Установка завершена!
    Первая программа с glut

    Перейдём к программе написанной с помощью glut.
    Для подключения заголовочного файла нам нужно написать:
    Код
    #include <GL/glut.h>

    Продолжим:
    Код
    #include <GL/glut.h>
    int main(int argc, char **argv)
    {
      glutInit(&argc, argv); //Передаём параметры функции main
      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); /*Иницилизируем дисплей с одним буфером(GLUT_SINGLE) в фрмате RGB 24 битный цвет*/
      glutInitWindowSize(700, 700); /*Устанавливаем размер окна(700 на 700 пикселей)*/
      glutInitWindowPosition(100, 740); /*Расположение окна (x,y)*/
      glutCreateWindow("First window!"); /*Команда для создания окна;Название окна*/
      glClearColor(1.0, 1.0, 1.0, 1.0);/*Заполним экран белым фоном*/
      glMatrixMode(GL_PROJECTION); /*Настроим 2-х мерный вид*/
      glLoadIdentity();
      glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); /*Задаём в каких пределах изменяеются координаты x,y,z*/
      glutDisplayFunc(display);/*Объявляем функции рисования, которую мы создадим позже*/
      glutMainLoop(); /*Буквально это - функция, завершающая описание окна,переводящая нас в основной цикл*/
    }

    Теперь зададим функцию рисования.
    Код
    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT); /*Функция очищения экрана*/
    glBegin(GL_LINES);//начало рисования линий
      glColor3f(1.0, 0.0, 0.0); //цвет красный
      //Нарисуем квадрат
      glVertex2f(0.4, 0.4);//координаты начальной точки лини
      glVertex2f(0.4, 0.8);//координаты конечной точки линии
      //
      glVertex2f(0.4, 0.8);/*2f - означает что рисуем мы в 2-х мерном пространстве*/
      glVertex2f(0.8, 0.8);
      //
      glVertex2f(0.8, 0.8);
      glVertex2f(0.8, 0.4);
      //
      glVertex2f(0.4, 0.4);
      glVertex2f(0.8, 0.4);
      glEnd();
    glFlush(); /*Отрисовывает всё, что мы описали*/
    }

    Исходный код:
    Код
    #include <GL/glut.h>
    using namespace std;

    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT);  
    glBegin(GL_LINES);
      glColor3f(1.0, 0.0, 0.0);
      glVertex2f(0.4, 0.4);
      glVertex2f(0.4, 0.8);
    //
      glVertex2f(0.4, 0.8);
      glVertex2f(0.8, 0.8);
    //
      glVertex2f(0.8, 0.8);
      glVertex2f(0.8, 0.4);
    //
      glVertex2f(0.4, 0.4);
      glVertex2f(0.8, 0.4);
      glEnd();
    glFlush();  

       
    }

    int main(int argc, char **argv)
    {
      glutInit(&argc, argv);
      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
      glutInitWindowSize(240, 240);
      glutInitWindowPosition(100, 740);
      glutCreateWindow("First window!");
      glClearColor(1.0, 1.0, 1.0, 1.0);
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
      glutDisplayFunc(display);
      glutMainLoop();
    }

    Потренируйтесь с функцией:
    Код
    glVertex2f();

    Поэкспериментируйте с размерами экрана:
    Код
    glutInitWindowSize();

    Поэкспериментируйте с цветом фона:
    Код
    glClearColor();

    Для удобства я советую нарисовать систему координат.
    Запускаем и наслаждаемся!
    Результат:

    Всем спасибо за внимание.Надеюсь моя статья поможет новичкам.
  • Категория: Создание игр | Добавил: goldsphere (20 Марта 2012) | Автор: goldsphere
    Просмотров: 93141 | Комментарии: 10 | Рейтинг: 4.8/45 |
    Теги: Библиотека разработки, C++, glut, Пример работы, Microsoft Visual C++, программирование, графика, OpenGl, Работа с Glut, Windows
    Дополнительные опции:
    Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

    Игровые объявления и предложения:
    Если вас заинтересовал материал «С++.Подключение и опыт работы с библиотекой glut», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

    Всего комментариев: 10
    +1-
    9 BlackBamp   (18 Января 2013 16:55) [Материал]
    А если я буду пользоваться библиотекой freeglut , ни чего не изменится там же функций наверно одинаковые ?

    +1-
    10 goldsphere   (03 Октября 2013 10:51) [Материал]
    goldsphereБольшинство - да. Этот пример точно должен запуститься.

    +2-
    6 Saitei   (20 Июня 2012 16:31) [Материал]
    glColor3f(1.0, 0.0, 0.0); //цвет красный

    Red Green Blue (RGB)?

    +2-
    7 goldsphere   (20 Июня 2012 16:33) [Материал]
    goldsphereИменно

    +2-
    8 Saitei   (20 Июня 2012 17:25) [Материал]
    Ясненько. Так веселее))

    +2-
    3 Els   (22 Апреля 2012 15:18) [Материал]
    продолжай и что-то получиться

    +1-
    4 goldsphere   (23 Апреля 2012 09:37) [Материал]
    goldsphereчто-то?

    +3-
    2 goldsphere   (20 Апреля 2012 14:50) [Материал]
    goldsphereХочу сказать, что подобный способ подходит ко всем библиотекам и даже к движкам. Ну это я для новичков говорю.

    +3-
    1 Drofa   (09 Апреля 2012 23:19) [Материал]
    Очень всё понятно по пунктам и действиям.
    пиши дальше хорошо получилось wink

    +2-
    5 goldsphere   (23 Апреля 2012 14:36) [Материал]
    goldsphereСпасибо smile

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Поиск по сайту
    10 случ. движков
  • C64Studio
  • Marauroa Engine
  • KorGE
  • RPG Studio
  • Game Editor
  • Starling
  • EMG Studio
  • GDevelop
  • Playir
  • Dizzy Quest Editor
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг