わかりました GL_OBJECT_LINEAR で GL_EYE_LINEAR をエミュレートしようとしているのはおそらく私だけですが、最終的にそれを行う方法を見つけました。
まず、ビットマップ テクスチャを使用してモデルに貼り付けることを目的としているため、テクスチャ/ビットマップを貼り付ける必要がある現在の回転 (rx、ry、rz) と移動 (tx、ty、tz) を保存する必要があります。 SAVE_POSITION= (rx_save、ry_save、rz_save、tx_save、ty_save、tz_save)。
その後、次の手順を実行するだけです。
0- gl.glMatrixMode(gl.GL_MODELVIEW), gl.glLoadIdentity()
1- 次に、次の厳密な順序でモデル ビュー マトリックスを変更します。回転(CURRENT_POSITION) b. translation(CURRENT_POSITION) c.translation(-SAVE_POSITION) d. 回転(-SAVE_POSITION)
2- テクスチャ生成を設定します (ビットマップ テクスチャを配置するため):
gl.glTexGendv(gl.GL_S,gl.GL_EYE_PLANE,(self.TexSize,0,0,0))
gl.glTexGendv(gl.GL_T,gl.GL_EYE_PLANE,(0,self.TexSize,0,0))
gl.glTexGeni(gl.GL_S,gl.GL_TEXTURE_GEN_MODE,gl.GL_EYE_LINEAR)
gl.glTexGeni(gl.GL_T,gl.GL_TEXTURE_GEN_MODE,gl.GL_EYE_LINEAR)
gl.glEnable(gl.GL_TEXTURE_GEN_S)
gl.glEnable(gl.GL_TEXTURE_GEN_T)
3- MODELVIEW gl.glLoadIdentity() をリロードします (またはプッシュ/ポップを使用します) 4- 通常どおり CURRENT_POSITION に回転/変換します 5- モデルを描画します
それが誰かを助けることを願っています。
しかし、ジェイソンが言ったように、最善の方法は、従来の opengl ではなくシェーダーを使用することです... Python プログラマー向けの優れたチュートリアルをここで見つけました:
http://pyopengl.sourceforge.net/context/
よろしく、-baco