ฉันต้องการค้นหาข้อมูลต่อไปนี้:
- พวกเขาคืออะไร
- ตัวอย่างการใช้งานในการพัฒนาเกม (พื้นที่ที่ใช้)
เกี่ยวกับประเภทเวกเตอร์ต่อไปนี้:
Normal
Tangent
Binormal
คำอธิบายการพัฒนาเกมอย่างง่ายเป็นศูนย์กลางจะพอเพียง
ฉันต้องการค้นหาข้อมูลต่อไปนี้:
เกี่ยวกับประเภทเวกเตอร์ต่อไปนี้:
Normal
Tangent
Binormal
คำอธิบายการพัฒนาเกมอย่างง่ายเป็นศูนย์กลางจะพอเพียง
คำตอบ:
โดยทั่วไปแล้วเวกเตอร์ปกติจะแสดงทิศทางที่ชี้ไปยัง "ออก" โดยตรงจากพื้นผิวซึ่งหมายความว่ามันเป็นมุมฉาก (ที่มุม 90 องศาถึง) เวกเตอร์ใด ๆ ที่เป็น coplanar ด้วย (ในกรณีของพื้นผิวเรียบ) หรือสัมผัสกับ (ใน กรณีของพื้นผิวที่ไม่แบน) พื้นผิว ณ จุดที่กำหนด
โดยทั่วไปแล้วเวกเตอร์แทนเจนต์จะถูกมองว่าเป็นเวกเตอร์เดียวที่มีอยู่ในระนาบของพื้นผิว (สำหรับพื้นผิวเรียบ) หรือซึ่งสัมผัสกับจุดอ้างอิงบนพื้นผิวโค้ง (เช่นถ้าระนาบราบถูกสร้างขึ้นด้วยปกติเหมือนกันจากจุดอ้างอิง เวกเตอร์แทนเจนต์จะเป็น coplanar กับระนาบนั้น)
แนวคิดของเวกเตอร์ Binormal นั้นซับซ้อนกว่าเล็กน้อย ในคอมพิวเตอร์กราฟิกส์โดยทั่วไปมันหมายถึง Bitangent vector (อ้างอิงที่นี่ ) ซึ่งเป็น "เวกเตอร์แทนเจนต์" อื่น ๆ ที่มีประสิทธิภาพสำหรับพื้นผิวซึ่งเป็น orthogonal ทั้งเวกเตอร์ปกติและเวกเตอร์แทนเจนต์ที่เลือก
เมื่อพิจารณาถึงการคำนวณแล้วสิ่งเหล่านี้จะแตกต่างกันไปขึ้นอยู่กับความซับซ้อนของพื้นผิวและความแม่นยำที่คุณต้องการให้เป็นแบบปกติ (ในบางกรณีเช่นด้วยเฉดสีที่ราบเรียบมันเป็นที่ต้องการมากกว่า เมื่อข้อมูลที่เกิดขึ้นจริงสำหรับพื้นผิวไม่อยู่) แต่มีหลายสูตรทั่วไปให้ที่นี่
ในแง่ของการที่พวกเขาเกิดขึ้นคำตอบคือทุกที่ เวกเตอร์ปกติถูกใช้เพื่อจัดตำแหน่งกล้องและวัตถุในพื้นที่ 3 มิติเพื่อกำหนดวิถีการเคลื่อนที่การสะท้อนและมุมในการคำนวณทางฟิสิกส์การแมปสกินและพื้นผิวของแบบจำลอง 3 มิติเพื่อกำหนดจุดมุ่งหมายการเคลื่อนที่แบบออฟเซ็ตในการเขียนโปรแกรม AI ไปที่แสงสีและจุดสีบนพื้นผิวที่สัมพันธ์กับแสงกล้องและวัตถุอื่น ๆ และอื่น ๆ พวกเขาอาจเป็นหนึ่งในข้อมูลที่มีประโยชน์ที่สุดที่จะมีในสภาพแวดล้อมแบบ 3 มิติและพวกเขายังมีประโยชน์อย่างมากในแบบ 2D เช่นกัน
เวกเตอร์ปกติโดยทั่วไปจะใช้สำหรับการคำนวณแสง มันเป็นเวกเตอร์ที่ควรตั้งฉากกับพื้นผิวที่ประมาณโดยจุดยอดของตาข่าย เกณฑ์ปกติถูกกำหนดในแต่ละตำแหน่งของจุดยอด แต่สามารถคำนวณได้แตกต่างกันไปขึ้นอยู่กับว่าคุณต้องการแสงเพื่อสะท้อนที่จุดยอดนั้นหรือสิ่งที่คุณต้องการจะทำอย่างไรกับการคำนวณแสงของคุณใน shader
เวกเตอร์แทนเจนต์และเวกเตอร์แทนเจนต์เป็นเวกเตอร์ที่ตั้งฉากกับกันและกันและเวกเตอร์ปกติที่อธิบายทิศทางของ u, v texture texture ด้วยความเคารพต่อพื้นผิวที่คุณพยายามแสดงผล โดยทั่วไปแล้วพวกเขาสามารถใช้ร่วมกับแผนที่ปกติซึ่งช่วยให้คุณสร้างรายละเอียดแสงพื้นผิวย่อยให้กับแบบจำลองของคุณ (bumpiness)
เห็นได้ชัดว่ามีวิธีอื่น ๆ ในการใช้เวกเตอร์เหล่านี้และฉันเพิ่งอธิบายการใช้งานเฉลี่ยของพวกมัน สำหรับข้อมูลทางเทคนิคเพิ่มเติมฉันขอแนะนำให้คุณรับหนังสือเกี่ยวกับคอมพิวเตอร์กราฟิกหรือสำรวจบางบทความบนอินเทอร์เน็ต มีข้อมูลมากมายเกี่ยวกับเรื่องนี้
ความแตกต่างระหว่างแทนเจนต์และทวินามมีความชัดเจนน้อยลงบนพื้นผิวทันที แต่ไม่ควรแปลกใจเกินไป - เดิมทีไบนารีมีการกำหนดไว้ไม่ใช่สำหรับพื้นผิว แต่สำหรับเส้นโค้งที่แนวคิดมีความหมายมากขึ้น เป็น 'ปกติ' ในการที่มันเป็นมุมฉากกับทิศทางของการเคลื่อนไหวจึงชื่อ) จะเจาะจงมากขึ้นกำหนดให้มีเส้นโค้งของรูปแบบ p = V (t) = (V x (t), V y (t), V z (t)) จากนั้นแทนเจนต์ - ซึ่งเป็นเวกเตอร์ที่ชี้ไปที่ ทิศทางของการเคลื่อนไหว - กำหนดโดย T u = dp / dt = (dV x / dt, dV z / dt, dV z/ dt) (ฉันใช้ตัวห้อยที่นี่เพื่อแยกความแตกต่าง 'ผิดปกติ' เนื่องจากฉันไม่มี MathJax ของฉันที่นี่) จากนั้นความเร็ว (ทันที) ตามแนวโค้งคือ s = | T u | ความยาวของเวกเตอร์แทนเจนต์และ เวกเตอร์แทนเจนต์ 'normalized' เป็นเพียง T = T u / s
จากนั้นเวกเตอร์ปกติถึงส่วนโค้งคืออนุพันธ์ของเวกเตอร์แทนเจนต์ที่ปรับตามช่วงเวลา, N u = dT / dt; เหตุผลที่แทนเจนต์ปกติถูกใช้ที่นี่เพื่อรักษาความเร็วตามโค้งจากการบิดเวกเตอร์ปกติ - คุณสามารถแสดงให้เห็นว่าด้วยคำจำกัดความนี้เรามักมี TN u = 0 โปรดทราบว่า N uไม่จำเป็นต้องเป็นเวกเตอร์หน่วย มากกว่า T uคืออะไร อันที่จริงแล้วขนาดของมันคือ k = | N u | คือความโค้ง (ทันที) ของเส้นโค้งที่จุดที่กำหนดและจุด p + N uคือศูนย์กลางของวงกลมที่เรียกว่าosculating (ณ จุดที่กำหนด) Normalized Normalized จะเท่ากับ N = N u/ k และ bitangent B คือ cross product B = TxN; เนื่องจาก T และ N เป็นทั้งเวกเตอร์หน่วยและพวกมันตั้งฉากกันดังนั้น B จึงเป็นเวกเตอร์หน่วยและ (T, N, B) เป็นกรอบรูปมุมฉาก
โปรดสังเกตว่าด้วยคำจำกัดความนี้ 'binormal' ไปยังเส้นโค้งนั้นใกล้เคียงกับสิ่งที่เราคิดว่าเป็นพื้นผิวธรรมดา (มันเป็นระนาบปกติของระนาบของ 'ท้องถิ่น' ของเส้นโค้ง) และเส้นโค้งปกติถึงใกล้กับอะไร เราคิดว่าเป็นสิ่งที่ทำให้ผิวหน้าสัมผัส
(ภาพนี้น่าเศร้าที่ไม่ได้ทำแนวคิดเรื่องความยุติธรรม แต่มันเป็นสิ่งที่ดีที่สุดที่ฉันเจอบนเว็บและฉันไม่สามารถสร้างเองได้อย่างง่ายดาย ... )