출처 : http://blog.naver.com/sharbong/100011099628
오랜만에 개발 관련 글을 쓰는 것 같다... 그동안 디자인 관련 글들만 써왔는데.. 이번엔 본업인 플밍 관련 글을 쓸까 한다.. 사실 디자인적인 얘기는 비전문가라 해도 쉽게 이해할 수 있지만 프로그래밍은 그러지를 못해서 잘 쓰지 않기로 했지만, 이번에는 그다지 어려운 것도 아니고, 포토샵을 다루는 사람이라면 재미있게 볼 수 도 있을 것 같아 쓰게 되었다. 
이 글은 DirectX로 포토샵 블랜딩 모드를 구현하는 것을 보여주며, 본인도 정리하는 입장으로 쓰고 있는지라.. 약간 모자를 수도 있다. 그럴때는 과감히 리플~! 달기 바란다.  % --> . 
| PhotoShop BlendMode with DX DirectX로 포토샵 블랜딩 모드 구현하기
 | 
| 사실 DX로 포토샵의 모든 블랜딩 모드를 구현할 수는 없으며, 일부만이지만 실무에서 자주 쓰는 블랜딩 모드를 구현하게 될 것이다. 블랜딩 모드를 설명하기 위해 2가지 이미지를 준비했다. 
 
 | 
 | 
 |  | Background Image | Layer Image | 
 | 
| Multiply | 
| | 설명(Description): 대상색과 원본색을 곱한다.
 
 수식(Formula):
 Result = SC * DC
 
 DX 블랜딩 모드(DX Blending Mode):
 SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
 SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ZERO );
 SetRenderState( D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR );
 | 
 | 
 | 
| Screen | 
| | 설명(Description): Mulitiply 모드랑 반대되는 모드가 바로 Screen 모드다. 원본, 대상 색의 반전시킨다음 곱한다.
 
 수식(Formula):
 Result = 1 - ( 1 - SC ) * ( 1 - DC )
 
 DX 블랜딩 모드(DX Blending Mode):
 SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
 SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVDESTCOLOR );
 SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
 | 
 | 
 | 
| Darken | 
| | 설명(Description): 원본, 대상 색을 비교해 어두운 색만 표현한다.
 
 수식(Formula):
 Result = MIN( SC, DC )
 
 DX 블랜딩 모드(DX Blending Mode):
 SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_MIN );
 SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
 SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
 | 
 | 
 | 
| Lighten | 
| | 설명(Description): 원본, 대상 색을 비교해 밝은 색만 표현한다.
 
 수식(Formula):
 Result = MAX( SC, DC )
 
 DX 블랜딩 모드(DX Blending Mode):
 SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_MAX );
 SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
 SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
 | 
 | 
 | 
| Additive | 
| | 설명(Description): 원본, 대상 색을 더한다. 기본적인 블랜딩 모드다.
 
 수식(Formula):
 Result = SC + DC
 
 DX 블랜딩 모드(DX Blending Mode):
 SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
 SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
 SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );
 | 
 | 
 |