PMG

Форумы по созданию игр
Текущее время: 27 апр 2024 02:30

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Работа с изображениями
СообщениеДобавлено: 01 фев 2007 18:31 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем.
Большое спасибо за перевод уроков NeHe, MagicWolf (как я узнал только что).

Как я могу добраться до каждого пиксела изображения?

На пример: Весит камера под определенным углом к плоскости земли. Картинку мы видим в преспективе - ближайшие пикселы сжаты, дальние растянуты (логик, блин) (новичок рассказывает гуру, правда смешно?) . камера может вращаться вокруг своей оси (Ось Z в перспективе). Вид камеры - усеченная пирамида видемости. Большое спасибо за урок Х2!
Во втором окне необходимо видеть изображение, усеченное пиримидой видимости, но уже в ортогональной проекции, с одинаковым межпиксельным расстоянием (что это такое и как им управлять).
Как я могу вырезать этот кусок изображения?
Какой тип изображения использовать: текстуры или массывы пикселей?
Можно ли вращать массывы пикселей на угол не кратный 90град.

Столь много вопросов...

Помогите, пожалуйста, хоть как-нибудь.

С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с изображениями
СообщениеДобавлено: 02 фев 2007 10:39 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Дмитрий писал(а):
Привет всем.
Большое спасибо за перевод уроков NeHe, MagicWolf (как я узнал только что).


Пожалуйста!

Дмитрий писал(а):
Как я могу добраться до каждого пиксела изображения?


В каком смысле? Скопировать данные с буфера цвета? glReadPixel.

Дмитрий писал(а):
На пример: Весит камера под определенным углом к плоскости земли. Картинку мы видим в преспективе - ближайшие пикселы сжаты,


Что значит сжаты? Пикселей в пространстве нет! Они только на экране, как результат оцифровки.

Дмитрий писал(а):
дальние растянуты (логик, блин) (новичок рассказывает гуру, правда смешно?) .


Я не гуру, так как ты сам можешь видеть, что я довольно мало написал прог на OGL! Только уроки переводил.

Растянуты предметы. Как результат искажения пространства перспективой.

Дмитрий писал(а):
камера может вращаться вокруг своей оси (Ось Z в перспективе). Вид камеры - усеченная пирамида видемости. Большое спасибо за урок Х2!
Во втором окне необходимо видеть изображение, усеченное пиримидой видимости, но уже в ортогональной проекции, с одинаковым межпиксельным расстоянием (что это такое и как им управлять).


Я так понял, у тебя два окна и две камеры! В чем проблема?

Дмитрий писал(а):
Как я могу вырезать этот кусок изображения?


Вот это я не могу понять! Зачем тебе изображение?

Дмитрий писал(а):
Какой тип изображения использовать: текстуры или массывы пикселей?
Можно ли вращать массывы пикселей на угол не кратный 90град.


Помести в текстуру и вращай как хочешь.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Работа с изображениями
СообщениеДобавлено: 02 фев 2007 19:19 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет Всем.

Я, наверное, неправильно выразился или чего-то не понимаю!

Проблема моя заключаеться, наверно, в том, что я не представляю как мне выделить часть изображения и сохранить ее в другой массив , на пример.

Мне необходимо выделить часть изображения для дальнейших преобразований. Я планирую исользовать материал урока Х2 от Nehe (другого пути я пока не знаю) - с помощью усеченной пирамиды видимости отрезать часть изображения. Только я не представляю как использовать функции того урока - попадает ли точка в область пирамиды видимости.
Как получить кординаты(x,y,z) каждого пиксела изображения (если этот термен не правилен - прошу прощения за невежество).

Буду очень признателен за любую помощь.

С уважением, Дмитрий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 фев 2007 12:56 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Я не понимаю, причем тут координата Z!!!??? У пикселей только x,y! При выводе изображения на экран происходить проектирование и потом растеризация 3D объектов. Есть трехмерные карты изображений, но как в них проектировать сцену я не знаю. Можно только делать срезы сцены, а не всю сцены в пиксели...

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Работа с изображениями
СообщениеДобавлено: 05 фев 2007 19:17 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет Всем.

Спасибо, Сергей, что хоть что-то пишеш в ответ на мой лепет!

У-у-ух! Видно я совсем плох в отношении изображений!!! Блин!!!!

У меня есть эталонное изображений. Я его загрузил и отобразил(наложил текстуру на прямоугольник).
Про координату Z упяманул, так как функции из урока Х2 предлагаю проверку точки на вхождение в пирамиду и требуют (x,y,z). Я не знаю правильный ли это вариант, что бы выделить часть изображения (с помощью усеченной пирамиды видимости) .

