2013/05/05(日) [n年前の日記]
#1 [prog] PyGame+OpenGLを勉強中
テクスチャを透過させる方法が分からなかったけど、以下のページが参考になった。
_OpenGL - OpenGLのための備忘録
_テクスチャでアルファ(透過)を使用する - 強火で進め
間違ってるかもしれないけど。
ということは、いかにもな2DゲームをOpenGLで、と考えると、GL_REPLACE か GL_MODULATE を使うことになるのかな…。
_OpenGL - OpenGLのための備忘録
_テクスチャでアルファ(透過)を使用する - 強火で進め
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE) # glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE) # glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) glEnable(GL_BLEND)このへんが関係してたっぽい。
間違ってるかもしれないけど。
- GL_REPLACE : テクスチャの色がそのまま表示され、オブジェクトの色指定は無視される。テクスチャのアルファチャンネルも反映される。(透過になる)
- GL_MODULATE : テクスチャの色は、オブジェクトの色指定を加味したものになる。テクスチャのアルファチャンネルも反映される。(透過になる)
- GL_DECAL : テクスチャが色がそのまま表示され、オブジェクトの色指定は、透過部分にのみ反映される。
ということは、いかにもな2DゲームをOpenGLで、と考えると、GL_REPLACE か GL_MODULATE を使うことになるのかな…。
◎ teapotだけ特殊なのだな。 :
teapotだけ、照明だのカリングだのの結果が妙な感じになってたのだけど。何でも、cube や sphere とは、面の向きが逆だそうで。
_球とティーポット - ゲームが作れるようになるまでがんばる日記
上記のページに遭遇するまで、ハマってました…。ありがたや。
テクスチャ画像も、teapot には反映されるけど、cube や sphere には反映されないらしい。cube に貼ろうとして、ハマってましたわ…。
_11 Geometric Object Rendering
_球とティーポット - ゲームが作れるようになるまでがんばる日記
上記のページに遭遇するまで、ハマってました…。ありがたや。
テクスチャ画像も、teapot には反映されるけど、cube や sphere には反映されないらしい。cube に貼ろうとして、ハマってましたわ…。
_11 Geometric Object Rendering
ルーチンはライティングへの利用に対して正しく法線を生成しますが, (ティーポットを除き)テクスチャ座標は生成しません.
[ ツッコむ ]
以上です。