Как все считают «Лучи в секунду»?

8

Недавно я разрабатываю трассировщик Монте-Карло. Чтобы измерить производительность моего трассировщика, я решил реализовать простой механизм подсчета количества лучей, которые он может отследить за секунду. Тогда возникает проблема, есть два способа определить один луч:

  1. Полный луч, т. Е. Начиная с камеры и подпрыгивая вокруг сцены, пока не закончится.

  2. Луч исходил из каждой точки пересечения.

Хотя многие люди используют «Лучи в секунду» для измерения производительности трассировщика лучей / путей, мне неясно, как они распознают «лучи». Возможно, кто-нибудь знает?

D01phiN
источник
1
Я видел оба, к сожалению. Я не люблю лучи в секунду, поскольку они означают исключительно первичные лучи, и вместо этого я бы предложил «пути в секунду» или «выборки в секунду». «Полный луч» - это не имя, которое вы найдете в другом месте: луч - это неограниченный отрезок. Для трассировщика плохо указано «Лучей в секунду»: например, учитываются ли теневые лучи? Это полезный показатель для структуры ускорения (т. Е. Embree или OptiX), но не для визуализации.
Карл Шмидт
Кроме того, следует помнить, что количество сэмплов в секунду все еще не является хорошим показателем фактической производительности, поскольку качество сэмплов будет сильно различаться в зависимости от деталей реализации. Возможно, это лучшее, что вы можете сделать, начиная с самого начала, так как лучшие решения включают довольно сложные оценки дисперсии.
Карл Шмидт
@KarlSchmidt Я думаю, что вы должны опубликовать эти комментарии в качестве ответа;)
Натан Рид
Наверное, хорошая идея, да. :)
Карл Шмидт

Ответы:

4

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

Лучи в секунду в вашем втором смысле общего количества приведенных лучей не очень хорошо определены для трассировщика: подсчитывает ли, например, теневые лучи? Это полезный показатель для оценки структуры ускорения или среды тестирования пересечений (т. Е. Embree или OptiX), но я бы избегал этого для средства визуализации.

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

Карл Шмидт
источник
Отличный ответ. Чтобы добавить к этому, так как трудно придумать одну метрику, которая имеет универсальное значение, я бы посоветовал вам выбрать ту, которая является наиболее разумной / наиболее честной для вашего случая использования, и обязательно объясните, что вы подразумеваете под своей терминология.
Алан Вулф
Да, правильно, спасибо за прояснение моих мыслей! В настоящее время я выбираю «выборок в секунду», так как это легко понять и трудно понять неправильно IMO. В конце концов я реализую что-то, что может вычислить дисперсию и измерить производительность рендеринга на основе этого.
D01phiN