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

По вопросам, связанным с использованием графической библиотеки OpenGL.

53
Должны ли новые графические программисты изучать Vulkan вместо OpenGL?

Из вики : «Vulkan API изначально упоминался как« инициатива OpenGL следующего поколения »от Khrono», и что это « основополагающая попытка редизайна объединить OpenGL и OpenGL ES в один общий API, который не будет обратным» совместим с существующими версиями OpenGL ". Так стоит ли лучше изучать...

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

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

19
Что означает «st» в контексте OpenGL?

Я видел этот термин stнесколько раз, когда смотрел на другие фрагментные шейдеры OpenGL. Тем не менее, я не знаю, что это означает или для чего он используется. Вот пример: uniform vec2 u_resolution; vec2 st = gl_FragCoord.xy/u_resolution; Я могу понять, что это преобразование координат пикселей в...

18
Что такое fwidth и как он работает?

В документации OpenGL говорится, что fwidth returns the sum of the absolute value of derivatives in x and y. Что это означает в менее математических терминах, и есть ли способ визуализировать это? Основываясь на моем понимании функции, fwidth(p)имеет доступ к значению pв соседних пикселях. Как это...

17
Есть ли способ генерировать примитивы в геометрическом шейдере без входной геометрии?

Несколько лет назад я пытался внедрить этот Gem GeForce в OpenGL для генерации трехмерного процедурного ландшафта с использованием Marching Cubes . В статье предлагается реализовать Marching Cubes в геометрическом шейдере с максимальной эффективностью. Это означает, что мне нужно запустить шейдер...

17
Как я могу отладить то, что отображается в объекте буфера кадра в OpenGL?

У меня есть облако точек, которое отображается на экране. Каждая точка имеет свою позицию и цвет, а также идентификатор. Меня попросили отобразить идентификаторы для каждой точки в текстуре, поэтому я создал FBO и прикрепил две текстуры, одну для цвета и одну для глубины. Я создал необходимые VAO и...

15
Как реализовать трекбол в OpenGL?

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

14
Каковы некоторые методы визуализации прозрачности в OpenGL?

Альфа-смешивание можно включить, чтобы сделать поверхности прозрачными, например: glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Но это работает, только если объекты отображаются в обратном...

14
Совместимость с OpenGL, соглашения об именах и ARB против EXT

Я думал, что сформировал общее понимание того, как работают соглашения об именах OpenGL и расширения, пока не наткнулся на случай, который смутил меня. Вот мое понимание до сих пор: Нет суффикса - например glGenBuffers(). Эта функция является частью основного профиля. На вики-странице сказано, что...

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

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

12
OpenGL - обнаружение краев

Я хотел бы загружать произвольные сетки и рисовать толстые черные линии по краям, чтобы они выглядели как тени. Мне удалось нарисовать черный силуэт вокруг объектов с помощью буфера трафарета. Вы можете увидеть результат здесь: Но чего не хватает, так это черных линий в самом объекте. Я думал о...

12
Синхронизация последовательных вызовов OpenGL Compute Shader

У меня есть пара вычислительных шейдеров, которые должны быть выполнены в определенном порядке и чьи выходные данные зависят от предыдущих входных данных. В идеале мне никогда не понадобится копировать буфер на стороне клиента и выполнять всю мою работу на GPU. Рассмотрим У меня есть два...

12
Что именно делает makeContextCurrent?

Я довольно смущен этой функцией. Контекстная ссылка GLFW гласит следующее: Эта функция делает контекст OpenGL или OpenGL ES указанного окна текущим в вызывающем потоке. Контекст может быть актуальным только для одного потока за раз, и каждый поток может иметь только один текущий контекст за один...

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

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

11
Имеет ли значение, изучаю ли я OpenGL или Direct3D?

Являются ли различия между этими двумя API незначительными деталями реализации, которые означают, что как только я изучу один, я могу использовать его для всего? Или есть причины для изучения одного, а не другого, если я хочу иметь возможность использовать его вообще без необходимости переучивать...

11
Есть ли причина предпочитать Direct3D OpenGL?

Итак, я читал это , у меня как-то появилась причина, по которой игр в Microsoft Windows намного больше, чем в любой другой ОС. Основной проблемой было то, что Direct3D предпочтительнее OpenGL. Чего я не понимаю, так это зачем любому разработчику жертвовать совместимостью? Это просто финансовый...

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

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

11
Можно ли узнать, сколько фрагментов было сделано с помощью теста трафарета?

У меня есть приложение OpenGL, которое довольно широко использует трафаретные тесты для рендеринга неправильных форм (немного похоже на простую 2-D CSG ). Если бы я мог выяснить, сколько фрагментов прошло проверку трафарета и были фактически обработаны, это было бы очень полезно для упрощения...

11
Почему соседние треугольники никогда не перекрываются при растеризации?

Извиняюсь за следующий нубский вопрос, просто я нигде не могу найти удовлетворительный ответ ... Когда я рендерил простой выровненный по оси четырехугольник, состоящий из двух треугольников, я не понимаю, почему на диагональном ребре, где встречаются эти треугольники, никогда не бывает видимых...

11
GL_STATIC_DRAW против GL_DYNAMIC_DRAW против GL_STREAM_DRAW: имеет ли это значение?

В OpenGL функция объекта буфера ( glBufferData, glBufferSubDataи , возможно , некоторые другие) имеет параметр usage, описанный в документации как намек предполагаемого использования, вероятно , имел в вид , чтобы помочь доходности реализации более высокой производительности. использование...