![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рендер в текстуру получается кривой!
Кефир87 © (2005-11-18 01:27:00)Решил вот сделать motion blur. Все показалось довольно простым. Устанавливаю glViewport(0, 0, 512, 512);, рисую сцену, glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, 512, 512, 0);, glViewport(0, 0, 800, 600); (например), опять рисую сцену, теперь glLoadIdentity для двух матриц и с альфаблендингом пытаюсь нарисовать квад с той текстурой в которую рисовал типа как:
glBegin(GL_QUADS);
glTexCoord2f(0, 0); glVertex2f(-1, -1);
glTexCoord2f(1, 0); glVertex2f(1, -1);
glTexCoord2f(1, 1); glVertex2f(1, 1);
glTexCoord2f(0, 1); glVertex2f(-1, 1);
glEnd;
Но в этот момент оказывается что текстура какая-то кривая получилась! То-ли растянутая, толи сдвинутая, толи и то и то... Если вместо glViewport(0, 0, 800, 600) сделать glViewport(0, 0, 512, 512) то все отлично получается, но только в этой области... Я чего-то не понимаю. Как текстуру ровной сделать?! Чтоб на весь экран развернуть не зависимо от разрешения. А еще в полноэкранном режиме все как-то мерцает! 8)
XProger (2005-11-18 19:40:00) [1]Какая нафиг перспектива? Учите матчасть! Viewport это Viewport с перспективой он никак не связан! Aspect не трогай вообще!
Кефир87 (2005-11-18 18:30:00) [2]
> Сделать текстуру размером с область вывода
Либо glTexImage2D отказывается делать текстуру с размером не кратным 2 либо glCopyTexImage2D не хочет такое копировать...
> делаешь что-то очень монструозное
Ну так. Двиг делаю для собственного развития 8)
> либо окончательно отупел
Скорей это 8)
> Вьюпорт задай как glViewport(0, 0, 512, 512) для текстуры
> размером 512х512.
Я так и делаю 8)
> ты после задания вьюпорта чай не забываешь параметры перспективы
> поменять?
Ну не знаю. Пытался после 512х512 делать перспективу с отношением 1/1 а потом обратно 4/3... не особо помогло... А так я просто два раза смотрю через одну и ту-же камеру 8)
Darthman (2005-11-18 10:34:00) [3]Либо ты делаешь что-то очень монструозное, раз столько тем наоткрывал, либо окончательно отупел :)
Вьюпорт задай как glViewport(0, 0, 512, 512) для текстуры размером 512х512.
Почему мерцает смотри свой код.
что значит " все отлично получается, но только в этой области" ?
Ты мой state of the art видел? там все во всей области отлично. ты после задания вьюпорта чай не забываешь параметры перспективы поменять? ;)
XProger (2005-11-18 01:33:00) [4]Сделать текстуру размером с область вывода