กลับไปหน้าบทความ

อ่าน 5 นาที

ฟังก์ชันระยะทางแบบมีเครื่องหมาย

ในคณิตศาสตร์และการประยุกต์ใช้ฟังก์ชันระยะทางแบบมีเครื่องหมายหรือฟิลด์ระยะทางแบบมีเครื่องหมาย ( SDF ) คือระยะทางเชิงตั้งฉากของจุดx ที่กำหนด ไปยังขอบเขตของเซต Ω ในปริภูมิเมตริก...

ฟังก์ชันระยะทางแบบมีเครื่องหมาย

กราฟ (ด้านล่าง สีแดง) แสดงระยะทางที่ มีเครื่องหมายระหว่างจุดบน ระนาบ xy (สีน้ำเงิน) กับวงกลม คงที่ (แสดงอยู่ด้านบน สีเทา)
ชุดข้อมูลที่ซับซ้อนกว่า (ด้านบน) และกราฟของฟังก์ชันระยะทางแบบมีเครื่องหมาย (ด้านล่าง สีแดง)

ในคณิตศาสตร์และการประยุกต์ใช้ฟังก์ชันระยะทางแบบมีเครื่องหมายหรือฟิลด์ระยะทางแบบมีเครื่องหมาย ( SDF ) คือระยะทางเชิงตั้งฉากของจุดx ที่กำหนด ไปยังขอบเขตของเซต Ω ในปริภูมิเมตริก (เช่น พื้นผิวของรูปทรงเรขาคณิต) โดยเครื่องหมาย จะถูกกำหนดโดยว่า xอยู่ภายใน Ω หรือไม่ฟังก์ชันจะมีค่าเป็นบวกที่จุดxภายใน Ω ค่าจะลดลงเมื่อxเข้าใกล้ขอบเขตของ Ω ซึ่งฟังก์ชันระยะทางแบบมีเครื่องหมายเป็นศูนย์ และจะมีค่าเป็นลบภายนอก Ω [ 1 ]อย่างไรก็ตาม บางครั้งก็มีการใช้แบบแผนทางเลือกแทน (เช่น ลบภายใน Ω และเป็นบวกภายนอก) [ 2 ]แนวคิดนี้บางครั้งก็เรียกว่าฟังก์ชัน/ฟิลด์ระยะทางแบบมีทิศทาง

คำนิยาม

ให้Ωเป็นเซตย่อยของปริภูมิเมตริกXที่มีเมตริกdและเป็นขอบเขต ของเซตย่อยนั้น ระยะห่างระหว่างจุดxในXกับเซตย่อยของXถูกกำหนดตามปกติดังนี้

โดยที่หมายถึงค่าต่ำสุด

ฟังก์ชันระยะทางแบบมีเครื่องหมายจากจุดxในXไปยัง ถูกกำหนดโดย

คุณสมบัติในปริภูมิยูคลิด

ถ้า Ω เป็นเซตย่อยของปริภูมิยุคลิดR nที่มี ขอบเขต เรียบเป็นช่วงๆ แล้ว ฟังก์ชันระยะทางแบบมีเครื่องหมายจะหาอนุพันธ์ได้เกือบทุกที่และเกรเดียนต์ ของฟังก์ชันนั้น จะสอดคล้องกับสมการไอโคนาล

ถ้าขอบเขตของ Ω คือC kสำหรับk ≥ 2 (ดูคลาสความสามารถในการหาอนุพันธ์ ) แล้วdจะเป็นC kบนจุดที่อยู่ใกล้ขอบเขตของ Ω มากพอ[ 3 ]โดยเฉพาะอย่างยิ่งบนขอบเขตfเป็นไปตาม

โดยที่Nคือเวกเตอร์สนามปกติ ที่พุ่งเข้าด้าน ใน ฟังก์ชันระยะทางแบบมีเครื่องหมายจึงเป็นส่วนขยายที่หาอนุพันธ์ได้ของเวกเตอร์สนามปกติ โดยเฉพาะอย่างยิ่ง เมทริกซ์เฮสเซียนของฟังก์ชันระยะทางแบบมีเครื่องหมายบนขอบของ Ω จะให้แผนที่ Weingarten

