Visual C を使用した OpenGL での 3D 球体の作成
この調査は、C での OpenGL の putSolidSphere() 関数を使用した単純な 3D 球体の作成に焦点を当てています。 。提供されたコードはこれを実現しようとしますが、OpenGL のオブジェクト描画メカニズムの誤解によりエラーが発生します。
OpenGL オブジェクト描画について
OpenGL では、オブジェクトは作成されたものではなく、コマンドを使用して画面上に描画されただけです。 GlutSolidSphere() は、実際にオブジェクト データを作成せずに OpenGL に描画命令を送信するコマンドの 1 つです。
代替アプローチ: 独自の球を作成する
球を生成するには、カスタム関数の作成を検討してください。以下に例を示します。
class SolidSphere { // ... sphere vertex, normal, and index data public: SolidSphere(float radius, unsigned int rings, unsigned int sectors); void draw(GLfloat x, GLfloat y, GLfloat z); };
このクラスは、指定された半径、リング、セクターに基づいて球メッシュを生成します。頂点、法線、テクスチャ座標、インデックスをデータ構造に保存します。 draw() メソッドは、指定された位置に球をレンダリングします。
使用例:
SolidSphere sphere(1, 12, 24); void display() { sphere.draw(0, 0, -5); }
このコードは、半径 1 とサブディビジョン パラメータ 12 の球を初期化します。リングと 24 セクター。 display() 関数では、球は (0, 0, -5) の位置に描画されます。
独自の球を作成する利点
以上がC を使用して OpenGL で 3D 球体を効率的に作成およびレンダリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。