次の方法で共有


マトリックス関数と変換関数の移植

IRIS GL と OpenGL は、同様の方法で行列と変換を処理します。 ただし、IRIS GL からコードを移植する場合は、いくつかの違いに留意する必要があります。

  • OpenGL では、常にダブルマトリックス モードになります。単一マトリックス モードはありません。

  • 角度は、度の 10 分の 1 ではなく、度単位で測定されます。

  • glFrustumや glOrthoなどのプロジェクション マトリックス呼び出しは、現在のマトリックスに読み込まれるのではなく、現在のマトリックスに乗算されるようになりました。

  • OpenGL 関数 glRotateは、を回転とは大きく異なります。 x 軸、y 軸、z 軸に限定するのではなく、任意の軸を中心に回転できます。 たとえば、次のように翻訳できます。

    rotate(200*(i+1), 'z');
    

    宛先:

    glRotate(.1*(200*(i+1), 0.0, 0.0, 1.0);
    

    回転 から glRotate に変換する場合は、10 分の 1 の角度から度に切り替え、'z' を z 軸のベクトルに置き換えます。

  • OpenGL には、polarview 関数に相当するものはありません。 変換と 3 回転で簡単に置き換えることができます。 たとえば、次のように翻訳できます。

    polarview(distance, azimuth, incidence, twist);
    
    

    宛先:

    glTranslatef( 0.0, 0.0, -distance); 
    glRotatef( -twist * 10.0, 0.0, 0.0, 1.0); 
    glRotatef( -incidence * 10.0, 1.0, 0.0, 0.0); 
    glRotatef( -azimuth * 10.0, 0.0, 0.0, 1.0);
    

次の表は、OpenGL マトリックス関数とその同等の IRIS GL 関数の一覧です。

IRIS GL 関数 OpenGL 関数 意味
mmode する glMatrixModeする 現在のマトリックス モードを設定します。
glLoadIdentityする 現在の行列を同一行列に置き換えます。
loadmatrix glLoadMatrixf、glLoadMatrixd
現在の行列を指定した行列に置き換えます。
multmatrix する glMultMatrixf、 glMultMatrixd
現在の行列を指定した行列で後乗算します (multmatrix 事前乗算 注意してください)。
mapwmapw2 gluUnProjectする ワールド空間座標をオブジェクト空間に投影します (gluProject参照)。
オルソ する glOrthoする 現在の行列に正投影行列を乗算します。
オルソ 2 gluOrtho2D 2 次元の正投影行列を定義します。
パースペクティブ gluPerspectiveする 透視投影行列を定義します。
の選択 gluPickMatrixする ピッキング領域を定義します。
popmatrix glPopMatrixする 現在の行列スタックをポップし、現在の行列をその下の行列に置き換えます。
pushmatrix する glPushMatrixする 現在のマトリックス スタックを 1 つ下にプッシュし、現在のマトリックスを複製します。
回転、
glRotated、 glRotatef
現在の座標系を、原点から指定された点までのベクトルに関する指定された角度だけ回転します。 、x 軸、y 軸、z 軸のみを軸として回転 回転します。
スケール glScaledglScalefする
現在の行列にスケーリング 行列を乗算します。
翻訳 glTranslatef、glTranslated
現在の行列に平行移動行列を乗算して、座標系の原点を指定したポイントに移動します。
ウィンドウの glFrustumする クリッピング平面の座標を指定すると、現在の行列にパースペクティブ 行列が乗算されます。

OpenGL には、glMatrixModeで設定される 3 つのマトリックス モードがあります。 次の表に、glMatrixModeのパラメーターとして使用できるモードを示します。

IRIS GL マトリックス モード OpenGL モード 意味 最小スタック深度
MTEXTURE GL_TEXTURE テクスチャ マトリックス スタックを操作します。 2
MVIEWING GL_MODELVIEW モデル ビュー マトリックス スタックを操作します。 32
MPROJECTION する GL_PROJECTION プロジェクション マトリックス スタックを操作します。 2