Вопросы с тегом «glsl»

GLSL - это язык затенения OpenGL. Используйте этот тег для вопросов, касающихся конкретно шейдеров, написанных на этом языке. Для общих вопросов о шейдерах используйте вместо этого [шейдер].

45
Как я могу отлаживать шейдеры GLSL?

При написании нетривиальных шейдеров (как и при написании любого другого нетривиального кода) люди делают ошибки. [цитата нужна] Однако я не могу просто отладить его, как любой другой код - вы не можете просто присоединить GDB или отладчик Visual Studio в конце концов. Вы даже не можете выполнять...

30
Совместное использование кода между несколькими шейдерами GLSL

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

21
Почему мой шум Perlin выглядит «блочным»?

Я попытался реализовать Perlin Noise самостоятельно, используя только теорию (следуя flafla2.github.io/2014/08/09/perlinnoise.html). К сожалению, мне не удалось добиться эффекта «оригинального» Perlin Noise. По какой причине приведенный ниже код отображает блочную версию Perlin Noise? Что я должен...

13
Когда отключить перспективную правильную интерполяцию (ноперспективная)

В GLSL перспективная правильная интерполяция атрибутов вершин является настройкой по умолчанию - ее можно отключить для определенных атрибутов вершин с помощью неперспективного квалификатора. Кроме шейдеров постобработки, я никогда не видел, чтобы корректная интерполяция перспективы отключалась -...

13
Путать с реализациями PBR

Я открываю для себя удивительный мир математики и сталкиваюсь с огромной стеной с PBR и именами, поэтому у меня есть несколько вопросов: насколько я понимаю, BRDF описывает, как материал реагирует на свет (поступающий прямой свет и отражения). Но в «Кук-Торранс» я ничего не вижу об отражениях, я не...

11
Почему доступ к текстурам намного медленнее при расчете координат текстуры в фрагментном шейдере?

При использовании текстур в GLSL лучше всего рассчитать окончательные координаты текстуры в вершинном шейдере и передать их фрагментному шейдеру, используя varyings. Пример с простым переворотом в координате y: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main()...

11
Нужно ли повторно связывать униформу или атрибуты при смене шейдерных программ?

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

11
Цикл производительности в шейдере

Мне интересно, как лучше интегрировать функцию динамического цикла в шейдер? Во-первых, кажется, что динамические массивы невозможны. Итак, лучше ли создавать массив максимального размера и заполнять только его часть или определять массивы с заранее заданными размерами? Тогда, как лучше всего...

9
Пытаюсь внедрить Microfacet BRDF, но мои результаты не соответствуют действительности.

Я пытаюсь реализовать модель микроразмера BRDF. Я читаю слайды Себастьяна Лагард . Я реализовал формулы для моего кода, но я думаю, что результат изображение неверно. Желтый - базовый цвет материала. Зеркальный цвет красный, чтобы видеть правильно. Мой код: // Fragment Shader #version 330 core in...

9
WebGL Всенаправленный Shadow Mapping Issue

Прежде всего, я хочу сказать, что я прочитал много постов о теневом отображении с использованием карт глубины и кубических карт, и я понимаю, как они работают, а также у меня есть опыт работы с ними с использованием OpenGL, но у меня есть проблема с реализацией Всенаправленная техника Shadow...

8
Shadow Mapping артефакты

Я играл с теневым отображением в OpenGL, используя текстуры глубины. Глубина текстуры хорошая, и я могу нанести ее на сцену, но у меня есть странные артефакты на задней стороне объекта: У меня вопрос, что является причиной этого и как я могу это исправить? Фрагментный шейдер, который я использую,...

8
Каков хороший подход для работы с униформой в современном OpenGL?

Я создаю рендерер с использованием современного OpenGL (версии 3.1 и выше), и теперь я пытаюсь создать эффективный, но гибкий способ обработки униформы. Я читал об объектах с единым буфером и о том, что такое «общий» подход к их использованию (последний, к сожалению, дал не так много результатов,...