Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR COMPUTING DISTINCT CAUSTICS IN COMPUTER GRAPHICS
Document Type and Number:
WIPO Patent Application WO/2018/044193
Kind Code:
A1
Abstract:
Disclosed are embodiments of a method for efficiently processing a large number of photon collection points in an iterative process of computing images with caustics. One of the aims of this invention is to provide a simplified method of addressing a large number of visually significant collection points, while also economizing memory for the structure of collection point storage data (restricted by a fixed-size buffer), and increasing the accuracy and speed of processing images with caustics.

Inventors:
GARANZHA KIRILL VLADIMIROVICH (RU)
Application Number:
PCT/RU2016/000595
Publication Date:
March 08, 2018
Filing Date:
August 31, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
OBSCHESTVO S OGRANICHENNOI OTVETSTVENNOSTYU CENTILEO (RU)
International Classes:
G06T15/06; G06T15/50
Foreign References:
US20120038644A12012-02-16
US8847957B12014-09-30
US8928656B22015-01-06
US20140176575A12014-06-26
Attorney, Agent or Firm:
KOTLOV, Dmitry Vladimirovich (RU)
Download PDF:
Claims:
ФОРМУЛА

Способ расчета каустик, включающий:

- - обработку и хранениу большого количества точек сбора фотонов в итеративном процессе вычисления изображений с каустиками в условиях многократных отражений и преломлений световых лучей в сцене,

и

- адаптацию множества радиусов точек сбора для наиболее визуально значимых точек сбора фотонов в сцене.

2. Способ по п.1 , включающий:

организацию адресации визуально значимых точек сбора фотонов в участках сцены, в условиях многократных отражений и преломлений вдоль траектории лучей;

3. Способ по п.2, в котором частью адреса точки сбора в сцене может быть

информационное поле, содержащее индикаторы отражений и преломлений, расположенные в порядке построения траектории лучей;

4. Способ по п.З, в котором адрес точки сбора используется для чтения и записи информации о сохранённых точках сбора в специальное хранилище точек сбора;

5. Способ по п.4, в котором в хранилище точек сбора с наибольшим приоритетом сохраняются записи точек сбора, которые вносят наибольший визуальный вклад в изображение;

6. Способ по п.5, в котором точки сбора в хранилище с учётом метода наполнения хранилища используются для итеративной адаптации радиусов сбора фотонов для большого количества видимых точек в сцене в условиях многократных отражений и преломлений;

7. Способ по п.6, в котором итеративная адаптация радиусов точек сбора фотонов используется как метод ускорения сбора ближайших фотонов к заданной точке.

Description:
СПОСОБ РАСЧЕТА ЧЕТКИХ КАУСТИК В КОМПЬЮТЕРНОЙ ГРАФИКЕ

ТЕХНИЧЕСКАЯ ОБЛАСТЬ

[Q9D01 ] Данное техническое решение относится к обработке графических компьютерных

данных и кэшированию.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

[0002] Каустика - это эффект, при котором фотон, исходящий из источника света, распространяясь в сцене, проходит через преломления и отражения, в результате он

10 концентрируется в узких участках сцены (наиболее ярко это выражено при прохождении света через гладкие поверхности, такие как зеркало или стекло). Самый простой пример эффекта каустик из реальности - это прохождение света через увеличительное стекло. Также световые узоры каустик сложной формы появляются через комнатные хрустальные люстры, через систему рефлекторов и стекла автомобильных фар, хромированных дисков,

15 бокалов с жидкостью и т.д. На Фиг. 1 и Фиг. 2 представлены компьютерные каустики.

[0003] В расчётах компьютерной графики эффект каустик повышает уровень реализма, но при этом является ресурсоёмким.

