예전에는 그냥 모르고 지나쳤었는데, 지인께서 DOF할 때, 왜 알파 블랜딩한 메쉬들을 알파가 이상하게 출력된다고 해서, 테스트 하다가 알게된 문제..저렇게 나오는 이유는 Bloom을 만들기 위해서, A16B16G16R16F의 텍스쳐에 장면을 랜더링하여, 장면 텍스쳐를 만들었는데, 알파블랜딩한 부분이 이상하게 나오는군요.
(어이없게도, 밑(다리부분)에는 또 잘 나오네요. ㅡㅡ;)
이 문제에 대해서 조금이라도 알고 계신 것이 있으신 분은 알려주시면 고맙겠습니다.
저 부분만,
<RenderState>
<CullMode mode="none"></CullMode>
<AlphaTest enable="true" ref="255" mode="GreaterEqual"></AlphaTest>
<AlphaBlend enable="true" src="srcAlpha" dest="blendfactor"></AlphaBlend>
</RenderState>
로 설정을 했더니, A16B16G16R16F 같은 HDR 텍스쳐에서의 알파 처리가 문제가 생긴 것 같습니다. 이것을 ref="255"를 255가 아닌 것을 바꾸거나, AlphaTest를 하지 않으면, 문제가 생기지 않는군요. 생각해보니, 예전에도 문제가 있었던 것 같은데, 헐....
그래도 jufoot님한테 좋은 것 배웠습니다.. ^^





덧글
jufoot 2009/05/29 22:40 # 답글
FP16 블렌딩은 SM3 지원카드는 대부분 지원하지만 지포스6200 은 지원안하고, 또 SM2 이하 카드들 중에는 FP16 을 지원하지만 텍스쳐 필터링이라던지, 알파블렌딩을 지원안한다고 합니다.참고: http://en.wikipedia.org/wiki/High_dynamic_range_rendering
cagetu 2009/05/31 10:17 #
반갑습니다. 예전에 jufoot님한테 이것 저것 많이 물어봤었었는데.. ㅎㅎ(아마 기억은 못 하실거에요..)암튼, 이런 문제를 생각도 못해봤는데. 신기하군요. NVIDA 8800GTS인데도, 문제가 되다니.. 음..
몇 가지 테스트를 좀 더 해봐야 겠군요..
(다른 문제일 수도 있으니, 좀 더 이것 저것 비교를 해봐야 겠습니다.)