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

Q & A для исследователей компьютерной графики и программистов

2
Дорожка трассировки Кук-Торранс BRDF
- Извините за длинный пост, но я предпочитаю делать так, потому что « Дьявол кроется в деталях » :) Я пишу трассировщик пути с нуля, и он отлично работает для идеально диффузных (ламбертовских) поверхностей ( т. Е. Тест печи показывает - по крайней мере визуально), что он энергосберегающий, и отрисованные …

3
Избегать z-боев с совпадающими поверхностями
При рендеринге двух перекрывающихся копланарных поверхностей распространенной проблемой является «борьба по z», при которой средство визуализации не может решить, какая из двух поверхностей ближе к камере, создавая визуальные артефакты в области перекрытия. Стандартным решением этого является придание поверхностям небольшого смещения при проектировании модели. Есть ли другое решение?
26 rendering 

3
Что такое трафаретный буфер?
Википедия утверждает, что буфер трафарета - это произвольный буфер, который шейдер может использовать. Тем не менее, это намекает на то, что он используется для отсечения или иным образом «жестко связывает» буферы глубины и пикселей, слегка противореча самому себе. Что на самом деле делает трафаретный буфер и как он практически используется …

2
Какова стоимость смены государства?
Предполагается, что у программистов есть достаточно хорошее представление о стоимости определенных операций: например, о стоимости инструкций по ЦП, о потере кэша L1, L2 или L3, о стоимости LHS. Когда дело доходит до графики, я понимаю, что понятия не имею, что это такое. Я имею в виду, что если мы упорядочим …

1
Верна ли моя перспективная математика?
У меня есть домашнее задание, в котором я должен рассчитать и построить некоторые точки с использованием предполагаемого преобразования, но я не уверен, что мои результаты верны, так как 3D-график с использованием координат камеры выглядит очень отличающимся от 2-го графика с использованием координат изображения , Можете ли вы помочь мне понять, …

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

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

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

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


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

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

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

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

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

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