[0004] Основным способом расчёта каустик является метод фотонных карт (см. источник

20 http://qraphics.ucsd.edu/~henrik/papers/book7, "Rendering Caustics on Non-Lambertian Surfaces", Henrik Wann Jensen, Proceedings of Graphics Interface '96, pages 1 16-121 , Toronto, May 1996 - описан алгоритм фотонных карт Хенрика Ван Дженсена), суть которого заключается в том, что сначала из источников света в сцену трассируются фотоны, которые отражаются и преломляются через поверхности объектов, имеющих прозрачность, а также сохраняются на

25 поверхностях объектов с помощью специальной структуры данных, называемой фотонной картой. При этом в каждой точке фотон хранит энергию света, которая дошла до этой точки. После этого требуется произвести трассировку лучей из камеры в сцену, которые отражаются и преломляются через поверхности объектов, и при этом в точках пересечения луча и поверхности объекта производится операция сбора фотонов с заданным радиусом либо с постепенным увеличением радиуса сбора фотонов до нахождения к фотонов в 5 радиусе сбора. Т.е. производится поиск к ближайших соседних фотонов (и это аналогично KNN search - поиску к ближайших соседей - популярный алгоритм в компьютерных науках). После этого, на основе информации об энергии к ближайших фотонов вычисляется яркость пикселя, для которого трассировались лучи из камеры. В результате использования этой стратегии поиска становится возможным получение эффекта каустик гораздо быстрее

10 (иногда на несколько порядков быстрее), чем с помощью трассировки лучей из камеры в поисках источников света без использования фотонной карты.

[0005] Также достоинством такого подхода является возможность повторного использования фотонной карты при движении камеры.

[0006] Однако недостатком такого метода является ресурсоёмкий расчёт радиуса сбора

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

20 в сцене, чтобы в результате меньшем радиусе сбора находились хотя бы к фотонов. Однако для сложных сцен количество фотонов может потребоваться настолько большим, что никаких современных объёмов и пропускной способности памяти может не хватить.

[0007] Для решения проблемы увеличения объёма хранения фотонных карт был предложен метод стохастических прогрессивных фотонных карт (http://www. ci .i . u-tokvo.ac. jp/~hachisuka/

25 "Stochastic Progressive Photon Mapping" T. Hachisuka and H. W. Jensen ACM Transactions on Graphics (SIGGRAPH Asia 2009)). Суть этого метода и других производных от него заключается в создании на каждой итерации фотонной карты, учёту данных из неё в течение действия операций итерации, удалении её и повторении этих действий на каждой последующей итерации с новой фотонной картой. Это способ решает проблему потребления памяти для фотонных карт, однако также требует использования одного параметра радиуса сбора фотонов, применяемого для всех пикселей изображения. Как правило, слишком 5 большой радиус сбора фотонов создаёт размытые изображения с каустиками, а маленький радиус создаёт большой уровень шума в рассчитываемом изображении и порождает медленную сходимость к правильному результату.

[0008] Проблемой реализации настраиваемого радиуса для всех точек является тот факт, что луч, выпущенный из камеры для расчёта яркости всего лишь одного пикселя, может

10 пройти через многократные отражения или преломления, где в каждой точке пересечения луча и геометрии стекла часть энергии отражается, а другая часть преломляется (см. Фиг. 1). Таким образом, при расчёте нескольких уровней отражений/преломлений света возникает "экспоненциальный взрыв" количества лучей (см. Фиг. 2), а, следовательно, и количества точек в сцене, для которых необходимо вычислить операцию сбора фотонов, чтобы получить

15 чёткие каустики через отражения и преломления в стекле.

[0009] При этом существует возможность не рассчитывать экспоненциальное количество лучей для визуализации проникающего света через стекло, т.к. можно с помощью методов теории вероятности в каждой точке пересечения луча и поверхности объекта с определённым множителем продолжать путь следования луча только для отражения или

20 преломления луча (см. Kajiya, J. Т. (1986). "The rendering equation". Proceedings of the 13th annual conference on Computer graphics and interactive techniques. ACM. CiteSeerX: 10.1.1.63.1402.). Однако такой метод не позволит сохранить все точки сбора фотонов для автоматической настройки радиуса сбора для большинства участков сцены, вносящих значимый вклад в рассчитываемое изображение.

Р- 10] Когда подобная ситуация с экспоненциальным взрывом возникает для многих пикселей в изображении, или даже для всего изображения, то чрезмерным может оказаться потребление памяти на содержание истории изменения радиуса с целью уточняющей настройки радиуса во всех значимых точках сбора в прогрессивном методе расчета фотонных карт.

КРАТКОЕ ОПИСАНИЕ МЕТОДА

[QD11] В настоящем методе впервые предлагается эффективный способ автоматического вычисления радиуса сбора фотонов для всех пикселей изображения, представляющий особую ценность для вычисления чётких каустик, видимых через преломляющее поверхности объектов, имеющие прозрачность. Причём отличительной и наиболее новаторской особенностью данного способа является эффективный учёт и хранение всех

10 точек сбора, которые могут получиться в результате многократных отражений и преломлений через поверхности объектов сцены. Таких точек сбора может быть огромное количество, но при этом наиболее точный учёт ведётся для наиболее визуально значимых точек сбора.

[0012] Одним из примеров воплощения разработанного метода является хранение

15 наиболее важных точек сбора фотонов с учётом экспоненциального взрыва отражений/преломлений для изображения в рамках ограниченного буфера памяти, а также с применением теории вероятности для определения множества важных точек сбора.

ОПИСАНИЕ РИСУНКОВ

