1. Direct3D Blending
1.1 Blending System
1.1.1 Zero
- 원본 피셀이 대상 픽셀을 덮어쓰거나 섞이는 일 없이 대상 픽셀이 그대로 유지
- 렌더링 결과를 깊이 스텐실 버퍼에만 기록, 후면 버퍼에 기록하지 않고자 할 때 유용
- 혼합 계수, 대상 혼합 계수, 혼합 연산자를 밑의 코드로 적용
MD11_BLEND_ZERO; MD11_BLEND_ONE; D3D11_BLEND_OP_ADD;
- 또한 구조체를 사용하여 어떤 색상 채널에도 값이 기록되지 않게 해도 같은 효과를 얻을 수 있음
D3D11_RENDER_TARGET_BLEND_DESC;
1.1.2 ADD & ODD Blending
- 원본 픽셀을 대상 픽셀에 더하고자 한다면 밑의 코드를 적용 & 빼고자 한다면 혼합 연산자만 변경
D3D11_BLEND_ONE; D3D11_BLEND_ONE; D3D11_BLEND_OP_ADD;
D3D11_BLEND_OP_SUBTRACT;
1.1.3 Multiply Blending
- 대상 픽셀에 원본 픽셀을 성분별로 곱하는 혼합을 사용
MD11_BLEND_ZERO; MD11_BLEND_SRC_COLOR; D3D11_BLEND_OP_ADD;
1.1.4 Transparency
- 원본 픽셀과 대상 픽셀을 원본 픽셀의 불투명도에 비례해서 혼합
MD11_BLEND_SRC_ALPHA; MD11_BLEND_INV_SRC_ALPHA; D3D11_BLEND_OP_ADD;
- 혼합 방법에서 물체들을 그리는 순서가 중요함을 주목
- 혼합을 사용하지 않는 물체들을 먼저 그리고, 혼합을 사용하는 물체들을 카메라와의 거리를 기준으로 정렬
- 물체들을 뒤에서 앞의 순서로 그림, 각 물체가 부분적으로 뒤에 있는 물체들과 혼합
- 물체가 투명하다면 각 물체가 부분적으로 뒤에 있는 물체들과 혼합
- 투명한 물체 뒤에 있는 모든 픽셀이 이미 후면 버퍼에 기록
- 투명한 원본 픽셀을 그 뒤에 있는 장면의 대상 픽셀과 혼합할 수 있음
'C++ Algorithm & Study > Game Math & DirectX 11' 카테고리의 다른 글
[Direct11] 22. Direct3D Stencil (0) | 2023.06.19 |
---|---|
[Direct11] 21. EX App Program - Fog System (1) | 2023.06.17 |
[Direct11] 19. Direct3D Blending (0) | 2023.06.17 |
[Direct11] 18. EX App Program - Texture Box (0) | 2023.06.16 |
[Direct11] 17. Direct3D Texture - Filter & Mode (0) | 2023.06.16 |