เมื่อเรนเดอร์สภาพแวดล้อม VR (มุมมองสเตอริโอ) พวกคุณแนะนำเพียงแค่ทำการตรวจสอบ frustum 2 ครั้งเพื่อพิจารณาว่าจะวาดอะไรในระหว่างการคัดกรอง frustum หรือมีการตรวจสอบอื่น ๆ ที่จะรวม frusta ทั้งสองได้หรือไม่
เมื่อเรนเดอร์สภาพแวดล้อม VR (มุมมองสเตอริโอ) พวกคุณแนะนำเพียงแค่ทำการตรวจสอบ frustum 2 ครั้งเพื่อพิจารณาว่าจะวาดอะไรในระหว่างการคัดกรอง frustum หรือมีการตรวจสอบอื่น ๆ ที่จะรวม frusta ทั้งสองได้หรือไม่
คำตอบ:
มันค่อนข้างง่ายที่จะสร้าง frustum เพียงอันเดียวที่ล้อมรอบ frusta ตาทั้งคู่ดังที่แสดงในแผนภาพนี้ซึ่งสร้างโดย Cass Everitt ที่ Oculus คุณเพียงแค่วางจุดยอดของ frustum นี้ระหว่างดวงตาและด้านหลังเล็กน้อย นอกจากนี้คุณยังสามารถเพิ่มระยะทางระนาบที่ใกล้เคียงเพื่อให้เข้ากับระนาบใกล้แบบดั้งเดิมของตา frusta
frustum ดังกล่าวรวมถึงพื้นที่เล็ก ๆ ที่ไม่ได้อยู่ในสหภาพของสอง frusta ดั้งเดิม มีปริมาณเล็กน้อยในแนวนอนระหว่างดวงตาทั้งสอง แผนภาพยังไม่แสดงมิติในแนวตั้ง แต่การดึงจุดยอด frustum กลับมาทำให้มีพื้นที่ด้านบนและด้านล่างของ frusta ดั้งเดิม อย่างไรก็ตามสำหรับวัตถุประสงค์ในการเลือกปฏิบัติมันอาจไม่สำคัญ การเลือกสรร Frustum นั้นมักจะอนุรักษ์อยู่แล้วและพื้นที่เพิ่มเติมนั้นมีความหนาเพียงไม่กี่เซนติเมตร
นอกจากนี้ยังเป็นไปได้ที่จะคัดสรรเครื่องบิน frustum ดั้งเดิมและบนสุดด้านล่าง (ซึ่งแบ่งระหว่างตา) พร้อมกับเครื่องบินด้านนอก เครื่องบินเหล่านี้ไม่ได้สร้าง frustum ในทางเทคนิค แต่หากใช้อัลกอริทึมการคัดแบบ "ปกติ" ที่ทดสอบกับระนาบหนึ่งครั้งอัลกอริทึมจะทำงานอย่างมีความสุขกับชุดของเครื่องบินที่คุณสนใจ
การแบ่งปันการคัดสรร frustum การเลือก LOD ฯลฯ ระหว่างดวงตาแทนที่จะทำซ้ำสองครั้งในทุกเฟรมเป็นวิธีที่ยอดเยี่ยมในการปรับแต่งค่า CPU ของการเรนเดอร์สเตอริโอ นี่เป็นข้อกำหนดเบื้องต้นหากคุณต้องการใช้วิธีการเรนเดอร์ที่ดึงดูดสายตาทั้งสองข้างในครั้งเดียวเช่นการเรนเดอร์สเตอริโอแบบอัตโนมัติ
ฉันได้สรุปผลลัพธ์ของ Everitt หากจำเป็น
เป็นโบนัสวิธีแยกซ้าย / ขวา 0 จากเมทริกซ์มุมมองของสายตา:
left0 = n0 * (Mle13 - 1) / Mle11;
right1 = n1 * (Mre13 + 1) / Mre11;
หากคุณมีสาขาวิชาเอก ไขว้สำหรับคอลัมน์หลัก cf คำตอบนี้
ระวังด้วยการใช้ frustum เพียงอันเดียวในการคัดออกใช้งานได้ก็ต่อเมื่อมุมมองของดวงตาที่รวมกันนั้นน้อยกว่า 180 องศา ขณะนี้มีชุดหูฟัง VR กับข้อมูลขนาดใหญ่ของมุมมองรอบ 200 องศาเช่นPimax 5k +และStarVR เป็นไปไม่ได้ที่จะสร้าง frustum มุมมองแบบดั้งเดิมหรือเมทริกซ์การฉายเดี่ยวสำหรับมุมมองมากกว่า 180 องศา
ชุดหูฟังเหล่านี้ใช้หน้าจอที่มีมุมดังนั้นระนาบการฉายและเวกเตอร์ไปข้างหน้าในพื้นที่ดูจึงไม่ขนานกัน สมการจากคำตอบอื่น ๆ ตรงนี้ถือว่าพวกมันขนานกันและจะให้ผลลัพธ์ที่ไม่ถูกต้องเมื่อสมมติฐานนั้นผิด
มุมมองที่รวมกันแบบเดียวยังคงมีประโยชน์ แต่รหัสของคุณควรเตรียมรับมือกับกรณีที่ไม่สามารถสร้างได้เพื่อให้แน่ใจว่าเป็นข้อพิสูจน์ในอนาคต หรือลองพิจารณาการเลือกสรรต่อการรับชมดวงตาหรือเปลี่ยนเป็นการเลือกสรรการคัดสรรมุมซึ่งสามารถถ่ายทอด FOV ที่มีขนาดใหญ่กว่า -180 องศา