[0013] Многие аспекты раскрываемого метода становятся наглядными при сопровождении 20 рисунком и схемы. Задачей расстановки компонент рисунков является демонстрация принципов раскрываемого способа вычисления каустик. Более того, нумерация компонент рисунка обозначает определённые части раскрываемого способа вычисления каустик.

[0014] Фиг. 1 и Фиг. 2 иллюстрируют примеры вычисления каустик.

[0015] Фиг. 3 показывает отражённый и преломлённый луч для исходного луча. Существует 25 частичная или полная прозрачность с индексом преломления.

[0016] Фиг. 4 показывает расчетные лучи, содержащие информацию о распространении энергии света, где каждый луч может распадаться на отражённые и преломлённые лучи (если есть доля прозрачности). Несколько последовательно идущих лучей могут составлять траекторию лучей (иначе может применяться термин путь лучей). При многократных отражения и преломлениях возникает "экспоненциальный взрыв" количества лучей.

[0017] Фиг. 5 демонстрирует движение луча из камеры в сцене для отслеживания 5 приходящего света на сенсор камеры. Адрес фотона может содержать номер пикселя или блока соседних пикселей в изображении (pixeljd), а также битовую маску, основанную на записи 0 или 1 в зависимости от прохождения луча через отражения или преломления (например, через стекло), либо иной записи, кодирующий последовательность отражений и преломлений в порядке их следования в траектории лучей.

[DD18] Фиг. 6 демонстрирует пример хранилища точек сбора, где каждая точка сбора может содержать поля Адрес, ВероятностьПути (произведение коэффициентов видимого отражённого или преломлённого света), радиус сбора (см [0024]).

[0019] Фиг. 7 иллюстрирует стадии итерации расчёта изображения с каустиками с учётом использования хранилища точек сбора фотонов с адаптивно настраиваемыми радиусами

15 сбора для расчёта изображения с каустиками.

[0020] Фиг. 8 иллюстрирует изображение стандартного способа расчета каустик через стеклянную сферу.

[0021 ]Фиг. 9 иллюстрирует изображение способа расчета каустик через стеклянную сферу с адаптивно настраиваемыми радиусами.

20 ДЕТАЛЬНОЕ ОПИСАНИЕ МЕТОДА

[0022] Раскрываются примеры воплощения метода эффективной обработки большого количества точек сбора фотонов в итеративном процессе вычисления изображений с каустиками. Одной из целей реализации этого метода может служить упрощённый способ адресации большого количества визуально значимых точек сбора, а также, экономия памяти,

25 требуемой для структуры данных хранилища точек сбора (ограничение фиксированным размером буфера), повышение точности и скорости вычисления изображения с каустиками. [0023] Созданный способ может включать в себя метод вычисления адреса каждой точки сбора фотонов для видимых точек сцены с учётом переотражений (см. Фиг. 5). Во-первых, одним из элементов для составления адреса может являться pixeHd (3.1 см. Фиг. 5) (уникальный номер пикселя или блока соседних пикселей, для которого производится 5 трассировка лучей и, соответственно, вычисление и установка точек сбора фотонов). Во- вторых, одним из элементов адреса может быть битовая маска bounce_mask (3.2 см. Фиг. 5), в которой устанавливаются биты:

в значении 1 , если луч проник через прозрачную поверхность (например, с преломлением),

10 или в значении 0, если луч был отражён.

В некоторых примерах реализации с целью составления адреса точки сбора возможно организовать информацию об отражённых или преломлённых лучах иным способом, например 0 и 1 применять для преломлений и отражений, либо использовать другие схожие по сути способы, кодирующие последовательность отражений и преломлений

15 для имеющейся траектории лучей.

[0024] Также, совместно с адресом каждой точки сбора фотонов может храниться специальная запись ВероятностьПути, которая содержит в себе произведение коэффициентов Френеля, которые применяются при расчёте вклада света в яркость пикселя вдоль пути, пройденного лучом через отражения и преломления. Например, вместо

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

25 проведённого/преломлённого света, видимого через частично или полностью прозрачную поверхность объекта (информацию о том, что такое коэффициент Френеля для отражений/преломления можно найти, например в Physically Based Rendering, Second Edition: From Theory To Implementation 2nd Morgan Kaufmann Publishers Inc. San Francisco,

CA, USA ©2010 ISBN:0123750792 9780123750792).

[0025] Следовательно, в записи ВероятностьПути для соответствующей траектории лучей, которая посредством отражений и преломлений строит путь от камеры до точки сбора 5 фотонов, можно хранить произведение всех применённых коэффициентов Френеля в процессе построения траектории лучей.

