GameChoi
Choi Programming
GameChoi
전체 방문자
오늘
어제
  • 분류 전체보기 (468)
    • C++ Algorithm & Study (184)
      • C++ & Algorithm Strategies (45)
      • Game Math & DirectX 11 (72)
      • Server + UE5 (29)
      • Lyra Clone Coding (37)
    • Create Game (284)
      • [Window API] Game Client & .. (55)
      • [DirectX] DirectX 2D & 3D (155)
      • [UE5] BLUEPRINT & C++ (74)
    • odds and ends (0)
      • English (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • GAME Client
  • Destination Move Packet
  • core
  • c++
  • job queue
  • Network Worker
  • Game Server
  • Other Character
  • Player State
  • Direct11
  • RPG Game
  • Direct3D
  • Algorithm Strategies
  • client
  • UE5
  • server
  • Player Move Packet
  • protobuf
  • session
  • Game Room

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GameChoi

Choi Programming

[Direct11] 19. Direct3D Blending
C++ Algorithm & Study/Game Math & DirectX 11

[Direct11] 19. Direct3D Blending

2023. 6. 17. 17:38

1. Direct3D Blending

1.1 Blending

1.1.1 Blending Formula

 - 현재 래스터화하는 픽셀을 후면 버퍼에 이미 래스터화되어 있는 픽셀과 섞는 혼합 기법

   - 현재 래스터화 중인 픽셀에 대해 픽셀 셰이더로 부터 출력한 색상과 현재 후면 버퍼에 있는 픽셀 색상

     - 위 두가지에 대해 혼합을 사용하지 않으면 덮어써서 후면 버퍼의 새로운 색상이 됨

       - 그러나 혼합을 사용하면 일정한 공식에 따라 혼합해서 얻은 새로운 색상을 덮어씀

     - 원본 혼합 계수와 대상 혼합 계수를 사용해 다양한 방식으로 혼합해 여러 가지 효과를 낼 수 있음

       - 혼합 공식은 색상의 RGB 성분들에만 적용, 알파 성분은 비슷하지만 구별되는 공식 적용

typedef enum D3D11_BLEND_0P;

 - 서로 다른 혼합 연산자와 원본 혼합 계수, 대상 혼합 계수의 조합으로 수십 가지의 혼합 효과를 얻을 수 있음

   - 밑의 함수를 통해 응용 프로그램에서 혼합 계수 색상을 지정 가능, 혼합 상태를 변경하기까지 변하지 않음

ID3D11DeviceContext::OMSetBlendState;

1.1.2 Blending State

 - Direct3D 응용 프로그램에서 혼합 설정들은 렌더 상태의 하나인 혼합 상태를 나타내는 인터페이스 사용

   - 밑에 코드로 부터 나오는 구조체를 채워 함수를 호출

typedef struct D3D11_BLEND_DESC;
HRESULT ID3D11Device::CreateBlendState;

     - 구조체를 통해 알파 포괄도 변환이 활성화 & 각 렌더 대상(최대 8개) 마다 혼합을 개별적으로 수행할 수 있음

       - 밑의 구조체는 다중 렌더 대상에 적용할 혼합 설정을 담은 구조체

D3D11_RENDER_TARGET_BLEND_DESC

   - 밑의 구조체를 사용하면 혼합의 결과를 후면 버퍼의 어떤 색상 채널들에 기록할 것인지 결정

typedef enum D3D11_COLOR_WRITE_ENABLE;

 - 마지막으로 위에서 생성한 혼합 상태 객체는 출력 병합기 단계(OM)에 묶어야 함

void ID3D11DeviceContext::OMSetBlendState;
저작자표시 (새창열림)

'C++ Algorithm & Study > Game Math & DirectX 11' 카테고리의 다른 글

[Direct11] 21. EX App Program - Fog System  (1) 2023.06.17
[Direct11] 20. Direct3D Blending - Blending System  (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
[Direct11] 16. Direct3D Texture  (0) 2023.06.16
    'C++ Algorithm & Study/Game Math & DirectX 11' 카테고리의 다른 글
    • [Direct11] 21. EX App Program - Fog System
    • [Direct11] 20. Direct3D Blending - Blending System
    • [Direct11] 18. EX App Program - Texture Box
    • [Direct11] 17. Direct3D Texture - Filter & Mode
    GameChoi
    GameChoi

    티스토리툴바