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

8
Обрабатываются ли вершины по-поли для индексированных сеток?

Я немного покопался в том, что на самом деле происходит на аппаратном уровне в GPU, и нашел NVidia Life of the треугольник, который довольно хорошо объясняет конвейер, по крайней мере, для зеленых прямоугольников. Одна вещь, которая мне не ясна, это то, что происходит с индексированными сетками,...

8
Почему случайная выборка Монте-Карло вместо равномерной выборки?

Почему так часто используют случайные выборки Монте-Карло вместо равномерной выборки? Я предполагаю, что взятие рандомизированных образцов дает некоторую выгоду, но я не знаю, чем они могут быть. Может ли кто-нибудь объяснить преимущество случайных выборок по сравнению с однородными...

8
Сколько точности (половина, float, double и т. Д.) Достаточно для класса Color?

Читая о том, как приложения реального времени обрабатывают цвет в OpneGL, я заметил, что некоторые примеры реализовали Color как набор из 4 floats, а другие использовали 4 doubles. Я даже видел несколько примеров сжатия вершин в области разработки игр, которые рекомендовали сохранять цвета как 4...

8
Как правильно визуализировать видимый спектр с равномерной интенсивностью?

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

8
Код русской рулетки правильный?

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

8
Кодировать два буфера R11G11B10F в один, используя Y'CbCr?

Мы пытаемся оптимизировать освещение по скорости заполнения. Интегрированные графические чипы очень медленно обращаются к памяти. Есть два Light Buffers: один для Diffuse и один для Specular. Оба используют формат R11G11B10F. Есть ли способ упаковать два буфера в один? Например, используя цветовую...

8
поиск приемлемых качественных методов картирования теней

Недавно при поиске решения проблемы теневых угрей традиционного картирования теней я реализовал экспоненциальные карты теней. Он сделал свое дело (без прыщей вообще), но в то же время внес другие недопустимые ошибки. Для размытия карты глубины я использую размытие по Гауссу с наименьшей сигма = 1....

8
Что такое хорошая метрика цветового сходства?

У меня есть несколько цветов в RGB в [0,1], и я хочу найти способ оценить их сходство с точки зрения человека. Я имею в виду две идеи, но я уверен, что есть и другие варианты, но я не уверен, что лучше, или, возможно, нет лучшего, а только компромиссы. Моя первая идея - рассматривать цвета RGB как...

8
Какое физически точное представление цвета возможно в компьютерной графике?

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

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

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

8
Помогите мне понять Анизотропная фильтрация (AF)

В последнее время я читал о фильтрации текстур, а именно: фильтрация ближайших соседей, билинейная фильтрация, трилинейная фильтрация, анизотропная фильтрация, карты MIP, карты RIP и так далее. С точки зрения высокого уровня, я думаю, что могу понять эти методы, как работают и почему они...

8
Как я могу сместить / уменьшить треугольный многоугольник в GLSL?

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

8
Алгоритмы удаления высокочастотного шума из трассировки пути

Я некоторое время работал над своим рендерером, и мне интересно, есть ли способ убрать шум Монте-Карло из рендеринга, кроме как долго ждать, пока он не сойдет? Я нашел способ размыть изображение, что не очень полезно, так как это значительно снижает качество / резкость изображения. И я могу...

8
Почему половинный вектор не используется в диффузных расчетах БРДФ Френеля?

В настоящее время я работаю с презентацией Earl Hammon Jr PBR Diffuse Lighting для микроповерхностей GGX + Smith (в настоящее время упоминается как [PBR, p.XYZ]) и прочитал (среди прочих) физическое затенение Брента Берли в Disney (теперь упомянутое как [DIS , стр. XYZ], чтобы получить хороший...

8
Vulkan: унифицированные буферы и константы push для статических данных

Я пытаюсь понять концептуальную разницу между унифицированными буферами и константами push. Из того, что я могу почерпнуть, прочитав спецификацию, основные отличия: Однородные буферы могут быть намного больше, чем константы push. UBO используют std140, ПК используют std430. UBO могут быть обновлены...

8
Дает ли предварительно умноженная альфа прозрачность, независимую от порядка?

Я слышал, что предварительно умноженная альфа дает вам прозрачность, независимую от порядка, но когда я сажусь и делаю математику, она, похоже, не работает. Это неправда или я что-то делаю неправильно? Формула, которую я использую:...

8
Отслеживание пути и материалы

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

8
Почему графические процессоры делят пространство клипа Z на W для позиции?

Предыстория: я обнаружил, что очень просто использовать линейный буфер глубины, используя лишь небольшую модификацию канонического преобразования вершин. Самый простой способ находится внизу https://www.mvps.org/directx/articles/linear_z/linearz.htm . Тем не менее, предостережение заключается в...

8
Raytracing: почему сферы на изображении ниже выглядят растянутыми?

Некоторый контекст. Выше приведен код и полученное изображение для него в Raytracing Питера Ширли в книге выходного дня. Как видно из кода, он добавляет в некоторых сферах. И все же на последнем изображении есть 2 эллипсоида рядом. Я просто не могу понять, почему это так, независимо от того,...

7
Зачем реплицировать старшие биты RGB565 при конвертации в RGBA8888?

В некоторых базах кода программного обеспечения компьютерной графики я видел, что иногда старшие биты данных изображения в формате RGB565 реплицируются в младшие биты при преобразовании в формат RGBA8888 с большей глубиной бит. Например, я нашел комментарий пользователя "eq" в этой теме на...