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


