PMG

Форумы по созданию игр
Текущее время: 30 ноя 2022 08:18

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: 2D графика средствами OpenGL
СообщениеДобавлено: 21 янв 2010 18:02 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 20 янв 2010 12:57
Сообщения: 5
Доброго всем вечера!

Интересует несколько вопросов:

1. Как вывести 2D рисунок на экран монитора средствами OpenGL, чтобы независимо от положения камеры, рисунок не изменял своё положение? Вот захочу я над здоровьем отобразить рисунок красным крестиком, как мне это сделать?

2. Как загрузить программным способом (не из файла, а самому) в видеопамять рисунок средствами OpenGL? Вот предположим у меня есть массив:

Код:
unsigned int picture[]={
    0xFF0000,0xFF0000,0xFF0000,0xFF0000
    0xFF0000,0xFF0000,0xFF0000,0xFF0000
    0xFF0000,0xFF0000,0xFF0000,0xFF0000
    0xFF0000,0xFF0000,0xFF0000,0xFF0000};


Это рисунок 4x4 (квадрат красного цвета). Как мне сделать так, чтобы это стало рисунком (OpenGL смог это использовать как текстуру для наложения на полигоны)?

Заранее, большое спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2D графика средствами OpenGL
СообщениеДобавлено: 21 янв 2010 18:25 
Не в сети
Опытный
Аватара пользователя

Зарегистрирован: 04 июл 2008 10:11
Сообщения: 144
Откуда: Питер
1. вот код для рисующий прямоугольника во весь экран в 2D
Код:
//подготавливаем вьюпорт
glViewport(0,0,Width,Height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, (float)Width, 0, (float)Height);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//ну а теперь рисуешь что хочешь. Система координат начинается в левом нижнем углу. Единица измерения - один пиксель
glBindTexture( GL_TEXTURE_2D, texture[0]);
glBegin(GL_QUADS);
  glTexCoord2f(0, 0); glVertex2f(0, 0);
  glTexCoord2f(1, 0); glVertex2f(WindowW, 0);
  glTexCoord2f(1, 1); glVertex2f(WindowW, WindowH);               
  glTexCoord2f(0, 1); glVertex2f(0, WindowH);
glEnd();
Чтобы нарисовать значок здоровья этого достаточно, но для того чтобы там был не прямоугольник, а крестик нужно использовать glBlend() http://pmg.org.ru/nehe/nehe08.htm
2.Что-то типа этого, только здесь думаю есть ошибки.
Код:
unsigned int picture[]={
    0xFF0000,0xFF0000,0xFF0000,0xFF0000
    0xFF0000,0xFF0000,0xFF0000,0xFF0000
    0xFF0000,0xFF0000,0xFF0000,0xFF0000
    0xFF0000,0xFF0000,0xFF0000,0xFF0000};
glGenTextures(1, &texture[0]);
glBindTexture(GL_TEXTURE_2D, texture[0]);
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA16F_ARB, 4, 4, GL_RGB, GL_UNSIGNED_BYTE, picture); //в этом месте компилятор будет ругаться
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2D графика средствами OpenGL
СообщениеДобавлено: 21 янв 2010 18:32 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 20 янв 2010 12:57
Сообщения: 5
Спасибо большое! Я просто свой движок разрабатываю для стратегии, вот когда дойду до момента вывода 2D графики, обязательно всё это понадобится.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB