ПрограммированиеФорумГрафика

OpenGL: проблемы с рендером в текстуру и depth-тестом (2 стр)

Страницы: 1 2 3 4 Следующая »
#15
10:02, 12 апр 2011

Executor
> А что с рендербуферами не так?
Ну а зачем их использовать если с текстурами все гораздо проще и есть возможность использовать их? :)

#16
12:01, 12 апр 2011

SNVampyre
> > GL_RGBA16
> > GL_UNSIGNED_BYTE
> Пока увидел только это.

реально фейл! >_<  Ну, I будет в сети - попробуемс ещё )

SNVampyre
> Вообще не понятно как в таком примитивном расширении можно не разобраться.
а я чо? я ни чо  : D Я вообще  OpenGL Не люблю и пишумегоубыйцукрайзиса на DX11 : P    Правда сегодня любопытство победил и таки чуток поразбирался в OGL - ни чего сложного. По крайней мере кубик с текстуркой нарисовал за 5 минут самообучения )


glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, bufferID);

- порядок явно не верный, но я давал ему с обратным порядком код )  И не работало.  Короче отхватит сегодня : )

Executor
> На лицо явное не понимание как всё работает, иначе бы не тусовали местами ГЛ
> функции на угад, авось заработает.
да я сегодня покурил доки - всё понятно.  Просто кода у меня нет. I в xCode пишет )  Для макоси.

#17
12:26, 12 апр 2011

.L
> реально фейл! >_<
Для пустых текстур GL_UNSIGNED_BYTE никакой силы не имеет, а вот GL_RGBA16 это уже интересней.

Весьма исчерпывающая информация:
http://www.opengl.org/wiki/Image_Formats#Depth_formats
http://www.opengl.org/wiki/Framebuffer_Objects
http://www.opengl.org/wiki/Depth_Buffer
http://www.opengl.org/wiki/Renderbuffer_Object

#18
13:47, 12 апр 2011

.L
> реально фейл!

В чём? В конкретном случае ни на что это не влияет.

KpeHDeJIb
> Для пустых текстур GL_UNSIGNED_BYTE никакой силы не имеет, а вот GL_RGBA16 это уже интересней.

?

#19
14:06, 12 апр 2011

Executor
> В чём? В конкретном случае ни на что это не влияет.
странно. СтОит выставить тип данных в DX чуть не такой и всё летит на ЙУХ.

#20
14:17, 12 апр 2011

.L
GL_DRAW_FRAMEBUFFER - это что за чудо?

KpeHDeJIb
Хм... Спасибо, не знал, что у них есть wiki.

#21
15:30, 12 апр 2011

Executor
> ?
Если создавать текстуру с NULL вместо данных то формат данных в этом самом NULL глубоко всем параллелен, а вот формат текстуры все таки важен, или что конкретно непонятно в моем высказывании?

#22
20:34, 12 апр 2011

.L
> странно. СтОит выставить тип данных в DX чуть не такой и всё летит на ЙУХ.

Если ты в текстуру будешь данные заливать, то не всё равно, а в данном случае 0, поэтому ни на что не повлияет.
Но это относится именно к этому формату, есть форматы с особой интерпретацией, там это будет иметь значение.

KpeHDeJIb
> Если создавать текстуру с NULL вместо данных то формат данных в этом самом NULL
> глубоко всем параллелен, а вот формат текстуры все таки важен, или что
> конкретно непонятно в моем высказывании?

Если NULL и внутренний формат без особой интерпретации, то пофиг какой там у него формат выставлен. Поэтому для RGBA16, если не передаёшь данные, пофиг BYTE он там выставил или вообще FLOAT написал.

Dimich
> GL_DRAW_FRAMEBUFFER - это что за чудо?

GL_DRAW_FRAMEBUFFER по сути тоже самое что GL_FRAMEBUFFER.
Первое я бы даже сказал православнее. :)

#23
22:52, 12 апр 2011

Почитал спеки  ( не ужели, да )

Итак
OGL, юзается тот который будет одновременно работать на мак ос и iOs, судя по всему там на OGL 3 не скоро еще метят … поэтому и 2.7 или какой он там получается :)

Сейчас буду пробовать все как нада делать - для начала, разобрался почему у меня периодически вобще все не работало - оказывается если в xcode 4 сделать перезапуск, а не выключить, подождать пока трэйс выведет program return code и запустить, то либо не создается контекст, либо еще, что то, вобщем экран черный и точка ! поэтому больше 80% синтетических тестов, можно считать fail, хотя бы по этому

Итак есть принципиальные вопросы на которые я быстрей тут получу ответ чем нагуглю

1 я вот не заметил вобще как таковой разницы между выводом в varyng out и между gl_FragColor в обоих вариантах в втором проходе выводиться все то что записали собствено так как нуно ?

2 GL_DRAW_FRAMEBUFFER позволяет не использовать glDrawBuffers/glReadBuffers так написанно в спеке или я не так понял ?

#24
22:58, 12 апр 2011

I
Ты лучше давай без экспериментов.
Пиши как все, ибо под это "как все" пишутся дрова. Все пишут как я написал выше, и это работает. Если что-то ещё где-то заработает, то замечательно, но это будет уже экспериментальный код, который где-то да слагает. Увы, это главная фича OpenGL сегодня.

#25
23:03, 12 апр 2011

SNVampyre
вопрос не совсем по теме

window 7 нету glGenFramebuffers и glext.h и wglext.h так же нету - стоит ogl 1.1 что делать ?

#26
23:05, 12 апр 2011

I
> window 7 нету glGenFramebuffers и glext.h и wglext.h так же нету - стоит ogl 1.1 что делать ?
Скачать с сайта glext.h, вставить в проект. Скачать дрова с сайта производителя GPU для твоей видеокарты, установить. Получить профит.

#27
23:10, 12 апр 2011

SNVampyre
и теперь по теме но без глубины

общая схема рендера в FBO

- glGenTextures
- glBindTexture
- ставим параметры
- glBindTexture(GL_TEXTURE_2D, 0);

- glGenFramebuffers
- glBindFramebuffer
- glFramebufferTexture2D
- glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);

далее в рендере уже
- glBindFramebuffer
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- делаем что нада
- glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);

второй проход

- glDisable(GL_DEPTH_TEST);
- glActiveTexture ( GL_TEXTURE0 );
- glBindTexture  ( GL_TEXTURE_2D
- делаем что нада

имеем графики на экране с первого прохода

все верно ? если мне нужен будет еще проход принцип будет таким же как у первого то есть - (биндФреймБуфер, ID), чистка, рисуем, (биндФреймБуфер 0)

то есть как я понимаю все это
- создали текстуру
- привязали ее к фреймбуферу
в рендере
- прибиндили фреймбуфер
- очистили в текстуре окторая прибиндина - глубину и цвет
- нарисовали все в текстуру
в след проходе
- взяли текстуру и отрисовали ее содержимое

#28
23:16, 12 апр 2011

I
Всё правильно, только бинди нормально. Даже если на какой-то сферической видеокарте в вакууме у тебя заработает как ты написал, то всё равно.

#29
23:17, 12 апр 2011

Executor
> Если NULL и внутренний формат без особой интерпретации, то пофиг какой там у
> него формат выставлен. Поэтому для RGBA16, если не передаёшь данные, пофиг BYTE
> он там выставил или вообще FLOAT написал.
Пост не читай @ сразу отвечай. Спасибо что повторил то что я сказал :)

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.