여러 개를 겹쳐서 만들 때 적어도 한 번 이상 "빈"이미지 나 배경과 결합해야합니다. 그러나 "비어있는"것과 같은 것은 없습니다. 그것은 투명한 검정색 또는 투명 한 흰색입니다. 완전히 투명해도 표시 할 때 일반적으로 무시되는 색상이 있습니다.두 이미지를 최종 이미지에 결합 (혼합)하지만 현재 내용은 사용하지 마십시오
나는 folloing 가지고 싶습니다
Destination = Image1 + Image2
내가 실제로 어떻게 이렇게하려면를이 :
대상 투명 검은 색이 최종 결과에 검은 색 기여하지만Clear(Destination, 0); // Clear it with transparent black
Blend Image1 over Destination
Blend Image2 over Destination
나는 피하고 싶습니다. 투명 흰색으로 대상을 지울 수는 있지만이 예제에서만 작동하며 어두운 이미지에서도 동일한 문제가 발생합니다. DirectX를 혼합 포뮬러 그런 식으로 설정됩니다 :
BlendOp = Add;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
대상 (DestAlpha)의 알파는 고려되지 않은에서 모두 그것이 같은 결과가 왜
는 이해 이 공식. 두 이미지를 다른 곳에 렌더링하기 전에 함께 혼합하는 일상적인 문제를 구현하려면 어떻게해야합니까?
난 당신이 고정 기능 파이프 라인으로이 문제를 해결할 수 있는지, 확실하지 않다. 이미지가 대상 배경에 직접적으로가 아니라 여분의 버퍼로 구성되는 것이 중요한 이유는 무엇입니까? 달성하고자하는 것은 무엇입니까? – Gnietschow
이 여분의 버퍼는 픽셀 쉐이더에 입력으로 공급되기 때문에 필요합니다. –
반드시 고정 함수 파이프 라인에서 수행 할 필요는 없지만 혼합 공식은 여전히 수정되어 있습니다. 나는 DirectX9를 사용하고있다. 내가 싫어하는 것은 별도의 픽셀 셰이더에서 두 개의 버퍼를 결합하는 것이 오버 헤드가 많아지기 때문입니다. –