Дезанизатор
> Далеко не в каждый пиксель будут попадать 1000000 треугольников!
Там даже с десятком треугольников на пиксель проблемы будут. Честный расчет процента покрытия очень дорогой.
Я уж не говорю про то, что, например, после отражения от неровного зеркала твоя четырехугольная призма луча превращается непойми во что.
> А в перспективе, увидев, что картинка на порядки лучше
Картинка будет визуально неотличима от какого-нибудь MSAA64.
На порядки лучше картинка от качественной трассировки с тысячами лучей на пиксель.
> Если же держит, то затраты на ВЕСЬ КАДР, если эти 1000000 треугольников РАВНОМЕРНО раскиданы по экрану, на каждый пиксель по паре треугольников, будут РАВНЫ затратам на весь кадр, если весь этот миллион треугольников в одном пикселе, а остальные смотрят на один треугольник скайбокса.
В однопоточном CPU-рендере — да. В высокопараллельном рендере на GPU мало того, что надо на каждый пиксель заранее выделять память под максимальные 1000000 треугольников, так параллельность, в принципе, перестает работать.
Но, на самом деле, нет, ибо честный алгоритм нахождения покрытия окажется не O(n), а O(n²), и все треугольники в одном пикселе будут в миллион раз медленней равномерно распределенных. Понятно, что никто в здравом уме честный алгоритм использовать не будет, а будет использовать MSAA64 или там MSAA256, которые O(n).
Дезанизатор
> Зато это ПОЛНОСТЬЮ устраняет проблему "муара" и мерцания!!!
> А из зеркала может полететь несколько "корыт", если наше корытце попало частью
> на зеркало, а частью - нет... такие дела.
Гладко было на бумаге, да забыли про овраги. Предлагаю тебе написать демку с какой-нить спонзой.
Дезанизатор
На форуме есть статья про трассировку конусами https://gamedev.ru/code/articles/RTBA
И я недавно делал 2Д трассировщик 2Д конусами на RTX. Так что все можно приспособить без излишних переделок железа.
А еще есть пластилиновая игра с трассировкой SDF конусами и сферами.
Дезанизатор
> Уже несколько лет как напряжённо думаю вечерами о принципиально новом механизме
> рендеринга, он кажется мне очевидным.
Теперь подумай напряженно несколько лет над тем, почему текущий механизм рендеринга был выбран и какая база стоит за ним, глядишь и бессмысленность своей темы поймешь.
MrShoor
> Выглядит качественно, но малополезно
У меня локально эти сцены, полученные через PyTorch, выглядели намного лучше, чем по ссылке в браузере.
Вообще гаусов сплаттинг интересная вещь в плане запекания в них какой-то информации, в отличии от пикселей несжатое изображение весит как сжатое, но не такое шакальное как JPG, а ведь еще сжать можно.
Проблема в том, что твои изобретения нужны только тебе, автор. И пока ты сам не сядешь и не сделаешь MVP - никому не будет интересно. У всех всё работает и всех всё устраивает. Возможно, ты просто изобрел триангл-кулинг для цпу растеризатора в 1 поток. Возможно, что ты даже угадал, как работает 1 потоковый гпу.
Дезанизатор
Молодец! Все делаешь правильно! За этим алгоритмом будущее.
Ничего в этой идее сверхестественного нет, рано или поздно все к ней прийдут.
GhostCoderPPetrov
А в чем, собственно, идея, и как быть с распараллеливанием, каким образом расстеризировать отражения на изогнутых поверхностях? Что мешает без свистоплясок просто уже сейчас отрендить в высоком разрешении и просто свернуть с усреднением?это будет явно быстрее, чем то, что предлагает автор темы, хотя он так сумбурно описал "идею". В недалеком будущем будет гораздо практичнее рейтрейсить из камеры лучики в сцену с одним sbp и затем вторым проходом по этому буферу пройтись уже по отфильтрованым пикселям, у которых разница с соседями превышает заданный порог (адаптивный сэмплинг) с нужным подразбиением лучей на пиксель. Так зато распараллеливается и без лишних телодвижений, это если не упомянать нейронку, которая сможет во многих случаях предугадать, где каких сэмплов не хватило и дополнить при необходимости за дешево.
Дезанизатор
> UPD: продолжение теории на 2 странице
Это какая то интерактивная книга, а не пост. С сообщений ссылки на другие сообщения...
Дезанизатор
> Зато это ПОЛНОСТЬЮ устраняет проблему "муара" и мерцания!!!
Не устраняет же?
Представь тонкую белую башню вдалеке, которая у тебя будет шириной ровно попадать в ширину фрустума пикселя экрана. Это даст белый пиксель в результате, с чёрными соседями.
Теперь поворачиваем камеру так чтобы на следующем кадре в фрусум попадало полбашнки. У тебя будут два серых пикселя на чёрном фоне.
Поворачиваем ещё на тот же угол. Снова один белый пиксель.
Будет ли это восприниматься глазом как мерцание (особенно учитывая гамма-коррекцию)? Может да, может нет. 1080p я подозреваю что да.
Дезанизатор
>Я хочу поэтому попробовать сделать софт-рендерер моего нового типа
И он будет тормознее аппаратного. Но прикол в том, что он энвидии нафиг не впарится, чтобы его в железо всобачить. Потому что она специально устраивает дефективную комплектацию видеокарт: то шину урежет, то несколько чипов памяти недопаяет, а если захочешь больше памяти - покупай в разы более дорогую железяку! Недавно Нитроксенус кастомные старые видухи тестировал в играх: в них с завода было 3 гига оперативки, а впаяли 6 и получилось круто. А энвидия так делать не хочет, значит и с рендером обжулит, тем более, что его можно заменять подкрашиванием частей картинки нейросетками, а их можно каждые два года менять на чуть более лучшие. Надо тебе немыльный фон? Вот тебе шарпинг от нейросетки или нарисует что-нибудь похожее по цвету на горизонте. Если вместо коровы нарисует демонов - ну так получилось, зато чётко. Вот это реальная технология, которую можно каждые два года продавать заново, и тут приходишь ты и предлагаешь порушить бизнес.
Дезанизатор
> Далеко не в каждый пиксель будут попадать 1000000 треугольников! На такой
> крайний случай можно и предусмотреть пропуски какие-нибудь. Нашли 10000
> треугольников - стоп, берём тот цвет, что вычислен на данный момент. Будет не
> хуже 1 теперешнего луча! Или придётся сделать LOD-ы. Или что-то похожее.
Во вселенной, где существуют лоды, твоя техника вообще ни к чему, ибо проще просто подогнать лоды так, чтобы любой треугольник в любой момент времени занимал не меньше стольких-то полных пикселей по размеру.
А ту белую башню — тупо лодануть до биллборда, или вообще в кубомапу скайбокса запечь.
GLoom
> Будет ли это восприниматься глазом как мерцание (особенно учитывая гамма-коррекцию)?
Если сделать правильно (с гамма коррекцией) и у монитора не совсем убитый цветовой профиль, то мерцания не будет. Собственно, я когда-то даже пример приводил:
}:+()___ [Smile]
Хорошо бы гифку сделать где эти полоски ползут.
Тема в архиве.