Haskell を使用して非常に単純な OpenGL アプリケーションを作成しており、現在いくつかのポリゴンを表示しています。私の主な機能は次のようになります。
main :: IO ()
main = do
(pname, _) <- getArgsAndInitialize
createWindow $ "Haskellisa"
initialDisplayMode $= [RGBAMode, WithAlphaComponent]
displayCallback $= display
mainLoop
GLfloats
私の「表示」関数は、いくつかの三角形を描画し、0.0 から 1.0 の間のRGBA 値をランダムに生成した Color4 を使用して色を設定します。すべてが機能しますが、透明度はなく、重なっているポリゴンは色をブレンドしません。
この関数を使用して三角形を描いています:
drawTri :: Tri Float -> Color4 GLfloat -> IO ()
drawTri ((x1,y1), (x2,y2), (x3,y3)) col = do
renderPrimitive Triangles $ do
color col
vertex $ (Vertex3 (x1 :: GLfloat) (y1 :: GLfloat) 0)
vertex $ (Vertex3 (x2 :: GLfloat) (y2 :: GLfloat) 0)
vertex $ (Vertex3 (x3 :: GLfloat) (y3 :: GLfloat) 0)
ここで透明度が機能しないのはなぜですか?