Суббота, 20 Апреля 2024, 00:55

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » как рисовать в opengl? (opengl)
как рисовать в opengl?
afqДата: Среда, 22 Ноября 2017, 06:37 | Сообщение # 1
Разработчик
Сейчас нет на сайте
В книге прочитал что в версии opengl 3.1 был убран режим отображения с использованием
glBegin(), glEnd(). Но потом добавили для режима совместимости.

Какие тогда способы остаются? glDraw*? Еще есть какие нибудь. Тоесть, теперь рисовать лучше glDraw?

Добавлено (22 ноября 2017, 06:37)
---------------------------------------------
Есть кто нибудь с opengl работающие, вы знали об этом? Как рисуете, шейдерами?

Сообщение отредактировал afq - Среда, 22 Ноября 2017, 06:36
OrdanДата: Среда, 22 Ноября 2017, 06:42 | Сообщение # 2
Главный зомби
Сейчас нет на сайте
Рисую в опенГЛ лишь 2д текстурами

mapTexture.Bind;
glPushMatrix;
x3:=GX*50-GY*50+0;
y3:=GX*29+GY*29+0;
glTranslatef(x3,y3,0);
glColor3f(1.0,1.0,1.0);
Kvadrat(500, 288, 100, 58, 1,1,false);
glPopMatrix;

procedure Kvadrat(XSize, YSize, sprX, sprY, strok, stolb:integer; flip:boolean);
begin
if (flip=true) then // вариант с зеркальным отражением
begin
glBegin(GL_QUADS);
glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(0,0);
glTexCoord2f( (0+(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(sprX,0);
glTexCoord2f( (0+(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(sprX,sprY);
glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(0,sprY);
glEnd;
end
else // вариант без зеркального отражения
begin
glBegin(GL_QUADS);
glTexCoord2f( (0 +(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(0,0);
glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(sprY+(strok-1)*sprY)/YSize); glVertex2f(sprX,0);
glTexCoord2f( (SprX+(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(sprX,sprY);
glTexCoord2f( (0 +(stolb-1)*sprX)/XSize, 1-(0+(strok-1)*sprY)/YSize);glVertex2f(0,sprY);
glEnd;
end;
end;


Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
Snake174Дата: Среда, 22 Ноября 2017, 06:59 | Сообщение # 3
участник
Сейчас нет на сайте
На Java


Не следует обманывать инспектора
Pipmak Assistant
Love2D Exporter
Love2D-Helpers
Old Consoles Games


Сообщение отредактировал Snake174 - Среда, 22 Ноября 2017, 07:00
afqДата: Среда, 22 Ноября 2017, 09:43 | Сообщение # 4
Разработчик
Сейчас нет на сайте
Ordan, в 4 opengl даже gluLookAt нет, и работы с матрицами, и glTranslate, glRotate, все это в другой либе есть, или похожее на это. Это я в книге вычитал "OpenGL 4. Язык шейдеров".
OrdanДата: Среда, 22 Ноября 2017, 09:53 | Сообщение # 5
Главный зомби
Сейчас нет на сайте
Цитата afq ()
Это я в книге вычитал "OpenGL 4. Язык шейдеров".

Я не спец в опенГЛе но звучит как ересь, если их нет в привычном виде значит они есть в другом виде. У меня версия 4.2 и все есть.


Цитата недели: Из-за леса, из-за гор, кишки, месиво, хардкор. (Берсерк ТВ-2)

Мои проекты ТЫК
Мои видяхи на ютубэ ТЫК

Если ты споришь с идиотом, вероятно тоже самое делает и он.
afqДата: Среда, 22 Ноября 2017, 12:24 | Сообщение # 6
Разработчик
Сейчас нет на сайте
Ordan, у меня тоже есть, но пишут что это для совместимости, а так, она еще в 3.0 версии устарело, и в 3.1 исключили. Потом как core ( какой то ) сделали, чтобы старые функции работали. В общем лучшего исчерпывающего ответа не найти, кроме как прочитать в этой книге. Так что если вдруг захочется прочитать такую книгу, то там написано более развернуто.
XakepДата: Среда, 22 Ноября 2017, 12:49 | Сообщение # 7
めちゃくちゃちゃ
Сейчас нет на сайте
Цитата Ordan ()
Я не спец в опенГЛе но звучит как ересь, если их нет в привычном виде значит они есть в другом виде. У меня версия 4.2 и все есть.

все правильно, нету больше этого, для работы с матрицами есть отдельные библиотеки, на C++ в основном - это glm, сейчас в OpenGL все делается через шейдеры, поэтому все эти вызовы устарели как и glPushMatrix, glPopMatrix итд.
afq glBegin и glEnd давно устарели, они работают намного медленнее чем glDraw*, именно их и используй для рисования, гугли VBO/VAO. Отличный ресурс для изучения нового OpenGL (ну как нового, давно уже не так): http://www.opengl-tutorial.org/


Сообщение отредактировал Xakep - Среда, 22 Ноября 2017, 12:49
Форум игроделов » Программирование » C/C++ » как рисовать в opengl? (opengl)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг