Компьютерная графика

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

При рендеринге 3D-сцен с преобразованиями, примененными к объектам, нормали должны быть преобразованы с помощью транспонированной инверсии матрицы вида модели. Таким образом, с нормальным , modelViewMatrix М , преобразованный нормальный п ' являетсяNnnMMMN'n′n' N'= ( М- 1)T⋅ нn′=(M−1)T⋅nn' =...

22
Всегда ли сфера, спроецированная в 2D-пространство, приводит к эллипсу?

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

21
Русская рулетка действительно ответ?

Я видел, что в некоторых реализациях Path Tracing подход, называемый Russian Roulette, используется для отбраковки некоторых путей и распределения их вклада среди других путей. Я понимаю, что вместо того, чтобы следовать по пути до тех пор, пока он не упадет ниже определенного порогового значения...

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

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

21
Почему безопасность потоков так важна для графических API?

Как Vulkan, так и DirectX12 заявлены как пригодные для многопоточного использования. Люди, кажется, взволнованы этим. Почему это считается такой огромной особенностью? В любом случае, «настоящая» обработка перебрасывается через мост памяти на отдельный процессор. Кроме того, если он настолько...

20
Сглаживание / фильтрация в трассировке лучей

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

20
Производительность векторной графики по сравнению с растровой или растровой графикой

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

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

Я установил некоторый FPS-измерительный код в WebGL (на основе этого SO-ответа ) и обнаружил некоторые странности в производительности моего фрагментного шейдера. Код просто отображает один квад (или, скорее, два треугольника) на холсте 1024x1024, поэтому вся магия происходит в фрагментном шейдере....

19
Почему рекурсия запрещена в OpenCL?

Я бы хотел использовать OpenCL для ускорения рендеринга изображений с трассировкой лучей, но я заметил, что на странице Википедии утверждается, что рекурсия запрещена в Open CL. Это правда? Поскольку я широко использую рекурсию при трассировке лучей, для ее ускорения потребуется значительное...

19
Какой самый простой способ вычисления главной кривизны для треугольника сетки?

У меня есть сетка, и в области вокруг каждого треугольника я хочу вычислить оценку основных направлений кривизны. Я никогда раньше такого не делал, и Википедия не очень помогает. Можете ли вы описать или указать мне простой алгоритм, который может помочь мне вычислить эту оценку? Предположим, что я...

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

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

19
Почему Т-образные соединения в сетках приводят к трещинам?

Я слышал от многих источников, что иметь T-переходы в трехмерных сетках - плохая идея, потому что это может привести к трещинам во время рендеринга. Может кто-нибудь объяснить, почему это происходит, и что можно сделать, чтобы избежать...

19
Что такое векторный процесс растеризации в Illustrator?

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

18
Как коррелированные выборки влияют на поведение рендерера Монте-Карло?

В большинстве описаний методов рендеринга Монте-Карло, таких как трассировка пути или двунаправленная трассировка, предполагается, что выборки генерируются независимо; то есть используется стандартный генератор случайных чисел, который генерирует поток независимых, равномерно распределенных чисел....

18
Структуры данных для рендеринга на основе тайлов

Плиточный рендеринг используется в современных архитектурах мобильных графических процессоров для повышения когерентности доступа к памяти путем разделения пространства изображений на регулярную сетку из небольших (например, 32x32 пикселей) плиток. Информация о типах структур данных, используемых...

18
Что такое «дипольное приближение» для подповерхностного рассеяния?

Если вы читаете статьи о подповерхностном рассеянии, вы часто встречаете ссылки на то, что называется «дипольное приближение». Этот термин, похоже, восходит к статье «Практическая модель подземного переноса света » Хенрика Ванна Дженсена и др., Но эту статью довольно сложно понять. Кто-нибудь может...

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

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

18
Как проследить поверхности Безье?

Я пробовал этот вопрос на математике. SE, и удивительно, ответ был "уравнения слишком скверны, просто передайте функцию в числовой корень искатель". Но если вы считаете себя «графическим парнем», как я, и много играли с кривыми Безье для дизайнерских работ, я должен поверить, что лучше можно...

18
Как правильно сочетать диффузные и зеркальные термины?

Насколько я понимаю, в BRDF термин Френеля говорит нам о вероятности того, что фотон будет отражен или преломлен, когда он достигнет поверхности. Отраженные фотоны будут вносить вклад в зеркальный член, а преломленные - в диффузный. Поэтому, определяя физически обоснованный вклад света в цвет...