นอกจากนี้ ถ้า Γ เป็นบริเวณที่อยู่ใกล้กับขอบเขตของ Ω มากพอที่fสามารถหาอนุพันธ์อันดับสองได้อย่างต่อเนื่องบนบริเวณนั้นแล้ว จะมีสูตรที่ชัดเจนซึ่งเกี่ยวข้องกับแผนที่ Weingarten W xสำหรับ Jacobian ของตัวแปรที่เปลี่ยนแปลงในรูปของฟังก์ชันระยะทางที่มีเครื่องหมายและจุดขอบเขตที่ใกล้ที่สุด โดยเฉพาะอย่างยิ่ง ถ้าT ( Ω, μ ) คือเซตของจุดที่อยู่ภายในระยะทางμจากขอบเขตของ Ω (เช่นบริเวณใกล้เคียงรูปทรงกระบอกรัศมีμ ) และgเป็นฟังก์ชันที่สามารถหาปริพันธ์ได้อย่างสมบูรณ์บน Γ แล้ว

โดยที่detหมายถึงดีเทอร์มิแนนต์และdS uบ่งชี้ว่าเรากำลังทำการ อินทิกรั ลพื้นผิว[ 4 ]

อัลกอริทึม

อัลกอริทึม สำหรับการ คำนวณ ฟังก์ชันระยะทางที่มีเครื่องหมาย ได้แก่วิธีการเดินเร็วที่ มีประสิทธิภาพ วิธีการกวาดเร็ว[ 5 ] และ วิธีการเซตระดับ ทั่วไป

สำหรับ การเรนเดอร์ แบบว็อกเซลอัลกอริทึมที่รวดเร็วสำหรับการคำนวณ SDF ในเรขาคณิตแท็กซี่ใช้ตารางพื้นที่รวม[ 6 ]

แอปพลิเคชัน

ฟิลด์ระยะทางแบบมีเครื่องหมายที่จัดเก็บในรูปแบบภาพแรสเตอร์ สามารถนำมาใช้แทนรูปร่างได้

ฟังก์ชันระยะทางแบบมีเครื่องหมายจะถูกนำมาใช้ เช่น ในการเรนเดอร์แบบเรียลไทม์ [ 7 ] เช่นวิธีการเดินรังสี SDFและคอมพิวเตอร์วิชั่น[ 8 ] [ 9 ]

SDF ถูกนำมาใช้เพื่ออธิบายรูปทรงเรขาคณิตของวัตถุในการเรนเดอร์แบบเรียล ไทม์ โดยปกติในบริบทของเรย์มาร์ชชิ่ง เริ่มตั้งแต่ช่วงกลางทศวรรษ 2000 ในปี 2007 Valve ได้ใช้ SDF ในการเรนเดอร์ ฟอนต์ขนาดใหญ่ที่มีพิกเซลมาก (หรือความละเอียดสูง ) ด้วย การเร่งความเร็ว GPUในเกมของตน[ 10 ]วิธีการของ Valve ไม่สมบูรณ์แบบ เนื่องจากทำงานในพื้นที่แรสเตอร์เพื่อหลีกเลี่ยงความซับซ้อนในการคำนวณของการแก้ปัญหาในพื้นที่เวกเตอร์ (ต่อเนื่อง) ข้อความที่เรนเดอร์มักจะสูญเสียมุมที่คมชัด ในปี 2014 Behdad Esfahbod ได้นำเสนอวิธีการที่ได้รับการปรับปรุง GLyphy ของ Behdad ประมาณ เส้นโค้ง Bézierของฟอนต์ ด้วยเส้นโค้งสปลายโค้ง โดยเร่งความเร็วด้วยเทคนิค การแบ่งส่วนแบบกริด(ซึ่งตัดจุดที่อยู่ไกลเกินไปออก) เพื่อให้ทำงานแบบเรียลไทม์[ 11 ]

