2012-12-01 4 views
2

OpenTK 및 OpenGL을 사용하여 게임에 빠른 2D 렌더링 시스템을 설치했습니다. 내가 사용의 투명성을 설정 한 : 추첨의 시작 그러나OpenGL Quad 만 배경과 블렌딩

GL.Enable(EnableCaps.Blend); 
GL.BlendFunc(BlendingFactorSrc.One, BlendingFactorDest.OneMinusSrcAlpha); 

, 내가 (텍스처가 System.Drawing로드 PNG 파일입니다) 그릴 갈 때마다, 그것은 단지 색으로 조화를 이루고 I 분명 전화 : 그것은 2D 렌더링이 이미 충분히 테스트되었습니다의로

img

난 그냥, MonoGame로 전환 결국

+1

혼합 모드는 대상의 소스와 100 % 소스의 알파를 100 % 사용한다고 말합니다 (예 : 이미지에 알파 채널이없는 경우). 블렌딩 없음에 해당 –

+0

내 이미지에 알파 채널이 있습니다. – CallumDev

+0

빨대에서 움찔하지만 깊이 테스트를 끄시겠습니까? (z 버퍼) –

답변

2

는 you'r 것 같은데 적절한 순서로 그리지 않습니다. 올바른 혼합을 얻으려면 다각형을 뒤에서 앞으로 정렬해야합니다. 그러면 뒤에있는 것이 먼저 그려집니다.

그러나 그 그림을 바탕으로 블렌딩 대신 알파 테스트를 사용하는 것이 더 나을 것입니다. 알파 테스트는 알파가 임계 값보다 작은 픽셀을 폐기합니다. 블렌딩보다 비용이 적기 때문에 오브젝트를 정렬 할 필요가 없습니다. 반투명 오브젝트 (0에서 1 사이의 알파)를 g 용하려는 경우에만 혼합이 필요합니다.

+0

나는 정사각형을 그린 다음 텍스트를 그렸다. 또한 알파 테스트를 통해 텍스트가 비뚤어졌습니다. – CallumDev