Dalam OpenGL, menjana objek kompleks seperti sfera memerlukan mencipta jejaring yang mentakrifkan objek penampilan. Ini melibatkan penentuan bucu, normal, koordinat tekstur (jika berkenaan) dan indeks untuk melukis jerat.
Untuk mencipta sfera tersuai, kami mentakrifkan kelas SolidSphere yang mengambil parameter untuk jejari sfera, dan bilangan gelang dan sektor yang digunakan untuk menentukan jaringannya. Pembina kelas menjana data bucu, normal, koordinat tekstur dan indeks yang diperlukan.
Untuk memaparkan sfera, kami memanggil kaedah cabutannya, menyatakan kedudukannya dalam ruang 3D.
Berikut ialah coretan kod contoh yang menggunakan Kelas SolidSphere:
#include <GL/gl.h> #include <GL/glu.h> #include <vector> #include <cmath> class SolidSphere { std::vector<GLfloat> vertices; std::vector<GLfloat> normals; std::vector<GLfloat> texcoords; std::vector<GLushort> indices; public: SolidSphere(float radius, unsigned int rings, unsigned int sectors); void draw(GLfloat x, GLfloat y, GLfloat z); }; SolidSphere sphere(1, 12, 24); void display() { // Configure viewport and projection // Clear buffers glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Draw the sphere sphere.draw(0, 0, -5); // Swap buffers } int main() { // Initialize OpenGL and register window // Set display callback function glutDisplayFunc(display); // Enter main event loop glutMainLoop(); return 0; }
Dengan mencipta data mesh kami sendiri, kami memperoleh fleksibiliti dan kawalan ke atas penampilan sfera. Coretan kod yang disediakan menunjukkan cara menggunakan kelas SolidSphere tersuai untuk melukis sfera 3D dalam OpenGL.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Sfera 3D dalam OpenGL menggunakan Visual C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!