มีการนำ SDF เวอร์ชันที่แก้ไขแล้วมาใช้เป็นฟังก์ชันการสูญเสียเพื่อลดข้อผิดพลาดในการแทรกซึมของพิกเซลในขณะที่เรนเดอร์วัตถุหลายชิ้น[ 12 ]โดยเฉพาะอย่างยิ่ง สำหรับพิกเซลใดๆ ที่ไม่ได้เป็นส่วนหนึ่งของวัตถุ หากพิกเซลนั้นอยู่นอกวัตถุที่กำลังเรนเดอร์ จะไม่มีการลงโทษใดๆ หากพิกเซลนั้นอยู่ภายในวัตถุ จะมีการกำหนดค่าบวกตามสัดส่วนของระยะห่างภายในวัตถุ

ในปี 2020 เอ็น จิ้นเกมโอเพนซอร์ส Godot 4.0 ได้รับ การส่องสว่างทั่วโลกแบบเรียลไทม์โดยใช้ SDF (SDFGI) ซึ่งกลายเป็นจุดกึ่งกลางระหว่าง GI ที่ใช้ voxel ที่สมจริงยิ่งขึ้นและ GI แบบอบ ข้อได้เปรียบหลักคือสามารถนำไปใช้กับพื้นที่อนันต์ได้ ซึ่งช่วยให้นักพัฒนาสามารถใช้มันสำหรับเกมโอเพ่นเวิลด์ได้[ 13 ]

ในปี 2023 ผู้เขียน โปรแกรมแก้ไขข้อความ Zedได้ประกาศเฟรมเวิร์ก GPUI ที่วาดองค์ประกอบ UI ทั้งหมดโดยใช้ GPU ที่ 120 fps งานนี้ใช้รายการรูปทรงเรขาคณิตพื้นฐานของ Inigo Quilez ใน SDF, การเบลอแบบเกาส์เซียน ใน SDF ของ Evan Wallace ผู้ร่วมก่อตั้งFigmaและ SDF รูปสี่เหลี่ยมผืนผ้าโค้งมนแบบใหม่[ 14 ]

ดูเพิ่มเติม

