하스켈을 사용하여 매우 간단한 OpenGL 응용 프로그램을 만들고 있습니다. 내 주요 기능은 다음과 같다 :하스켈 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)
:
나는이 기능을 사용하여 삼각형을 그리기는 무엇입니까?
깊이 버퍼 비교 란 무엇입니까? Z가 같은 픽셀을 거부하고 모두 같은 깊이에 있으면 겹치는 픽셀이 렌더링되지 않습니다. – JasonD
'WithAlphaComponent'는'GL_BLEND'를 가능하게합니까? –