Функція відстані зі знаком

Графік (внизу, червоним кольором) відстані зі знаком між точками площини (синім кольором) та круга (показаного вгорі, сірим кольором)
Складніша множина (вгорі) та графік її функції відстані зі знаком (унизу, червоним кольором)

У математиці та її застосуваннях, функція відстані зі знаком або поле відстані зі знаком (ПВЗ; англ. SDF — signed distance field) — ортогональна відстань від заданої точки до межі множини в метричному просторі (наприклад, поверхні геометричної фігури), причому знак визначається тим, чи міститься усередині . Функція має додатні значення в точках усередині , її значення зменшується, коли наближається до межі , де функція відстані зі знаком дорівнює нулю, і набуває від'ємних значень поза .[1] Однак іноді замість цього використовують протилежну домовленість (тобто від'ємні значення всередині та додатні зовні).[2] Цю концепцію також іноді називають орієнтованою функцією/полем відстані.

Визначення

Нехай  — підмножина метричного простору X із метрикою d, а  — її межа. Відстань між точкою із X та підмножиною X визначають, як

де позначає інфімум.

Функцію відстані зі знаком від точки із X до визначають як

Властивості в евклідовому просторі

Якщо  — підмножина евклідового простору Rn з кусково-гладкою межею, то функція відстані зі знаком диференційовна майже скрізь, а її градієнт задовольняє рівняння ейконалу

Якщо межа є для (див. Класи диференційовності), то є в точках, достатньо близьких до межі .[3] Зокрема, на межі задовольняє умову

де N — векторне поле нормалей внутрішньої ділянки. Таким чином, функція відстані зі знаком є диференційовним розширенням поля нормалей. Зокрема, гессіан функції відстані зі знаком на межі дає відображення Вайнгартена.

Якщо, далі,  — це ділянка, достатньо близька до межі , така що є двічі неперервно диференційовною на ній, то існує явна формула, що включає відображення Вайнгартена для якобіана змінюваних змінних через функцію відстані зі знаком та найближчу точку межі. Зокрема, якщо  — множина точок на відстані від межі (тобто трубчастого околу радіуса ), а  — абсолютно інтегровна функція[en] на , то

де det позначає визначник, а вказує на те, що ми беремо поверхневий інтеграл.[4]

Алгоритми

Алгоритми для обчислення функції відстані зі знаком включають ефективний метод швидкого крокування[en], метод швидкого прибирання[en] та загальніший метод установлення рівнів[en].

Для воксельного рендерингу швидкий алгоритм обчислення ПВЗ в мангеттенській метриці використовує таблиці сумарних площ.[5]

Застосування

Поля відстані зі знаком, збережені як растрові зображення, можна використовувати для представлення фігур.

Функції відстані зі знаком застосовують, наприклад, для рендерингу в реальному часі,[6] зокрема, в методі ПВЗ-маршування променів[en], та в комп'ютерному зорі.[7][8]

ПВЗ використовують для опису геометрії об'єктів у режимі реального часу, зазвичай у контексті маршування променів, починаючи від середини 2000-х років. 2007 року Valve використовувала ПЗВ для рендерингу гладких шрифтів[en] за великого розміру пікселів (або високої роздільності) в іграх із прискоренням ГП.[9] Метод Valve не ідеальний, оскільки працює в растровому просторі, щоб уникнути обчислювальної складності розв'язання задачі в (неперервному) векторному просторі. Відрендерений текст часто втрачає гострі кути. 2014 року Бегдад Есфагбод[en] представив удосконалений метод. GLyphy Бегдада апроксимує криві Безьє шрифту за допомогою дугових сплайнів, із прискоренням методами дискретизації на основі сітки (які відсікають занадто віддалені точки) для роботи в режимі реального часу.[10]

Модифіковану версію ПВЗ введено як функцію втрат для мінімізації помилки взаємопроникнення пікселів під час візуалізації кількох об'єктів.[11] Зокрема, для будь-якого пікселя, який не належить об'єкту, якщо він лежить поза об'єктом відтворення, поправка не робиться; якщо ж належить, то застосовується додатне значення, пропорційне його відстані всередині об'єкта.

