728x90

DX 16

DirectX 11 스터디 - 래스터라이저 스테이트, 샘플 스테이트, 블렌드 스테이트

1. 래스터라이저 스테이트를 생성/설정하고 Render() 함수에서 전달해준다. ID3D11RasterizerState 를 생성하고, ~_DESC 에 설정값을 담아 생성한다. 그리고 Render() 함수에서 Pixel Shader 에 적용되도록 전달함. ComPtr _rasterizerState; void Game::CreateRasterizerState() { D3D11_RASTERIZER_DESC desc; ZeroMemory(&desc, sizeof(desc)); desc.FillMode = D3D11_FILL_SOLID; desc.CullMode = D3D11_CULL_BACK; desc.FrontCounterClockwise = false; // 시계방향/반시계방향 = Clockwise / Co..

DirectX 11 스터디 - 상수 버퍼 (Constant Buffer)

버텍스 데이터/매쉬 데이터를 건들지 않고, Shader 에 버퍼 데이터를 넘겨서 버텍스셰이더를 통해 변경되도록 처리해본다. 순서는 아래와 같다. 1. 상수버퍼 생성 2. DeviceContext 에 버퍼 매핑 3. 렌더 함수에서 버퍼 전달 아래는 수정한 코드 블럭들 // 멤버 선언 TransformData _transformData; ComPtr _constantBuffer; // 구조체 선언 struct TransformData { Vec3 offset; float dummy; // 16byte 로 정렬해야 하기 때문에 더미 멤버를 추가. }; // 버퍼 생성 void Game::CreateContantBuffer() { D3D11_BUFFER_DESC desc; ZeroMemory(&desc, siz..

DirectX 11 스터디 - 텍스쳐 UV맵핑 (ShaderResourceView)

이전 노트에서 인덱스버퍼까지 다룸. 2023.09.06 - [게임 개발 자료/게임 개발 스터디] - DirectX 11 스터디 노트 - 도형 만들어보기 (Create Geometry) + 인덱스 버퍼 + 버텍스 셰이더, 픽셀 셰이더 이번엔 Shader Resource View 를 생성해서 png 텍스쳐 파일을 로드하고 버텍스컬러 대신 uv 좌표를 입력해서 폴리곤 위에 텍스쳐를 띄워본다. 1. ShaderResourceVIew 생성 / 리소스 로드 2. 셰이더 수정 3. 랜더링 함수 호출 이 순서로 진행. 1. ShaderResourceVIew 생성 / 리소스 로드 ID3D11ShaderResourceView 생성. 이 때 텍스쳐 리소스도 같이 로드. // ComPtrPSSetShader(_pixelSha..

DirectX 11 스터디 노트 - 도형 만들어보기 (Create Geometry) + 인덱스 버퍼 + 버텍스 셰이더, 픽셀 셰이더

Vertex 구조체를 만들어 Vertex Data 를 구성하고, ID3D11Buffer 를 생성해서 ID3D11Device 의 CreateBuffer 함수로 VertexBuffer 를 만들어준다. void Game::CreateGeometry() { // VertexData { _vertices.resize(3); _vertices[0].position = Vec3(-0.5f, -0.5f, 0.f); _vertices[0].color = Color(1.f, 0.f, 0.f, 1.f); _vertices[1].position = Vec3(0.f, 0.5f, 0.f); _vertices[1].color = Color(0.f, 1.f, 0.f, 1.f); _vertices[2].position = Vec3(0..

DirectX 11 스터디 노트 - 장치 초기화 (Create Device)

DeviceAndSwapChain 생성 HRESULT hr = ::D3D11CreateDeviceAndSwapChain( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, &desc, _swapChain.GetAddressOf(), _device.GetAddressOf(), nullptr, _deviceContext.GetAddressOf() ); D3D11CreateDeviceAndSwapChain 함수 (디스플레이 어댑터와 렌더링에 사용되는 스왑 체인을 나타내는 디바이스를 만듭니다.) https://learn.microsoft.com/ko-kr/windows/win32/api/d3d11/nf-d3d11-d3d11..

DXGI란? DXGI(DirectX Graphics Infrastructure) 개요

DXGI란? DXGI 는 DirectX Graphics Infrastructure 의 약어. 그래픽 요소들의 일부가 상대적으로 느리게 진화하는 것을 고려하여 하위 수준 작업과 DirectX 그래픽 런타임이 독립적으로 동작할 수 있도록 추상화 레이어를 제공하기 위한 것. DXGI는 향후에 공통 프레임워크를 제공하려 그래픽 구성 요소들을 다룰 수 있도록 함. DXGI 는 Microsoft Direct3D 10 부터 지원. 이전 버전까지는 이전 버전(DX9)의 Direct3D에서는 하드웨어 디바이스 열거, 렌더링된 프레임을 출력에 표시, 감마 제어 및 전체 화면 전환 관리와 같은 하위 수준 작업이 Direct3D 런타임에 포함되어 있었음. 이제 이러한 작업들이 DXGI에서 구현. DXGI의 목적은 커널 모드 ..

728x90
반응형