"Есть трехмерные карты изображений, но как в них проектировать сцену я не знаю. Можно только делать срезы сцены, а не всю сцены в пиксели..." - не понял, конечно! (Как тут вставлять цитаты?)
Мне необходимо выделить часть изображения из отображонного в преспективе.

Буду очень признателен за любую помощь.

С уважением, Дмитрий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007 10:56 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Тогда чем не устраивает glReadPixels?

Код:
Reading from the Screen
There may be times when you want to read the pixels already on the screen so that you
can save them to disk as an image file or can manipulate them in memory (i.e., for special
effects). OpenGL allows you to do this by providing you with the glReadPixels() function,
which is defined as:
void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
GLenum type, GLvoid *pixels);
glReadPixels() has essentially the same parameters as glDrawPixels() with the addition of an
(x, y) coordinate. The (x, y) coordinate specifies the lower-left corner of the rectangle with
dimensions defined by width and height that will be read from the screen and stored in the
pixels parameter. The format and type parameters work the same way as glDrawPixels() and
can be the same values as those defined in Tables 6.1 and 6.2.
As an example, if you want to read the top half of your OpenGL window into an RGB
buffer, you might use the glReadPixels() function like this:
void *imageData;
int screenWidth, screenHeight;
...
glReadPixels(0, screenHeight/2, screenWidth, screenHeight/2, GL_RGB, GL_UNSIGNED_BYTE,
imageData);
Note
Since glReadPixels() is reading from the frame buffer and hence across the AGP bus of the video
card, the execution time of the function can be relatively long. Try not to use glReadPixels() often,
if at all, during runtime.


Взято их Premier Press - Beginning OpenGL Game Programming (2004).pdf

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007 12:57 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет Всем

Спасибо за информацию, Сергей.

Я так понял ReadPixel возвращает char* data. Как данные упаковываються в этот массиве?
Просто мне нужно проверить - попадает ли точка(пиксель) изображения в пирамиду видимости. Для этого мне нужно получить координаты точки изображения (или как это называеться) в 3D.
Подскажите как это можно осуществить

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007 16:38 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Что возвращается задается в данном случае GL_RGB, GL_UNSIGNED_BYTE - т.е. RGB по байтно. Надо тебе прочитать описание этой функции!

Я не понимаю какая точка? Посмотри еще урок 44. Эффект световых бликов с проверкой видимости. Там есть что-то подобное!

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 фев 2007 18:34 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Спасибо за информацию, Сергей!
Уверен, она поможет не только мне,

Побежал вгрызаться дальше в OGL.

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 фев 2007 00:27 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет Всем.

Я опять обращаюсь к Вам.
Подскажите как сохранить изображение в файле, используя OpenGL.

Буду очень признателен за любую помощь.

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 фев 2007 10:47 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Опять же можно сделать glReadPixels и по-пиксельно сохранить в какой тебе надо файл, а можно использовать DevIL (OpenIL):
ILboolean ilSaveImage(const char *FileName);
ILboolean ilSave(ILenum Type, const char *FileName);
ILboolean ilSaveF(ILenum Type, ILHANDLE File);
ILboolean ilSaveL(ILenum Type, ILvoid *Lump, ILuint Size);
http://openil.sourceforge.net/

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 мар 2007 11:17 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем.

Помогите!!!

С начала ипользовал одни изображения(*.bmp) - все было нормально - текстурировались и мипмапинговались(использовал gluBuild2DMipmaps()). Взял другое изображение(тоже *.bmp) - деактивируется текстурирование - не работает glTexImage2D() - я создал серию отфильтрованых мипмапов и для каждого использовал glTexImage2D(), а на gluBuild2DMipmaps() прога тупо слетает.

Вот ... чувствую, что что-то не так с мипмапами, но понять пока не могу javascript:emoticon(':(').

Подскажите, пожалуйста, где можно скачать OGL(*.h,*.lib,*.dll).

Буду благодарин за любую помощь!

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 мар 2007 15:40 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Н-да похоже действительно что-то с ogl. Ты не пробывал поставить новые драйвера к видеокарточке?

>OGL(*.h,*.lib,*.dll).

h и lib идут к компилятору. dll - в драйверах от видеокарты.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 мар 2007 01:22 
Не в сети
Постоянный

Зарегистрирован: 19 янв 2007 12:29
Сообщения: 82
Привет всем.

Эти *.bmp, с которыми у меня проблема, как я узнал, были выдраты из *.pdf.
Может это как-то..., что-то... прояснит... Я не знаю...

_________________
С уважением, Дмитрий


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 мар 2007 11:37 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Вроде не должно. Подсунь bmp с квадратом из черного цвета, и посмотри что будет.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

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


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

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


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

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