Skip to main content

OpenGl reg;เลือก?

OpenGl reg;การเลือกการเขียนโปรแกรมคอมพิวเตอร์เป็นกระบวนการของการพิจารณาว่าวัตถุใดภายในฉากสามมิติ (3D) ตั้งอยู่ที่จุดที่กำหนดบนหน้าจอเมื่อฉากถูกแสดงผลนอกจากนี้ยังสามารถอ้างถึงการค้นหาตำแหน่งหลายวัตถุที่จุดหรือภายในกล่องบ่อยครั้งที่ OpenGl reg;การเลือกใช้เพื่อกำหนดวัตถุ 3 มิติบนหน้าจอที่ผู้ใช้พยายามเลือกด้วยเคอร์เซอร์เมาส์ในขณะที่การดำเนินการนี้อาจดูเหมือนง่าย แต่ก็มีหลายรายละเอียดเกี่ยวกับวิธีการที่ OpenGL reg;แสดงฉากที่สามารถทำให้มันค่อนข้างซับซ้อนนอกจากนี้ยังมีข้อบกพร่องที่แท้จริงในกราฟิกการ์ดและไดรเวอร์บางอย่างที่สามารถทำให้ OpenGL reg;การเลือกฟังก์ชั่นที่จะล้มเหลวและส่งคืนผลลัพธ์ที่ผิด

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

ความซับซ้อนของ OpenGL reg;การเลือกมาจากการกำหนดตำแหน่งของเมาส์บนหน้าจอสองมิติ (2D) จากตำแหน่งและมุมโดยพลการภายในฉากตำแหน่งกล้องนอกจากนี้เนื่องจากการเรนเดอร์จากมุมมองของผู้ชมมนุษย์นั้นเป็น 2D จริงๆจึงไม่มีทางที่ผู้ใช้จะให้ความลึกของการคลิกเมาส์ภายในฉากOpengl reg;ฟังก์ชั่นการเลือกแก้ปัญหาที่ซับซ้อนนี้ในสองวิธี

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

ปัญหาที่สองคือไม่มีวิธีที่จะระบุความลึกของพื้นที่ที่เลือกได้รับการแก้ไขโดยการส่งคืนวัตถุทั้งหมดที่อยู่ภายใต้พิกัดของเมาส์ในฉากOpengl reg;ฟังก์ชั่นการเลือกส่งคืนวัตถุทั้งหมดในอาร์เรย์พร้อมกับระยะเวลาที่พวกเขาอยู่จากตำแหน่งของผู้ชมสิ่งนี้ช่วยให้โปรแกรมสามารถค้นหาวัตถุที่ใกล้เคียงที่สุดได้อย่างรวดเร็วหากต้องการ

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

วิธีการเลือกวัตถุอื่นใน OpenGL reg;เกี่ยวข้องกับการค้นหาวัตถุตามสีและสามารถเร็วขึ้นมากวิธีนี้ทำให้เกิดฉาก แต่แทนที่จะใช้แสงและพื้นผิวกับวัตถุพวกเขาจะแสดงผลด้วยสีที่เรียบง่ายเดียวแต่ละวัตถุหรือกลุ่มวัตถุมีสีที่แตกต่างกันฉากนั้นแสดงผลในหน่วยความจำเท่านั้นและไม่ปรากฏขึ้นดังนั้นจึงไม่ส่งผลกระทบต่อสิ่งที่ผู้ใช้เห็นแทนที่จะมองหาการชน 3 มิติระหว่างวัตถุสีที่ตำแหน่งของเคอร์เซอร์เมาส์จะถูกส่งคืนแทนและสีนั้นจะสัมพันธ์กับวัตถุเฉพาะ