背景
。 私はpygletでスクリーン上の各x座標とy座標のラムダ関数を実行し、そのピクセルを私が望む色で塗りつぶすことで可視化しています。手続きGLテクスチャ
これはあまり最適ではありません。
長方形のオブジェクトを作成し、その上にテクスチャをレンダリングするようにGLエンジンに指示し、GLエンジンにxとyと引き換えに色を返すラムダ関数を与える方法が存在することを疑っています座標。
擬似は
def get_color(pos):
x, y = pos
color = x * y % 255
return [color, color, color]
width = 1680
height = 1024
win = window.Window(fullscreen=False, vsync=True, width=width, height=height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluOrtho2D(0, win.width, 0, win.height)
glTextureMapper(get_color)
win.clear()
points = [0, 0, width, 0, width, height, 0, height]
pyglet.graphics.draw(int(len(points)/2), GL_QUADS, ('v2f', points))
TLDR質問
どのように私はラムダ関数を使用してポリゴンに色かの例をpyglet?これはシェイダーですか?
Pygletの例が好ましいが、任意の言語で例ではこれはおそらく完全な答えはありませんが、少しさらにあなたを得る可能性があります
OpenGLはポリゴンを使用せず、三角形(および線と点)のみを使用します。ピクセルの色は、プリミティブ(三角形、線または点)を定義する頂点間で補間されます。各ピクセルの機能が必要な場合は、シェーダを使用してください。既にピクセルごとに色を計算している場合は、おそらくテクスチャが便利です。私の最善のアドバイスは、いくつかのチュートリアルや最新のOpenGL(ver> = 3.x)についての書籍に従っています – Ripi2