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

Рендер глубины в текстуру (2 стр)

Страницы: 1 2
#15
10:25, 8 апр. 2021

Suslik
Ну ты же сам знаешь, что в графике чистое Баткинское распределение. Либо человек может сразу, либо не может вообще. Я уверен, что ошибка у ОП-а в 2-3х строчках или 1 параменре-енуме. И вообще этот код не должен вот так писаться, а должен генерироваться из нод и прочих xml. Покрываться 100% кавереджем тестом и проходить квалити тулы. Да и это 100% не прод-консольное решение и даже не консольные API. Поэтому тут либо ОП берет и выучивает наизусть готовое сферическое в вакууме, либо никак.


#16
10:42, 8 апр. 2021

lookid
> Баткинское распределение
lookid
> код не должен вот так писаться, а должен генерироваться из

было дело ... fx_builtin.cpp если кто знает

#17
12:05, 8 апр. 2021

Не совсем понятно. Создается текстура с атрибутами глубины и прикрепляется к fbo, но выводится-то глубина фрагментным шейдером. Буфер глубины тут может быть вообще лишним, нужен GL_COLOR_ATTACHMENT0. В буфер глубины глубина пишется без участия фрагментного шейдера. Можно также попробовать нормализовать глубину TexDepth=PositionT.z/PositionT.w;
В opengl имеет, наверное смысл, потом немного преобразовать глубину [-1, 1] -> [0, 1]
Самое простое, это было бы в том шейдере, где пишешь глубину, вывести постоянные значения из диапазона 0.f - 1.f. Если будут оттенки серого, значит, текстуры и все остальное, созданы верно и можно туда выводить глубину. FragColor = vec4(0.5, 0.5, 0.5, 1.0f);
Также, ближнюю и дальнюю плоскость камеры задать таким образом, чтобы куб довольно плотно располагался между ними.

#18
14:27, 8 апр. 2021

__sergey
> Не совсем понятно.

я же говорю - найти рабочий пример и покурить его

#19
16:46, 8 апр. 2021

Я что-то не пойму, innuendo который не запостил тут за все время пока он на форуме пасется ни строчки кода, и который всегда выдавал или ссылки на спеки либо глубокомысленные банальности, вдруг стал рекомендовать начинать с изучения работающего кода. Не думал что это случится, но в данном вопросе я скорее солидарен с innuendo.

Что до позиции Suslik'а, то он прав с академической точки зрения, но если стоит задача быстро решить локальную задачу, то рабочий пример это самое простое и логичное решение. Зачем забивать себе голову деталями и каждый раз продираться сквозь невнятные описания? В 21 веке технология программирования несколько отличается от того, что было в доинтернетную эпоху. Очень важно понимать общие принципы что бы знать что искать, а детали реализации всегда можно найти готовые. Это самый простой путь быстро получить результат. Если проблема решенная с помощью чужого кода критична, то тогда можно (и нужно) потратить время на ее углубленное изучение, а если нет, то работает и ладно. Я понимаю, что сейчас Знайки налетят и разнесут этот подход как антинаучный, но я говорю о практике а не о теоретических исследованиях.

#20
17:01, 8 апр. 2021

san
> вдруг стал рекомендовать начинать с изучения работающего кода.

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

> Это самый простой путь быстро получить результат. Если проблема решенная с
> помощью чужого кода критична, то тогда можно (и нужно) потратить время на ее
> углубленное изучение, а если нет, то работает и ладно.

да ты шо :)

#21
17:24, 8 апр. 2021

innuendo
> просить помочь это сильно просто потратить чужое время
Ну ты находишь время сидеть тут сутками и постить комменты во все ветки подряд. Значит времени у тебя навалом. Вот и сейчас напостил уже вторую страницу пустых рассуждений. Ты бы лучше дал ссылку на тот пример, который ты тут советуешь использовать, все была бы польза. А так троль в своем репертуаре.

innuendo
> да ты шо :)
"... либо глубокомысленные банальности"

#22
17:28, 8 апр. 2021

san
> Ты бы лучше дал ссылку на тот пример, который ты тут советуешь использовать,
> все была бы польза
лови http://www.opengl-tutorial.org/ru/intermediate-tutorials/tutorial… r-to-texture/

#23
17:36, 8 апр. 2021

Этот лучше:
https://learnopengl.com/Advanced-Lighting/Deferred-Shading

#24
17:53, 8 апр. 2021

lookid
> Этот лучше:

сильно поможет?

#25
18:04, 8 апр. 2021

innuendo
Ну это как сортировка выбором или перестановкой, а не мап-редьюс на террабайт.

#26
18:15, 8 апр. 2021

Похоже, за основу был взят пример из поста #22, только взята текстура глубины, вместо цвета, а надо было 

GLuint renderedTexture;
glGenTextures(1, &renderedTexture);
glBindTexture(GL_TEXTURE_2D, renderedTexture);
glTexImage2D(GL_TEXTURE_2D, 0,GL_RGB, 1024, 768, 0,GL_RGB, GL_UNSIGNED_BYTE, 0);
glFramebufferTexture(GL_FRAMEBUFFER, L_COLOR_ATTACHMENT0, renderedTexture, 0);
GLenum DrawBuffers[1] = {GL_COLOR_ATTACHMENT0};
glDrawBuffers(1, DrawBuffers); 
glBindFramebuffer(GL_FRAMEBUFFER, FramebufferName);
glDrawElements(GL_TRIANGLES, 6 ,GL_UNSIGNED_INT, 0);

Страницы: 1 2
ПрограммированиеФорумГрафика