Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Введение в Vulkan Raytracing (комментарии) (5 стр)

Введение в Vulkan Raytracing (комментарии) (5 стр)

Страницы: 14 5 6 711 Следующая »
0r@ngEУчастникwww7 ноя. 20185:36#60
Danilw
Я бы не стал приводить Shadertoy как пример, спека по OpenGL ES не гарантирует точность:

> While encodings are logically IEEE 754, operations (addition, multiplication, etc.) are not necessarily performed as required by IEEE 754

В то же время, например, CUDA это гарантирует.

DanilwПользовательwww7 ноя. 20188:18#61
>спека по OpenGL ES не гарантирует точность
>В то же время, например, CUDA это гарантирует.

проблема не в точности, а в алгоритме
я привел в пример тупой "попиксельный рейтрейсинг" что на CPU что на GPU(да если поставить 300+ шагов проблема битых пикселей практически уйдет, но появиться проблема тормозов)
на CUDA будет тоже что я показал https://github.com/clones1201/cudaRayTracing оба скриншота там это показывают (все демки на шадертой идентичны CUDA трейсерам, и на шадертое есть пара трейсеров которые дают идеальную картинку, но пара фпс/мин) вот "фотореалистичный" https://github.com/knightcrawler25/Optix-PathTracer без погрешностей, с рендер таймом по 6 мин на кадр
...кароче это "ray-tracing" vs "physically based path trace"

давай лучше про этот RTX(судя по демкам нвидии) эта проблема что я описал в демо роликах нвидии тоже есть(шагов мало для экономии производительности)
https://youtu.be/tjf-1BxpR9c?t=336 пиксели прыгают на отражении огого как(поэтмоу камеру наверно быстро убрали)
также раньше чайник бликовал, и на 5:12 прыгает отражение самое дальнее

Правка: 7 ноя. 2018 8:23

SuslikМодераторwww7 ноя. 20188:24#62
Danilw
ты какую-то дичь выдумываешь. floating-point операции что на GPU, что на CPU могут выполняться хоть с побитово одинаковой точностью. шумные пиксели появляются от реализации алгоритма, а не от того, на чём он запускается.

> пиксели прыгают на отражении огого как
их path tracer за это время элементарно не успевает сходиться к вменяемому решению, поэтому денойзер производит такие артефакты. опять же, абсолютно никакой разницы в качестве картинки между CPU и GPU не будет и быть не может, если алгоритм один и тот же.

DanilwПользовательwww7 ноя. 20188:29#63
>опять же, абсолютно никакой разницы в качестве картинки между CPU и GPU не будет и быть не может, если алгоритм один и тот же.

количество шагов, але

кароче это в чушь уже какуюто зашло

все я не прав(хз в чем но окей) успокойтесь

SuslikМодераторwww7 ноя. 20189:51#64
Danilw
> количество шагов, але
если алгоритм написан оптимально с точки зрения использования вычислительной мощности железа, то вычислительная мощность GPU как минимум на порядок больше. то есть тот же самый код либо отработает на GPU в 10 раз быстрее, либо позволит посчитать в 10 раз больше итераций. это какие-то не очевидные вещи?
MrShoorУчастникwww7 ноя. 201811:34#65
Danilw
> вот по быстрому сделал похожую сцену на GPU
> https://www.shadertoy.com/view/XlyBRz (с тенями и отражениями)
Твоя демка даже в маленьком окошке просто ушатала GF980, а GF1080Ti выдала всего 30FPS (в том же маленьком окошке).
Посему не смог проти мимо, и решил заглянуть что же в коде. А там батюшки святы, циклы в циклах в циклах. Тройной вложенности! Это же 96^3 = 884736 итераций. Неудивительно что оно сдохло.
Совершенно не было желания искать, где же ты там точность всю просрал. Поэтому я просто запилил свой код с твоей сценой:
https://www.shadertoy.com/view/XtGfzz
Я выкинул твои "итерации" на мороз, и вообще целиком цикл с освещением переработал. Теперь имеем абсолютную точность и 60FPS даже в фуллскрине.
Пока писал код дважды! наступил на баги в драйвере. Для одного сделал воркэраунд. Для второго было лень. Поэтому если в демке вдруг пол отражается черным, то раскомментировать строку //#define GeForce_BUGGY. Пол от этого перестанет быть матовым, и начнет отражать так же как и шары. Что инетерсно на GF1080Ti все норм, на GF980 отражения черные.
DanilwПользовательwww7 ноя. 201815:46#66
MrShoor
нормальную OS поставь челик
у меня Nvidia 750 GTS дает 50фпс в окошке, и 20-30 в 1920*1080 (в моем примере)
как у тебя на карте которая в 5-10 раз мощнее моей фпс ниже, я не знаю

