Skip to main content

OpenGL reg;ทรงกลม?

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

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

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

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