[DX] 삼각형만들기

vector·2025년 10월 14일

지난번에 만들었던 기본프레임워크에서 단순한 Shader를 추가하여 삼각형을 만들어본다.

GeoMetry 생성

CreateGeometry() - 정점 데이터 및 버퍼 생성

  • CPU에서 만든 _vertices 데이터를 GPU 메모리로 복사
  • D3D11_USAGE_IMMUTABLE -> 변경되지 않는 정적 데이터로 성능 최적화
  • IA(Input Assembler) 단계에서 이 버퍼를 참조

D3D11_USAGE 열거형

  • D3D11_USAGE_DEFAULT
    • GPU에서 읽기 및 쓰기 엑세스가 필요한 리소스
  • D3D11_USAGE_IMMUTABLE
    • GPU에서만 읽을 수 있느 리소스, GPU에서 작성할 수 없으며, CPU에선 전혀 엑세스할 수 없다.
  • D3D11_USAGE_DYNAMIC
    • GPU(읽기 전용)와 CPU(쓰기 전용)에서 엑세스할 수 있는 리소스
  • D3D11_USAGE_STAGING
    • GPU에서 CPU로의 데이터 전송을 지원하는 리소스

LoadShaderFromFile - HLSL 셰이더 컴파일 함수

  • D3DCompileFromFIle()을 통해 .hlsl 파일을 직접 컨파일
  • D3DCOMPILE_DEBUG : 디버그 정보 포함, D3DCOMPILE_SKIP_OPTIMIZTION : 최적화 생략
  • 컴파일된 결과가 blob에 저장되어 이후 셰이더 생성에 사용

VSPS.hlsl

CreateVS() / CreatePS() - 셰이더 로드 및 생성

CreateInputLayout - 입력 레이아웃 생성

결과물

profile
게임 클라이언트 프로그래머 준비중 (공부 및 기록용)

0개의 댓글