>https://www.shadertoy.com/view/XtGfzz
молодец, возьми с полки пирожок
уделал так уделал, бросаю кодинг а удаляюсь из жизни
(что ты этим доказать хотел, кроме своей токсичности я незнаю, извини ес че)
(заменять полноценный рей-трейсер для любых SDF форм на Intersect простых форм(сферы плосности), такое себе)

>Пока писал код дважды! наступил на баги в драйвере. Для одного сделал воркэраунд.
ты наступил на баги в ANGLE, добро пожаловать

>Что инетерсно на GF1080Ti все норм, на GF980 отражения черные.
на 750 нвидии у меня все норм

скорее всего, эта таже проблема с чем я столкнулся тут https://danilw.github.io/cputests/wasm/sgame/best/sgame.html (на Windows будет одна планета черная(которая синего цвета), шум не будет генерироваться) когда тут
https://danilw.github.io/cputests/wasm/sgame/best_wfix/sgame.html с уменьшением цикла генерации шума на 1 все заработает (на Linux очевидно все работает в обоих случаях)
это Angle раскладывает вложения циклов до определенной глубины

Правка: 7 ноя. 2018 15:50

BingoBongoПостоялецwww7 ноя. 201815:56#67
Suslik
> ты какую-то дичь выдумываешь. floating-point операции что на GPU, что на CPU
> могут выполняться хоть с побитово одинаковой точностью. шумные пиксели
> появляются от реализации алгоритма, а не от того, на чём он запускается.
У нас в одном софте реализация одного и того же алгоритма на CUDA, OpenCL и CPU дает разную точность. Пришлось даже делать небольшие изменения только чтобы это учесть. Что мы делаем не так?

Правка: 7 ноя. 2018 16:00

itmanager85Постоялецwww7 ноя. 201816:01#68
BingoBongo
> У нас реализация одного и того же алгоритма на CUDA, OpenCL и CPU дает разную
> точность. Что мы делаем не так?

возможно на GPGPU fast math юзается для ряда случаев .. там вроде есть опция в виде "use safe math" (по крайней мере в RadeonRays есть такой параметр) .. правда что это именно для GPGPU не ручаюсь .. :D

DanilwПользовательwww7 ноя. 201816:04#69
>У нас в одном софте реализация одного и того же алгоритма на CUDA, OpenCL и CPU дает разную точность

в моих тестиках тоже, но я не стану утверждать(итак пол топана уже войну устроила) и списываю на то чего не знаю(хотя код копипаста шейдера 1 в 1)

itmanager85Постоялецwww7 ноя. 201816:09#70
BingoBongo
> У нас в одном софте реализация одного и того же алгоритма на CUDA, OpenCL и CPU
> дает разную точность.

и там и там 64-битные вычисления дают разный результат ?

вроде как в FPU вычисления проводятся и хранятся в регистрах с 80-битной точностью - может в этом ньюанс ?

BingoBongoПостоялецwww7 ноя. 201816:58#71
itmanager85
Везде используется только float без включения доп режимов.
> вроде как в FPU вычисления проводятся и хранятся в регистрах с 80-битной
> точностью - может в этом ньюанс ?
Да, про повышенную точность на CPU x64 я забыл. Но есть еще и различия между CUDA и OpenCL (особенно проявляется, если алгоритм накапливает ошибку).
MrShoorУчастникwww7 ноя. 201818:06#72
Danilw
> что ты этим доказать хотел, кроме своей токсичности я незнаю, извини ес че
Эта жи ниточный GPU, рейтрейсер нужна писать на CPU!!!111

> на 750 нвидии у меня все норм
>
> скорее всего, эта таже проблема с чем я столкнулся тут https://danilw.githu…
> st/sgame.html
Это была какая-то странная проблема связки драйвера+ANGLE. В эдже например все оказалось норм. После этого я обновил драйвера (стояли драйвера восьмимесячной давности), и стало все норм и в хроме. В том числе производительность подросла. Но даже подрощенная производительность не дала 60 FPS, а только около 50 на gf980.

itmanager85Постоялецwww8 ноя. 20181:31#73
вообщем посмотрел я реализацию HLBVH в RadeonRays_SDK. так вот , там закодена самая первая версия HLBVH которая билдится приблизительно раз в 7 медленнее чем ускоренная версия от nVidia (а сейчас она вообще вроде как перешла на TrBvh).

и оказалось что "HLBVH" в RadeonRays_SDK работает только с базовой сценой , а c тестовой (которая отлично работает на "BVH") - нет.

вывод - AMD глючное г..но (хотя для игр вроде норм, но я в них не играю), не даром на стиме любителей их видеокарт всего 17% .. :D

v1cПользовательwww8 ноя. 201819:00#74
itmanager85
> вывод - AMD глючное г..но (хотя для игр вроде норм, но я в них не играю), не
> даром на стиме любителей их видеокарт всего 17% .
гений дедукции!
Страницы: 14 5 6 711 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр