การทำแผนที่ UV และ UVW คืออะไร


26

พยายามเข้าใจแนวคิดพื้นฐาน 3 มิติบางอย่างในขณะนี้ฉันพยายามเข้าใจว่าพื้นผิวทำงานอย่างไร ฉันรู้ว่าการทำแผนที่ UV และ UVW เป็นเทคนิคที่ทำแผนที่พื้นผิว 2D ไปยังวัตถุ 3 มิติ - Wikipedia บอกฉันมาก ฉัน googled สำหรับคำอธิบาย แต่พบบทเรียนที่สมมติว่าฉันรู้แล้วว่ามันคืออะไร

จากความเข้าใจของฉันแล้วแบบจำลองสามมิติแต่ละอย่างนั้นทำจากคะแนนและหลาย ๆ แต้มสร้างใบหน้าขึ้นมา? แต่ละจุดหรือใบหน้ามีพิกัดที่สองที่แมปไปยังตำแหน่ง ax / y ในพื้นผิว 2D หรือไม่? หรือวิธีการคลายเปิดใช้งานโมเดล?

นอกจากนี้ W ใน UVW ทำอะไรได้จริงมันให้อะไรกับ UV? ตามที่ฉันเข้าใจแล้ว W แผนที่ไปที่พิกัด Z แต่ในสถานการณ์ใดฉันจะมีพื้นผิวที่แตกต่างกันสำหรับ X / Y เดียวกันและ Z ที่ต่างกันส่วน Z จะไม่ปรากฏให้เห็นหรือไม่ หรือฉันเข้าใจผิดอย่างนี้


1
ถามคำถามสองข้อแยกกัน
นักพัฒนาเกม Noob

1
ฉันเกลียดผู้ชายอย่าง @NobobameDeveloper คนอื่น ๆ กำลังตอบคำถามและสิ่งที่พวกเขากำลังทำคือพยายามค้นหาสิ่งที่ผิดกับคำถาม มาเลยให้พวกเขาถามคำถามฉันไม่ได้บอกว่าไม่มีใครควรทำตามกฎ แต่คำถามแบบนี้ไม่เป็นไรที่จะโพสต์ที่นี่
Daniyal Azram

คำตอบ:


23

ความเข้าใจของคุณอยู่ใกล้ โมเดล 3 มิติแต่ละแบบสร้างจากจุดยอด แต่ละจุดสุดยอดมักจะกำหนดตำแหน่งของจุดในอวกาศปกติ (ใช้ในการคำนวณแสง) และ 1 หรือมากกว่าพิกัดพื้นผิว โดยทั่วไปสิ่งเหล่านี้ถูกกำหนดให้เป็นuสำหรับส่วนแนวนอนของพื้นผิวและvสำหรับแนวตั้ง

เมื่อวัตถุมีพื้นผิวพิกัดเหล่านี้จะใช้ในการค้นหาเท็กเซลหรือพิกเซลที่จะพล็อตจากพื้นผิว ฉันคิดว่ามันง่ายที่สุดในการคิดเป็นเปอร์เซ็นต์หรืออัตราส่วนระหว่างขอบด้านซ้ายของพื้นผิว ( u = 0) และขอบด้านขวาของพื้นผิว ( u = 1.0) และจากด้านบนของพื้นผิว ( v = 0) และด้านล่าง ของมัน ( v= 1.0) พวกมันจะถูกสอดแทรกระหว่างจุดยอดและค้นหาพิกเซลแต่ละพิกเซลบนหน้าจอที่แสดงผล อาจมีขนาดใหญ่กว่าหรือเล็กกว่าช่วงเหล่านี้และสถานะการแสดงผลที่ตั้งค่าเมื่อวัตถุถูกแสดงผลจะระบุสิ่งที่เกิดขึ้น ตัวเลือกสำหรับสิ่งนี้คือ CLAMP และ REPEAT การหนีบ จำกัด พิกัดไว้ที่ 0 หรือ 1 ทำให้พื้นผิวเปื้อนเมื่ออยู่นอกขอบเขต การทำซ้ำทำให้พื้นผิวทำซ้ำเมื่ออยู่นอกช่วง มันมีประสิทธิภาพเช่นเดียวกับการจับเพียงส่วนทศนิยมของพิกัดและใช้มันในสถานที่ของมัน

