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

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

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

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

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

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

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

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

1
Нужно ли повторно связывать униформу или атрибуты при смене шейдерных программ?
Для рендеринга сцены обычно используется более одной шейдерной программы, которая, в моем случае, использует одни и те же атрибуты и разделяет, по крайней мере, некоторые из униформ. Чтобы они работали должным образом, я в настоящее время играю в безопасности, то есть я перепривязываю атрибуты и получаю соответствующие одинаковые местоположения каждый …
11 opengl  glsl  shader 

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.