[DirectX11] 7. 삼각형 – Input Layout에 대해 알아보자.

Input Layout에 대해 알아보자. Vertex Buffer와 Vertex Shader를 사용하기 위해 설정을 해주어야 하는게 하나 더 있다. 바로 Input Layout의 설정이다. Input Layout은 정점 쉐이더에서 사용할 정점에 대해 특성을 부여해준다. 정점 구조체로 정점 버퍼를 만들었던 것을 보자. 정점은 다양한 형태로 구성될 수 있고 정점 버퍼 역시 다양한 형태를 따를 수 있다. 쉐이더에서는 이 정점의 구조에 대해 … Read more

[DirectX11] 6. 삼각형 – Vertex Shader에 대해 알아보자.

Vertex Shader에 대해서 알아보자. 이전글에서 정점 버퍼를 만들었다. 이 정점 버퍼의 내용으로 렌더링을 걸었을 때 가장 처음 가공을 시작하는 렌더링 파이프라인의 스테이지가 바로 이 Vertex Shader Stage이다. 이번글에는 HLSL로 작성된 1.쉐이더 파일을 컴파일한 후, 2. 컴파일된 내용을 쉐이더 객체로 생성하여 3. 렌더링 파이프라인에 연결하는 과정에 대해 알아볼 것이다. Shader Code 작성 우선 아주 간단한 형태의 … Read more

[DirectX11] 5. 삼각형 – Vertex Buffer에 대해 알아보자.

Vertex Buffer에 대해 알아보자. 마이크로 소프트 홈페이지에서 공식적으로 정점 버퍼를 만드는 방법에 대해 설명하고 있다. 우선 가장 먼저 정점 버퍼를 만드는 예제 코드를 보자. Vertex Structure 정의하기 정점 버퍼를 만들기 위해서 우선 정점의 데이터 형태를 정의할 필요가 있다. 위치와 색깔을 가지는 간단한 형태의 정점 구조체 왜 구조체의 형태여야 할까? 좀 더 원시적으로 생각해서 float Vertex[ … Read more

[DirectX11] 4. 삼각형 – Vertex Buffer, Vertex Shader, Pixel Shader

삼각형이라는 최소 폴리곤이라도 화면에 렌더링 하기 위해서는 필수로 준비해야 하는 것이 있다. 바로 Vertex Buffer, Vertex Shader, Pixel Shader 이다. DirectX11 API를 사용해서 삼각형을 렌더링 한다는 것은 곧 DirectX11의 렌더링 파이프라인을 사용한다는 뜻이다. 따라서 최소한으로 렌더링 파이프라인이 동작하여 결과물을 만들 수 있으려면 최소한으로 필요한 것들을 준비해서 렌더링 파이프라인에 설정해줘야 하는 것이다. 이 렌더링 파이프라인 스테이지들 … Read more

[DirectX11]3. 초기화 – DirectX11 API를 이용한 빈 화면 렌더링 하기

DirectX11 API를 이용해서 빈 화면 렌더링 해보자. 앞서 이전글를 통해 기본적인 객체들을 생성했고 이 객체들을 이용해서 화면을 렌더링할 것이다. 메시지 루프 수정 DirectX11 API를 이용한 렌더링은 매 프레임마다 새로운 내용들을 항상 갱신해서 보여줘야 한다. 따라서 메시지 큐를 기반으로 동작하는 루프의 수정이 필요하다. 수정 전 메시지 루프 코드 수정 후 메시지 루프 코드 수정된 메시지 루프는 … Read more

[DirectX11] 2. 초기화 – 디바이스 객체들을 만들어 보자.

환경 구축를 통해서 프로젝트의 생성까지 모두 끝나고 빌드하면 다음과 같은 화면을 볼 수 있다. 하지만 아직 DirectX를 통해 렌더링되는 화면은 아니다. 이제부터 DirectX11 API를 이용해 빈 화면을 우선 렌더링 해보도록 하자. 디바이스 객체들을 만들자 DirectX11 API를 이용하기 위해서 우선적으로 생성해야 하는 객체들이 있다. ID3D11Device, ID3D11DeviceContext, IDXGISwapChain 인터페이스 객체 3개가 필요하다. 편의상 이들을 통칭해서 디바이스 객체들이라고 … Read more

[DirectX11] 1. 환경 구축을 해보자.

DirectX11 개발 환경 구축을 해보자. 2024년 기준으로 환경 구축을 어떻게 하는지 한번 알아보자. 프로그램 설치 Visual Studio 2022 설치 Visual Studio 2022 커뮤니티 버전 – 최신 무료 버전 다운로드에서 설치한다. IDE는 Rider( 이하 라이더 ) 를 사용할 예정이지만 라이더에는 컴파일러가 포함되어 있지 않다. 라이더는 MSVC( Microsoft Visual C++ )에 의존하기 때문에 이를 사용하기 위해서 설치하는 … Read more