ก่อนที่จะนำพิกัดพื้นผิวไปใช้กับวัตถุพวกเขาจะถูกคูณด้วยเมทริกซ์พื้นผิวเพื่อใช้การแปลงบางอย่างกับพวกเขา (เช่นการปรับการแปลหรือการหมุน) เอฟเฟกต์นี้บางครั้งเคลื่อนไหวในเกมเพื่อให้ดูเหมือนกับว่ามีบางอย่างเคลื่อนที่ข้ามวัตถุโดยไม่ต้องย้ายวัตถุเอง ... พื้นผิวนั้นเลื่อนไปมา เมื่อเมทริกซ์เนื้อสัมผัสถูกคูณด้วยพิกัดพื้นผิวมันจะสร้างค่า 2 ค่าที่ใช้ในการค้นหาเท็กเซลเพื่อพล็อต (ให้เรียกพวกมันว่าsและt ) สิ่งเหล่านี้สร้างขึ้นโดยอัตโนมัติจากuและvแม้ว่าจะไม่ได้ตั้งค่าเมทริกซ์พื้นผิว มันเทียบเท่ากับการคูณuและvด้วยเมทริกซ์เอกลักษณ์

นี่คือที่Wประสานงานมาในถึงแม้ว่ามันจะไม่ได้ใช้ที่มักจะ มันเป็นพารามิเตอร์พิเศษที่จะคูณเมทริกซ์เนื้อกับและมักจะใช้เมื่อคุณต้องการที่จะคำนึงถึงมุมมอง (เช่นในการทำแผนที่เงา ) มันทำงานเช่นเดียวกับเมื่อคุณเปลี่ยนตำแหน่งในพื้นที่วัตถุเป็นพื้นที่หน้าจอผ่านเมทริกซ์มุมมองโลก ด้วยการคูณ UVW กับการแปลงโปรเจคชั่นคุณจะได้ 2 พิกัดคือsและtซึ่งจะถูกแมปบนพื้นผิวแบบ 2D


มันน่ากล่าวถึงว่า OpenGL ถือว่า v0 เป็นด้านล่างและ v1.0 เป็นด้านบน มันทำให้ฉันเสียเวลามากในอดีตเมื่อฉันไม่พบข้อผิดพลาดเมื่อพื้นผิวของฉันดูแปลก ๆ
tkausl

8

พิจารณารูปสามเหลี่ยม

แต่ละมุมมีพิกัดรังสียูวี คุณสอดแทรกระหว่างสิ่งเหล่านี้เพื่อรับชุดพิกัด UV สำหรับแต่ละพิกเซล (นอกจากนี้ยังมีมุมมองในการเล่นที่นี่ แต่เราจะเพิกเฉยต่อสิ่งนั้นชั่วครู่)

จากนั้นคุณดึงเท็กเซลจากพื้นผิวจากพิกัด U และ V ซึ่งก็คือพิกเซลจากพิกัดพื้นผิว x, y - สิ่งเดียวกันและคำศัพท์ที่แตกต่างกันเล็กน้อยเนื่องจากเรากำลังพูดถึงพื้นผิว

หากพื้นผิวของคุณเป็นแบบสามมิติอย่างแท้จริงคุณจะต้องมีพิกัดที่สามด้วย

วิธีหนึ่งในการมองเห็นภาพนี้คือการคิดถึงท่อนไม้ หากคุณสับมันอย่างใดคุณจะเห็นว่าระนาบแต่ละอันภายในบล็อกนั้นมีพื้นผิวแปลก ๆ 2 มิติ

พื้นผิว 3 มิตินั้นหายากมากจนคุณสามารถลืมมันไปได้ในขณะนั้น


หายาก? พวกมันใช้ทำอะไร? คุณสามารถแสดงตัวอย่างในบริบทของชื่อ AAA ได้ไหม
Quazi Irfan

ไม่เพราะพวกเขามักจะพูดไม่เคยใช้ มีวิธีที่ถูกกว่าเสมอในการทำสิ่งเดียวกัน นึกถึงชิ้นสับใน wii sports plus; คุณสามารถทำลายไอเท็มในแบบที่คุณต้องการและดู "internals" พวกเขาอาจสูญเสียความทรงจำจำนวนมหาศาลด้วยการทำให้พวกเขามีพื้นผิว 3 มิติ (สมมติว่าฮาร์ดแวร์รองรับได้เช่นกัน) แต่มันถูกกว่ามากในการจำลองที่มีพื้นผิว 2d แทน
Jari Komppa

