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


У математиці та її застосуваннях, функція відстані зі знаком або поле відстані зі знаком (ПВЗ; англ. 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]
- Метричний простір
- Ейконал
- Паралельна крива (також відома як зміщена крива)
- Площа зі знаком[en]
- Заряд (теорія міри)
- Мішаний добуток
- ↑ 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.
- ↑ 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.
- ↑ Gilbarg та Trudinger, 1983, Lemma 14.16.
- ↑ Gilbarg та Trudinger, 1983, Equation (14.98).
- ↑ Nilsson, Tobias (2019). Optimization Methods for Direct Volume Rendering on the Client Side Web (PDF). Digitala Vetenskapliga Arkivet. Процитовано 8 липня 2022.
- ↑ Tomas Akenine-Möller; Eric Haines; Naty Hoffman (6 серпня 2018). Real-Time Rendering, Fourth Edition. CRC Press. ISBN 978-1-351-81615-1.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ Behdad Esfahbod. GLyphy: high-quality glyph rendering using OpenGL ES2 shaders [linux.conf.au 2014]. Архів оригіналу за 11 грудня 2021. Source Code
- ↑ Jiang, Wen; Kolotouros, Nikos (15 червня 2020). Coherent Reconstruction of Multiple Humans from a Single Image. arXiv:2006.08586 [cs.CV].
- ↑ Engine, Godot. Godot 4.0 gets SDF based real-time global illumination. Godot Engine (англ.).
- ↑ 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 року)