2020 року у вільному ігровому рушії Godot 4.0 з'явилося глобальне освітлення в реальному часі на основі ПВЗ (ПВЗГО; англ. SDFGI — SDF-based global illumination), яке стало компромісом між реалістичнішим воксельним ГО та запеченим ГО. Його основна перевага в тому, що його можна застосовувати в нескінченному просторі. Це дає змогу розробникам використовувати його для ігор з відкритим світом.[12]

2023 року автори текстового редактора Zed анонсували фреймворк GPUI, який малює всі елементи інтерфейсу користувача за допомогою графічного процесора зі швидкістю 120 кадрів на секунду. У роботі використано список геометричних примітивів Іньїго Кілеса (Inigo Quilez) в ПВЗ, гауссове згладжування в ПВЗ співзасновника Figma Евана Воллеса (Evan Wallace) та нове ПВЗ із закругленими прямокутниками.[13]

Див. також

Примітки

  1. Chan, T.; Zhu, W. (2005). Level set based shape prior segmentation. IEEE Computer Society Conference on Computer Vision and Pattern Recognition. doi:10.1109/CVPR.2005.212.
  2. Malladi, R.; Sethian, J.A.; Vemuri, B.C. (1995). Shape modeling with front propagation: a level set approach. IEEE Transactions on Pattern Analysis and Machine Intelligence. 17 (2): 158—175. CiteSeerX 10.1.1.33.2443. doi:10.1109/34.368173.
  3. Gilbarg та Trudinger, 1983, Lemma 14.16.
  4. Gilbarg та Trudinger, 1983, Equation (14.98).
  5. Nilsson, Tobias (2019). Optimization Methods for Direct Volume Rendering on the Client Side Web (PDF). Digitala Vetenskapliga Arkivet. Процитовано 8 липня 2022.
  6. Tomas Akenine-Möller; Eric Haines; Naty Hoffman (6 серпня 2018). Real-Time Rendering, Fourth Edition. CRC Press. ISBN 978-1-351-81615-1.
  7. Perera, S.; Barnes, N.; He, X.; Izadi, S.; Kohli, P.; Glocker, B. (January 2015). Motion Segmentation of Truncated Signed Distance Function Based Volumetric Surfaces. 2015 IEEE Winter Conference on Applications of Computer Vision. с. 1046—1053. doi:10.1109/WACV.2015.144. ISBN 978-1-4799-6683-7.
  8. Izadi, Shahram; Kim, David; Hilliges, Otmar; Molyneaux, David; Newcombe, Richard; Kohli, Pushmeet; Shotton, Jamie; Hodges, Steve; Freeman, Dustin (2011). KinectFusion. Proceedings of the 24th annual ACM symposium on User interface software and technology. UIST '11. New York, NY, USA: ACM. с. 559—568. doi:10.1145/2047196.2047270. ISBN 9781450307161.
  9. Green, Chris (2007). Improved alpha-tested magnification for vector textures and special effects. ACM SIGGRAPH 2007 courses. с. 9—18. doi:10.1145/1281500.1281665. ISBN 9781450318235.
  10. Behdad Esfahbod. GLyphy: high-quality glyph rendering using OpenGL ES2 shaders [linux.conf.au 2014]. Архів оригіналу за 11 грудня 2021. Source Code
  11. Jiang, Wen; Kolotouros, Nikos (15 червня 2020). Coherent Reconstruction of Multiple Humans from a Single Image. arXiv:2006.08586 [cs.CV].
  12. Engine, Godot. Godot 4.0 gets SDF based real-time global illumination. Godot Engine (англ.).
  13. Scandurra, Antonio (7 березня 2023). Leveraging Rust and the GPU to render user interfaces at 120 FPS - Zed Blog. Zed.

Посилання

  • Stanley J. Osher and Ronald P. Fedkiw (2003). Level Set Methods and Dynamic Implicit Surfaces. Springer. ISBN 9780387227467.
  • Gilbarg, D.; Trudinger, N. S. (1983). Elliptic Partial Differential Equations of Second Order. Grundlehren der mathematischen Wissenschaften. Т. 224 (вид. 2nd). Springer-Verlag. (або додаток до 1-го видання 1977 року)
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya