Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
25 / 14 / 3
Регистрация: 12.08.2011
Сообщений: 276

Не могу найти книгу по OpenGL (C++)

14.07.2014, 16:55. Показов 960. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Решил вспомнить OpenGL, когда то уже занимался, но потом на время оставил это дело... Теперь пытаюсь найти ту книгу по которой изучал его. Книга была очень понятной и простой.
Могу описать пару первых примеров из книги:
1) Создается консольный проект... дальше в нем пишется простой код для запуска окна синего цвета с названием "Simple"
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <GL/glut.h> 
 
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut32.lib")
 
void RenderScene()
{
  /* glClear( GLbitfilld mask ) - функция, очищающая буфер или комбинацию
  ** буферов. */
  glClear(GL_COLOR_BUFFER_BIT);
 
  /* glFlush( void ) - функция указывает выполнить все невыполненные функции. */
  glFlush();
}
 
void SetupRC()
{
  /* glClearColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) -
  ** функция устанавливает цвет для очистки экрана. */
  glClearColor(0.60f,0.40f,0.70f,1.0f);
}
 
void main () //точка входа основной программы
{
  /* glutInitDisplayMode( usingned int mode ) - сообщает GLUT, какой тип режима
  ** отображения использовать при создании окна mode. */
  glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
 
  /* glutCreateWindwo( const char * title ) - создает окно на экране. */
  glutCreateWindow("Simple");
 
  /* glutDisplayFunc( void (*func)(void) ) - функция указывает на функцию, которая
  ** отвечает за рисование в окне. */
  glutDisplayFunc(RenderScene);
 
  /* SetupRC( void ) - функция, которая не относиться ни к GLUT, ни к OpenGL,
  ** в которой выполняется вся инициализация OpenGL, перед визуализацией. */
  SetupRC();
 
  /* glutMainLoop( void ) - функция запускает оболочку GLUT. */
  glutMainLoop();
}


2) Потом в окне рисуется красный квадрат (Вложение 419665) и делается обработка изменения размера окна, так чтобы квадрат пропорционально менялся.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <GL/glut.h>
 
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut32.lib")
 
void ChangeSize( GLsizei w, GLsizei h )
{
  if (h != 0) // предотвратить деление на 0
    {
      /* glViewport( GLint x, GLint y, GLsizei width, GLsizei height ) - функция
      ** определения поля просмотра. */
      glViewport( 0, 0, w, h );
 
      /* Обновление системы координат */
      glMatrixMode( GL_PROJECTION );
      glLoadIdentity();
      /* ---------------------------- */
 
      GLfloat aspectRatio = (GLfloat)w / (GLfloat)h;
 
      /* glOrtho( GLdouble left, GLdouble right, GLdouble bottom,
      **          GLdouble top, GLdouble near, GLdouble far ) - функция
      ** для представления объема отсечения ортографической проекции. */
      if (w <= h)
        glOrtho( -100.0,
                 100.0,
                 -100 / aspectRatio,
                 100.0 / aspectRatio,
                 1.0,
                 -1.0
                 );
 
      else
        glOrtho( -100.0 * aspectRatio,
                 100.0 * aspectRatio,
                 -100.0,
                 100.0,
                 1.0,
                 -1.0
                 );
 
      glMatrixMode( GL_MODELVIEW );
      glLoadIdentity();
    }
}
 
void RenderScene()
{
  /* glClear( GLbitfilld mask ) - функция, очищающая буфер или комбинацию
  ** буферов. */
  glClear(GL_COLOR_BUFFER_BIT);
 
  /* glColor3f( GLfloat red, GLfloat green, GLfloat blue ) - функция устанавливает цвет
  ** для будущих операций рисования. */
  glColor3f(1.0f,0.0f,0.0f);
    glRectf(-25.0f, 25.0f, 25.0f, -25.0f); // рисуем прямоугольник
 
  /* glFlush( void ) - функция указывает выполнить все невыполненные функции. */
  glFlush();
}
 
void SetupRC()
{
  /* glClearColor( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) -
  ** функция устанавливает цвет для очистки экрана. */
  glClearColor(0.0f,0.0f,1.0f,1.0f);
}
 
void main() //точка входа основной программы
{
  /* glutInitDisplayMode( usingned int mode ) - сообщает GLUT, какой тип режима
  ** отображения использовать при создании окна mode. */
  glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
 
  /* glutCreateWindwo( const char * title ) - создает окно на экране. */
  glutCreateWindow("Simple");
 
  /* glutDisplayFunc( void (*func)(void) ) - функция указывает на функцию, которая
  ** отвечает за рисование в окне. */
  glutDisplayFunc(RenderScene);
 
  /* glutRechapeFunc( void (*func)(int width, int height) ) - функция, реагирующая на
  ** изменение окна, указывает на функцию для обновления системы координат. */
  glutReshapeFunc(ChangeSize);
 
  /* SetupRC( void ) - функция, которая не относиться ни к GLUT, ни к OpenGL,
  ** в которой выполняется вся инициализация OpenGL, перед визуализацией. */
  SetupRC();
 
  /* glutMainLoop( void ) - функция запускает оболочку GLUT. */
  glutMainLoop();
}


Помогите найти эту книжку...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2014, 16:55
Ответы с готовыми решениями:

Не могу найти книгу!
Очень хочется почитать книгу по программированию игр, но возникла проблема с поиском ее на русском.. Game Programming In C++: Start To...

Не могу найти книгу
кароч мне сказали что книга про си программирование авторы кернинг и ритчи!киньте ссылку или лучше скажите полное название,а то поисковики...

Не могу найти книгу по тестированию ПО (QC)
Необходимо найти книжку на английском, где описаны данные методики: 1 Algorithm complexity 2 Equivalence class partitioning ...

2
 Аватар для dimabubyakin
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
14.07.2014, 23:47
По-моему вот это http://ru.scribd.com/doc/80491923/Red-Book
1
25 / 14 / 3
Регистрация: 12.08.2011
Сообщений: 276
15.07.2014, 06:36  [ТС]
Цитата Сообщение от dimabubyakin Посмотреть сообщение
По-моему вот это http://ru.scribd.com/doc/80491923/Red-Book
Спасибо, есть уже такая, хорошая книжка, но это не она ...

Добавлено через 1 час 22 минуты
Всё книга найдена
Ричард С.Райт-мл. и Бенджамин Липчак "OpenGL. Супер книга. Третье издание."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2014, 06:36
Помогаю со студенческими работами здесь

Не могу найти нужную книгу
Судоплатов С. В. , Овчинникова Е. В. Математическая логика и теория алгоритмов: учебник 3 издание. Помогите найти и скачать. Заранее...

Нигде не могу найти книгу
Все привет. Подскажите где можно взять вот такую книгу автор Кенин &quot;Практическое руководство системного администратора&quot; или может...

Где могу найти книгу по теории?
Привет! Подскажите пожалуйста где я могу прочитать темы: Функции Терма, Суперпозиция рекурсивных функций, Свойства частично рекурсивных...

Не могу найти книгу в электронном виде
Помогите пожалуйста если у кого есть такая кника в электронном виде буду очень благодарен! 1. Акулов О.А. Информатика. – М: Омега-Л, -...

Не могу найти книгу С++ Занимательное программирование" С.Симонович, Г.Евсеев
Помогите найти книгу С++ Занимательное программирование&quot; С.Симонович, Г.Евсеев В интернете гуглил, не могу найти. Выдает только про...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru