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

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

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

SNVampyre
так теперь про глубину

разница, между прошлым описанием, в том, что мы должны создать еще рендер буфер и его указать фреймбуферу как буфер глубины

бинд остается такой же
glBindFramebuffer (GL_FRAMEBUFFER, ID),
glViewport (0, 0, width, height),
glDrawBuffer (GL_COLOR_ATTACHMENT0),
glReadBuffer (GL_COLOR_ATTACHMENT0);

?

еще вопрос про то куда рендерить в смысле уже в шейдере как верно делать
вот так

#extension GL_EXT_gpu_shader4 : enable
varying out vec4 gbuffer;
void main (void)
{
     gbuffer = vec4 ( …);
}

или так

void main (void)
{
     gl_FragColor = vec4 ( normal*0.5, depth);
}

меня интересует, вобще какой из подходов православней и в чем отличие вобще ?

#31
23:24, 12 апр 2011

Я бы на твоем месте почитал бы основы для начала, такая каша в голове что я не понимаю как ты собираешься ее утрясать не обращаясь к статьям для начинающих.

PS. А да, и вампира можешь особо внимательно не слушать, он с головой в ссоре, начни лучше с туторов по OpenGL и GLSL которые сможешь найти, желательно на православных ресурсах.

#32
23:31, 12 апр 2011

I
Второй вариант - это твой вариант. Это GLSL 120.


Первый вариант - это бред.
Если писать для GLSL 130, то писать "out vec4 gbuffer;" и цеплять выходную переменную через glBindFragDataLocation (handle, 0, "gbuffer");
Тебе это не нужно.

#33
23:33, 12 апр 2011

SNVampyre
Угу, спасибо, я и делал цеплянье через glBindFragDataLocation, просто интересно было, как верней делать )

#34
23:36, 12 апр 2011

I
> просто интересно было, как верней делать
Как вернее делать, написано в glslangspec120 и glslangspec130. Первое работает на твоём OpenGL 2.1, а второе на OpenGL 3, которого у тебя, как я понял, нет. Так что используй вариант GLSL 120. Разница между ними как между SM2 и SM4.

#35
23:39, 12 апр 2011

SNVampyre
Еще вопрос - назрел, но ответа вменяемого не на гуглил ( в статьях для совсем маленьких просто пишут, что эти расширения были утверждены, тогда то и тогда то )

Интересует такой вопрос, в чем разница между EXT/ARB и просто АПИ ? можно ли взять какие то дефайны или АПИ вызовы из АРБ и смешать с EXT, я интересуюсь как факт - сам прекрасно понимаю, что это не нада делать

#36
23:43, 12 апр 2011

I
Можно мешать как угодно, у них адреса одинаковые. Только разные версии бывают на разных версиях дров. На последних поддерживаются все варианты, на старых только EXT. EXT и ARB постепенно уходят из стандарта, но пока используются одинаковые варианты. Скорее всего, если какой-то функции не будет, и она железно войдёт в ядро на твоей платформе, то тебе просто не дадут вставить твои функции с такими именами.
Вообще, самое правильное - это во время получения адресов функций проверять все возможные варианты написания, а в программе использовать одно и то же.

#37
23:44, 12 апр 2011

проблема на windows ( это у L, ему не зайти, а у меня, windows не стоит чтобы пробовать )
создал проект, подключилл OpenGL 1.1 из Windows SDK, подключил glext.h.  Вызвал метод glGenRenderbuffers и получил ошибку

error C3861: 'glGenRenderbuffers': identifier not found    File: opengl.cpp

#38
23:46, 12 апр 2011

I
Вобщем для тебя есть вот это:
http://www.gamedev.ru/code/articles/?id=4267

На всех операционных системах то же самое. Только если на виндовс всегда понятно какие функции в ядре системы, а какие нет, то под линуксом и маком полный зоопарк, когда дрова могут менять gl.h. Странно что ты как-то "работал" с OpenGL не зная как прицеплять расширения.

#39
23:47, 12 апр 2011

SNVampyre
На маке все из коробки )

UPD не дочитал статью ! )) пробуем ;)

#40
23:51, 12 апр 2011

I
> На маке все из коробки )
Ну правильно, и на разных версиях мака, на разных версиях видеокарт - везде разные gl.h. И под линуксом то же самое. В итоге самый удобный OpenGL только под виндовс, в остальных случаях кретинизм зашкаливающий все пределы.

#41
23:55, 12 апр 2011

KpeHDeJIb
> Пост не читай @ сразу отвечай. Спасибо что повторил то что я сказал :)

Значит я просто не понял тебя. :)

#42
23:57, 12 апр 2011

I
> в принципе, не чего принципиально нового, я там и не узнал

> "Я бы полнял, если б вылетало! Так оно НЕ КОМПИЛИТСЯ : \"

Вот эти два предложения противоречат друг другу.

#43
23:58, 12 апр 2011

SNVampyre
Сори, не дочитал статью, поэтому сообщение удалил ))) сейчас пробуем

#44
0:00, 13 апр 2011

I
Возьмите glew/sdl или ещё чтонить подобное и не парьтесь.

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

Там есть GL3 расширения? ARB FBO например ты везде юзаешь.

> Интересует такой вопрос, в чем разница между EXT/ARB и просто АПИ ? можно ли
> взять какие то дефайны или АПИ вызовы из АРБ и смешать с EXT, я интересуюсь как
> факт - сам прекрасно понимаю, что это не нада делать

Категорически нет!
Никто тебе не гарантирует, что дефайн GL_EXT_ABC и GL_ARB_ABC будут одинаковыми.
Мешать функции тоже нельзя. Такое может взлететь только в специфичных случаях и то никто ничего при этом не будет гарантировать.
Если ты юзаешь например ARB_FBO то мешать его с EXT_FBO не нужно.

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

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