[0026] В некоторых реализациях метода в ходе трассировки лучей и при расчёте отражений и преломлений создаётся адрес точки сбора фотонов, который может содержать pixeljd и bounce_mask, а также запись ВероятностьПути. Если в некоторой точке пересечения луча 10 и поверхности сцены необходимо осуществить операцию сбора фотонов, то в этой точке вычисляется Адрес точки сбора (согласно [0020]) и с использованием этого адреса выбирается запись фотона с таким же адресом из хранилища точек сбора (см. Фиг 6).

Предварительно, до начала расчётов хранилище должно инициализироваться вовсе без точек сбора.

PD27] Если в хранилище точек сбора находится запись, соответствующая искомому адресу, то её соответствующий радиус используется в операции сбора фотонов в этой точке для вычисления вклада каустик в пиксель, для которого рассчитывалась соответствующая траектория лучей на текущей итерации. Причём в некоторых реализациях в операции сбора фотонов можно не изменять радиус сбора дополнительными действиями для набора

20 большего или меньшего количества фотонов. Такое изменение радиуса может быть произведено внутри следующей общей итерации обработки лучей и сбора фотонов с изменённым радиусом для всех точек сбора. Благодаря итеративному накоплению изображения величины радиусов автоматически адаптируются к условиям сцены в каждой точке сбора фотонов. Эта стратегия позволяет использовать значительно меньшее

25 количество поисковых вычислений.

[0028] Значение использованного радиуса сбора в таблице точек сбора может быть изменено для возможных последующих итераций расчёта изображений с каустиками. Например, если радиус сбора фотонов на текущей итерации не достаточен для нахождения хотя бы одного или нескольких фотонов, то радиус, соответствующий записи в хранилище, может быть увеличен для следующей итерации расчёта изображения с каустиками. Если радиус чрезмерно большой, так что позволяет найти большее количество фотонов в точке, 5 чем необходимо, то такой радиус может быть уменьшен для следующей итерации.

[0029] Если в хранилище точек сбора не находится запись, соответствующая искомому радиусу, то для данной точки возможно использование вычисления такого радиуса более ресурсоёмкими методами для такой точки во время текущей операции. Способ наполнения хранилища точек сбора позволяет редко порождать эту ситуацию (см. [0027] и [0030]).

PD30] В результате вычислений, произведённых согласно [0026-0029], для каждой точки сбора рассчитан адрес, ВероятностьПути и радиус точки сбора (см. [0026]), с возможными изменениями, (как показано [0028]). Таким образом, по окончании выполнения операции сбора фотонов на текущей итерации расчёта изображения с каустиками для всех траекторий лучей возникают точки сбора, являющиеся кандидатами на добавление в хранилище точек

15 сбора (вместе с новым значением радиуса). Причём в хранилище точек сбора попадают те записи-кандидаты с точками сбора, которые можно добавить в частично заполненное хранилище. Причем возможно установить максимальный размер хранилища точек сбора. Либо если хранилище точек сбора полностью занято, то в него могут вноситься с замещением записи-кандидаты, у которых значения ВероятностьПути выше, чем у записей,

20 находящихся в хранилище.

[0031] С ростом числа рассчитанных итераций в хранилище точек сбора оказываются записи с наиболее высоким значением ВероятностьПути. Причём ВероятностьПути является произведением всех коэффициентов видимости траектории пути, где в каждой точке пересечения луча и объекта коэффициент видимости может определять долю видимого

25 света в этой точке через отражение или преломление (например, в качестве доли видимого света возможно использование коэффициента Френеля). [0032] Отличительной особенностью данного способа расчёта каустик является то, что в хранилище точек сбора удерживаются записи с наибольшими значениями ВероятностьПути. И этот способ по построению помогает отбирать для этого хранилища те точки сбора в сцене, которые дают наибольший вклад в изображение с каустиками 5 (благодаря использованию произведения всех коэффициентов видимости).

[0033] Кроме того, благодаря содержанию в хранилище точек сбора наиболее значимых для изображения записей [0027] [0030] (и 5.9 на Фиг.7) поиск ближайших фотонов может быть выполнен с помощью меньшего количества вычислительных операций, а использование произведения коэффициентов видимости ВероятностьПути как критерия записи точек

10 сбора в хранилище (5.2 Фиг.7) позволяет автоматически настраивать радиусы для большинства точек в сцене, вносящих значимый вклад в изображение с каустиками в течение ряда итераций и может позволить генерировать чёткие каустики. На Фиг. 8 и Фиг. 9 представлены изображение каустикчерез стеклянную сферу: на Фиг. 8 обычный способ, на Фиг. 9 - с адаптивно настраиваемыми радиусами.

15

20

25