หมายเหตุ

  1. ^ Chan, T.; Zhu, W. (2005). การแบ่งส่วนรูปร่างตามชุดระดับ . การประชุม IEEE Computer Society Conference on Computer Vision and Pattern Recognition. doi : 10.1109/CVPR.2005.212 .
  2. ^ Malladi, R.; Sethian, JA; Vemuri, BC (1995). "การสร้างแบบจำลองรูปร่างด้วยการแพร่กระจายด้านหน้า: แนวทางเซตระดับ" (PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence . 17 (2): 158– 175. doi : 10.1109/34.368173 .
  3. ^ Gilbarg & Trudinger 1983 , Lemma 14.16.
  4. ^ Gilbarg & Trudinger 1983 , สมการ (14.98)
  5. ^ Zhao Hongkai .วิธีการกวาดอย่างรวดเร็วสำหรับสมการไอโคนาล . คณิตศาสตร์ของการคำนวณ, 2005, 74. Jg., Nr. 250, หน้า 603-627.
  6. นิลส์สัน, โทเบียส (2019) "วิธีการเพิ่มประสิทธิภาพสำหรับการแสดงผลโดยตรงบนเว็บฝั่งไคลเอ็นต์" (PDF ) ดิจิกา เวเทนสกาปลิก้า อาร์คีเวต สืบค้นเมื่อ2022-07-08 .
  7. ^ Tomas Akenine-Möller; Eric Haines; Naty Hoffman (6 สิงหาคม 2018). การเรนเดอร์แบบเรียลไทม์ ฉบับที่สี่ . สำนักพิมพ์ CRC. ISBN 978-1-351-81615-1.
  8. ^ Perera, S.; Barnes, N.; He, X.; Izadi, S.; Kohli, P.; Glocker, B. (มกราคม 2015). "การแบ่งส่วนการเคลื่อนไหวของพื้นผิวปริมาตรตามฟังก์ชันระยะทางแบบมีเครื่องหมายที่ถูกตัดทอน" การประชุม IEEE Winter Conference on Applications of Computer Vision ปี 2015 (PDF)หน้า  1046–1053 . doi : 10.1109/WACV.2015.144 . ISBN 978-1-4799-6683-7.
  9. ^ Izadi, Shahram; Kim, David; Hilliges, Otmar; Molyneaux, David; Newcombe, Richard; Kohli, Pushmeet; Shotton, Jamie; Hodges, Steve; Freeman, Dustin (2011). "KinectFusion: การสร้างภาพ 3 มิติแบบเรียลไทม์และการโต้ตอบโดยใช้กล้องวัดความลึกแบบเคลื่อนที่". รายงานการประชุมสัมมนาประจำปีครั้งที่ 24 ของ ACM เรื่องซอฟต์แวร์และเทคโนโลยีส่วนติดต่อผู้ใช้ (PDF) . UIST '11. นิวยอร์ก, นิวยอร์ก, สหรัฐอเมริกา: ACM. หน้า  559–568 . doi : 10.1145/2047196.2047270 . ISBN 9781450307161.
  10. ^กรีน, คริส (2007). "การขยายภาพที่ผ่านการทดสอบอัลฟ่าที่ดีขึ้นสำหรับพื้นผิวเวกเตอร์และเอฟเฟกต์พิเศษ" หลักสูตร ACM SIGGRAPH 2007 (PDF)หน้า  9–18 . doi : 10.1145/1281500.1281665 . ISBN 9781450318235.
  11. ^ Behdad Esfahbod. GLyphy: การเรนเดอร์สัญลักษณ์คุณภาพสูงโดยใช้เชเดอร์ OpenGL ES2 [linux.conf.au 2014] . YouTube . เก็บถาวรจากต้นฉบับเมื่อ 2021-12-11.รหัสต้นฉบับ
  12. ^ Jiang, Wen; Kolotouros, Nikos; Pavlakos, Georgios; Zhou, Xiaowei; Daniilidis, Kostas (15 มิถุนายน 2020). "การสร้างภาพบุคคลหลายคนจากภาพเดียวอย่างสอดคล้อง". arXiv : 2006.08586 [ cs.CV ].
  13. ^เอ็นจิ้น Godot. "Godot 4.0 รองรับระบบแสงสว่างทั่วโลกแบบเรียลไทม์โดยใช้ SDF" . Godot Engine .
  14. ^ Scandurra, Antonio (7 มีนาคม 2023). "การใช้ Rust และ GPU เพื่อเรนเดอร์อินเทอร์เฟซผู้ใช้ที่ 120 FPS - บล็อก Zed" . Zed .
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Signed_distance_function&oldid=1358889003 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ฟังก์ชันระยะทางแบบมีเครื่องหมาย

ในคณิตศาสตร์และการประยุกต์ใช้ฟังก์ชันระยะทางแบบมีเครื่องหมายหรือฟิลด์ระยะทางแบบมีเครื่องหมาย ( SDF ) คือระยะทางเชิงตั้งฉากของจุดx ที่กำหนด ไปยังขอบเขตของเซต Ω ในปริภูมิเมตริก...

คำนิยาม

ให้ Ω เป็น เซตย่อย ของ ปริภูมิเมตริก X ที่มี เมตริก d และเป็น ขอบเขต ของเซตย่อยนั้น ระยะห่างระหว่างจุด x ใน X กับเซตย่อยของ X ถูกกำหนดตามปกติดังนี้ ∂ Ω {\displaystyle \partial \Omega } ∂ Ω {\displaystyle \partial \Omega }

คุณสมบัติในปริภูมิยูคลิด

ถ้า Ω เป็นเซตย่อยของ ปริภูมิยุคลิด R n ที่มี ขอบเขต เรียบ เป็นช่วงๆ แล้ว ฟังก์ชันระยะทางแบบมีเครื่องหมายจะหาอนุพันธ์ได้ เกือบทุกที่ และ เกรเดียนต์ ของฟังก์ชันนั้น จะสอดคล้องกับ สมการไอโคนาล

อัลกอริทึม

อัลกอริทึม สำหรับการ คำนวณ ฟังก์ชันระยะทางที่มีเครื่องหมาย ได้แก่ วิธีการเดินเร็ว ที่ มีประสิทธิภาพ วิธีการกวาดเร็ว [ 5 ] และ วิธีการเซตระดับ ทั่วไป