Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2012, 17:23   #1
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию Баг с отрисовкой массива пикселей в opengl

Есть массив пикселей 3200х3200. Когда я его отрисовую по координатам -1;-1 относительно центра экрана, то всё ОК, но когда начинаю перемещать изображение и координаты выходят за единицу, то изображение не рендерится!

Цитата:
glRasterPos2f(PPos_x,PPos_y);
glPixelZoom(2,2);
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
glDrawPixels(3200, 3200, GL_RGBA, GL_UNSIGNED_BYTE, @World);
пробовал с glTranslatef, та же проблема

Цитата:
glRasterPos2f(0,0);
glTranslatef(PPos_x,PPos_y,0);

glPixelZoom(2,2);
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
glDrawPixels(3200, 3200, GL_RGBA, GL_UNSIGNED_BYTE, @World);

PPos_y:=0;
Nikk[UA] вне форума Ответить с цитированием
Старый 23.06.2012, 18:41   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А что такое "массив пикселей 3200х3200"?
Почему массив двумерный?
Чем он отличается от текстуры?
s-andriano вне форума Ответить с цитированием
Старый 23.06.2012, 21:14   #3
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию

Массив двумерный потому что это картинка. Текстура не подойдет, так как мир динамичен в моей игре и массив постоянно меняется, что с текстурой невозможно!

Другие варианты рендера не предлагать! Мне нужно просто сдвинуть изображение.
Nikk[UA] вне форума Ответить с цитированием
Старый 23.06.2012, 22:59   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А почему с текстурой-то невозможно?
s-andriano вне форума Ответить с цитированием
Старый 23.06.2012, 23:48   #5
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию

Потому, что текстуру прейдеться перегружать исходя из массива.
МИР ДИНАМИЧЕН!!!
И я не представляю как программа будет напрямую брать всю информацию с текстуры! Тут то и в помощ массив. Блин, что так тяжело сказать как изменить положение пикселей чтобы они не пропадали?
Nikk[UA] вне форума Ответить с цитированием
Старый 24.06.2012, 10:38   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Лично я с OpenGL работал лет 7-8 назад. Причем, с массивами пикселей - ни разу. Поэтому с точки зрения "тяжело сказать" - да, тяжелее, чем Вам разобраться в этом самому.
Что за манера подозревать всех, что они "знают, но не хотят сказать". Чтобы ответить на Ваш вопрос нужно затратить некоторое время. Но стоит ли мне тратить это время, если я подозреваю, что Вы пошли не тем путем? Может, я ошибаюсь. А может, ошибаетесь Вы. Мне,например, НИ РАЗУ не пришлось пользоваться массивом пикселей, и это уже говорит о том, что задачи, для которых он оптимален, весьма специфичны. И я сильно подозреваю, что Вы используете этот массив не по назначению. А это значит, что, вероятнее всего, когда Вы найдете ответ на свой вопрос и сделаете свою реализацию, эта реализация будет безбожно тормозить, и Вы снова будете размещать на форуме вопросы, почему тормозит. А потом переделывать свою программу. Не лучше ли сначала разобраться, что именно Вам нужно, и каков наиболее прямой способ достичь желаемого?
Лично мне кажется, что для регулярных двумерных структур наиболее подходящей реализацией является текстура.
И, кроме того, мне непонятна Ваша уверенность в том, что текстуру нельзя оперативно изменять.
s-andriano вне форума Ответить с цитированием
Старый 24.06.2012, 10:47   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
координаты выходят за единицу
так может они должны быть в диапазоне от -1.0 до +1.0? проверьте, что возвращает glGet() для GL_CURRENT_RASTER_POSITION_VALID.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 24.06.2012, 15:40   #8
Nikk[UA]
Пользователь
 
Регистрация: 24.01.2011
Сообщений: 41
По умолчанию

Цитата:
так может они должны быть в диапазоне от -1.0 до +1.0
да, только в этих пределах.

s-andriano, пролей свет. Я с текстурами ни разу не работал и для меня это такая же загадка как для тебя массив пикселей.
Nikk[UA] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отрисовка масива пикселей opengl Nikk[UA] Мультимедиа в Delphi 21 12.06.2012 20:23
Проблемы с отрисовкой на экране Stilet Компьютерное железо 9 28.11.2010 17:11
Проблемы с отрисовкой в Direct3D Trapper Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 28.07.2009 18:49
Проблема с отрисовкой дочрних областей. DJ_Rain Win Api 0 30.04.2009 18:31
HELP!!! Проблема с отрисовкой frai Общие вопросы Delphi 1 11.05.2007 21:17