ดังนั้นพวกเขาจะไม่พิเศษ หรือนี่คือฟีเจอร์ที่ไม่จำเป็นสำหรับนักพัฒนาเกมที่รู้จักกันดี?
Quazi Irfan

ฉันไม่เข้าใจว่าคุณหมายถึงอะไร พื้นผิว 3 มิติอาจมีประโยชน์ในการใช้งานอื่น ๆ หากข้อมูลบางอย่างที่ผู้สร้างต้องการต้องการแผนที่ให้เป็นอาเรย์สามมิติอย่างสะดวก แต่ในฐานะที่เป็นพื้นผิว "ปกติ" พวกมันมักจะสูญเสียความจำ
Jari Komppa

แอปพลิเคชั่นหนึ่งของพื้นผิว 3 มิติคือการทำแผนที่ระยะทางแม้ว่า Jari กล่าวว่าพวกมันแปลกมากในเกมเนื่องจากความซับซ้อนของพวกเขา [link] http.developer.nvidia.com/GPUGems2/gpugems2_chapter08.html
Jackalope

7

คิดว่าโอริกามิ

แผนที่ UV เปรียบเสมือนผิวหนัง 2D ที่แบนราบ (แกะ) ของตาข่าย 3 มิติ (เปลือกหอย)

หากคุณต้องตัดแผนที่ออกแล้วพับไปตามเส้นตาข่ายผลลัพธ์จะเป็นแบบจำลอง 3 มิติของคุณ

ค่าจุดลอยตัว (U, V) อยู่ในช่วงตั้งแต่ (0,0) ถึง (1,1) มุมซ้ายบนของแผนที่ UV คือ (0,0) มุมขวาล่างคือ (1,1)

แต่ละจุดสุดยอดในตาข่ายของรูปหลายเหลี่ยม (tris / quads) มีค่า (U, V) ที่บอก renderer ซึ่งเป็นส่วนหนึ่งของแผนที่ที่จะใช้

ใน GPU ไปป์, เครื่องแปลงยอดยอดคำนวณประมาณการ 2 มิติของแต่ละพิกเซลในรูปหลายเหลี่ยม 3 มิติเหล่านี้, จากนั้นชิ้นส่วนสีให้สีพวกเขาในการใช้แผนที่ UV

สิ่งนี้ไม่สามารถชื่นชมได้อย่างสมบูรณ์หากไม่มีภาพเช่นนี้ซึ่งทำให้ชัดเจน:

ตาข่าย UV

ดังที่นักวิจารณ์คนอื่นพูดถึงส่วนประกอบ W นั้นถูกใช้โดย renderer เพื่อเอฟเฟกต์ที่เหมือนนักเล่นมากขึ้นเช่นการทำแผนที่เงา แต่แผนที่ UV เป็นพื้นฐานสำหรับการทำความเข้าใจ

โปรดทราบว่าจุดสุดยอด shader จะต้องเรียกใช้ตัวแบ่งส่วนอย่างน้อยหนึ่งพิกเซลสำหรับแต่ละพิกเซลที่จำเป็นต้องมีสีนั่นคือเหตุผลที่ GPU เป็นโปรเซสเซอร์แบบขนานที่มีหลายสิบคอร์

โปรดทราบว่า GPU ที่รวม CPU ได้รับการออกแบบมาสำหรับอุปกรณ์พกพาและถูก จำกัด จำนวนแกนที่น้อยกว่าหนึ่งในสิบของ GPU ภายนอกรุ่นเดียวกัน เนื่องจากข้อ จำกัด ด้านพลังงานและการระบายความร้อน ดูเหมือนว่ากฎของมัวร์จะชะลอตัวลง แต่ประสิทธิภาพยังคงดีขึ้น (โดยที่การละลายลงไปที่นี่และที่นั่น .. )

พันล้านพิกเซลในการทำแผนที่ UV ที่ 240+ เฟรมต่อวินาทีอาจทำให้เกิดความยุ่งเหยิงอย่างแท้จริง!


0

แผนที่ยูวีแผนที่จุด (x, y, z) ในตาข่ายไปยังจุด (u, v) ในภาพพื้นผิว เนื่องจากแมปรูปภาพ (u, v) เป็นสีจึงสามารถโยงแผนที่ทั้งสองได้โดยให้แผนที่จากพื้นที่ตาข่ายไปยังพื้นที่สี

         uv map       color map
 (x,y,z)   ->   (u,v)    ->     color
 mesh           Texture
 space          space
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.