1
イムは、これまでのところ、この機能pyopenglセットマルチテクスチャブレンディングモード
def loadTexture(name):
img = PIL.Image.open(name) # .jpg, .bmp, etc. also work
img_data = numpy.array(list(img.getdata()), numpy.int8)
id = glGenTextures(1)
glPixelStorei(GL_UNPACK_ALIGNMENT,1)
glBindTexture(GL_TEXTURE_2D, id)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img.size[0], img.size[1], 0, GL_RGB, GL_UNSIGNED_BYTE, img_data)
return id
を使用してロードするmiltipleテクスチャを持っていると私は、このコード
glBindTexture(GL_TEXTURE_2D, 1)
glEnable(GL_TEXTURE_2D)
で使用するテクスチャを設定することができます
glBindTexture(GL_TEXTURE_2D, 1)
glEnable(GL_TEXTURE_2D)
glBegin(GL_TRIANGLES)
....
glEnd()
glBindTexture(GL_TEXTURE_2D, 3)
glEnable(GL_TEXTURE_2D)
glBegin(GL_TRIANGLES)
....
glEnd()
だから私は二度ポリゴンを描画して選択します。私の最初の試みは、このされてい
これはglBindTexture(GL_TEXTURE_2D、n)がrelivantテクスチャを選択してレンダリングしますが、それだけでブレンドされることはありません。レンダリングで最後に選択したテクスチャが表示されます。 glEnable(GL_BLEND)を追加しようとしましたが、何もしないようです。私がやりたい何
は、2つのパスのピクセルを追加することです
私はこれについてどのように行きますか?
これは私にとってはうまくいかないようですが、tex1の均一な暗くなったり、最新のテクスチャが描画されているようです。 –
奇妙なことに、テクスチャは変調されている必要があります(コンポーネントワイズ乗算)。画像ファイルをアップロードできますか?彼らは正しくロードされていると確信していますか? (私はチェックをしません...) – kloffy
また、イミディエイトモードでレンダリングする場合は、 'glMultiTexCoord(GL_TEXTURE0、...)'と 'glMultiTexCoord(GL_TEXTURE1、...)'を使ってテクスチャを指定する必要があります各テクスチャユニットの座標。 – kloffy