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

Ускоряющая структура для эффективной трассировки линий (2 стр)

Страницы: 1 2 3 4 5 Следующая »
#15
(Правка: 9:52) 9:48, 8 июля 2024

THE_MASTER
> Что считается пересечение луча и отрезка? Ну очевидно, минимальная дистанция от луча до отрезка
А для чего это нужно? Для рендера отрезков, их выделения мышкой или что?

> времени на исследования хоть в чём-то практически нет, а жизнь уходит...
+

#16
9:53, 8 июля 2024

1Man1
> для чего это нужно? Для рендера отрезков, их выделения мышкой или что?
Ну так а для чего ещё? Конечно для этого, а если быть точнее - для рендера рёбер граней модели.

#17
(Правка: 10:05) 9:56, 8 июля 2024

THE_MASTER
Чем не устраивает растеризация?
Ты хочешь рисовать только ребра, т.е wireframe?
Но и это сильно не нагрузит видеокарту, зачем тебе нужен рэйтрэйсинг
Линия не имеет толщины, ее пересечение с лучами, пущенными через центры пикселей имеет вероятность, равную 0. Надо строить пирамиду через углы каждого пиксела

#18
10:13, 8 июля 2024

THE_MASTER
Суть трассировки в том чтобы можно было пустить немного лучей на 360 градусов и посчитать апроксимацию (денойзер), а все остальные случаи решаются растеризацией.

#19
10:38, 8 июля 2024

1Man1
> Линия не имеет толщины, ее пересечение с лучами, пущенными через центры пикселей имеет вероятность, равную 0.
линия имеет толщину, она как раз и задаётся минимальной дистанцией от луча до отрезка.

1Man1
> Чем не устраивает растеризация?
/A\
> а все остальные случаи решаются растеризацией.
Нет. Растеризатором решаются задачи отрисовки небольшого количества линий, а если нужно рисовать десятки миллионов линий - только RTX. Главная особенность RTX не в отражениях на заднице девахи в блестящих штанах как в презентации nvidia, а в ускоряющей структуре, которая позволяется трейсить миллионы линий, в то время как растеризатор загнётся при прочих равных и на 100 тыщах, а скорее - и раньше, т.к. для отрисовки ему обязательно нужно перебрать все линии.

#20
(Правка: 11:03) 10:46, 8 июля 2024

THE_MASTER
> если нужно рисовать десятки миллионов линий
Даже если считать что от каждой линии виден один пиксел, они же покроют всю поверхность экрана и где там линии уже не различишь. Ты делаешь чтото не то

Для начала нужен frustum culling, тут как раз подойдет kd-tree

#21
10:48, 8 июля 2024

THE_MASTER
> если нужно рисовать десятки миллионов линий
Есть еще постпроцессы, чтоб не рисовать линии вообще, а создавать их видимых гранях

А вообще у меня 1млн партиклов с прозрачностью рисуются в одной точке за 3мс. Это намного тяжелее рисования непрозрачных линий. Вот на мобилках это тормозит, но там и RTX нету.

#22
11:07, 8 июля 2024

1Man1
> Даже если считать что от каждой линии виден один пиксел, они же покроют всю поверхность экрана и где там линии уже не различишь. Ты делаешь чтото не то
линии могут быть сзади камеры, могут быть закрыты другими объекта (так и есть в большинстве случаев), так что не следует думать, что если у тебя миллионы линий, они все обязательно должны быть отрендерены хотя бы в один пиксель. А вот что бы иметь возможность рендерить такое количество - нужна ускоряющая структура, растеризатор ляжет на миллионах линий.

/A\
> Есть еще постпроцессы, чтоб не рисовать линии вообще, а создавать их видимых гранях
ты имеешь ввиду outline? Да не, это не подходит, т.к. линии должны иметь возможность рисоваться не только по краям, но и за объектами, я про как бы невидимые линии, которые обычно рисуются штрихпунктиром, короче, постпроцессом не нарисуешь.
Изображение

/A\
> А вообще у меня 1млн партиклов с прозрачностью рисуются в одной точке за 3мс
а ты попробуй отрисуй 60 миллионов

#23
(Правка: 11:29) 11:13, 8 июля 2024

THE_MASTER
> линии могут быть сзади камеры
их надо отсечь по frustum culling
> могут быть закрыты другими объектами
так все-таки есть сплошные обьекты?

Посмотри HiZ - мипмап пирамида из Z-буффера, берется max Z из 4х пикселей, уровни от разрешения экрана до 1х1. При растеризации сравниваешь min Z примитива с Z в первом уровне HiZ, если больше - отбрасываешь, иначе по рекурсии с 4мя пикселами на след уровне и не обновлять Z в уровнях для фрагментов, прошедших тест.
Эффективнее отсекать сразу по много примитивов, отсекая прежде их оболочки

#24
11:17, 8 июля 2024

1Man1
> их надо отсечь по frustum culling
что бы тебе отсечь по frustum culling, тебе сперва нужно перебрать все линии и поможить их на матрицы трансформации, то есть полный перебор, понимаешь?
1Man1
> так все-таки есть сплошные обьекты?
разумеется, линии RTX у меня - это рёбра граней 3д моделей

#25
11:19, 8 июля 2024

THE_MASTER
> линии должны иметь возможность рисоваться не только по краям, но и за объектами
depth peeling
Врядли тебе нужны прям все задние линии, тогда каша получится, а вот перерисовать задние грани одного объекта это дешево

THE_MASTER
> что бы тебе отсечь по frustum culling, тебе сперва нужно перебрать все линии и поможить их на матрицы трансформации, то есть полный перебор, понимаешь?
Так у тебя детали должны отсекаться по фрустуму, а линии привязаны к деталям...

#26
11:26, 8 июля 2024

/A\, да не, там знаешь в чём прикол, количество линий не равно количеству рёбер треугольника, это не wireframe mode, то есть RT-линии - это только рёбра:
Изображение

#27
11:31, 8 июля 2024

THE_MASTER
> что бы тебе отсечь по frustum culling, тебе сперва нужно перебрать все линии и поможить их на матрицы трансформации, то есть полный перебор, понимаешь?
Надо группировать линии в оболочки вроде kd-tree

#28
11:53, 8 июля 2024

THE_MASTER
> количество линий не равно количеству рёбер треугольника
Так пишешь ID полигона в текстуру и постпроцессом находишь именно ребра.

#29
12:24, 8 июля 2024

1Man1
> Надо группировать линии в оболочки вроде kd-tree
воо, видишь, ты уже предлагаешь дерево, об этот и речь в этом треде:)
/A\
> Так пишешь ID полигона в текстуру и постпроцессом находишь именно ребра.
всё равно линии нужны как отдельная сущность, т.к. есть несколько разных режимов рендера, есть меш+лини, есть меш, а есть просто линии.  Более того, я тестировал "текстурный линии", то есть не затухание по какому-нибудь би-кубику, а текстура с фейдом, короче, на миллионах линий конкретно проседает фетчинг текстур.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумГрафика