본문 바로가기
반응형

DirectX1126

[DirectX11] 기하 셰이더 아래의 내용들은 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책의 내용을 바탕으로 작성된 것입니다. 11장 기하 셰이더 기하 셰이더 프로그래밍(11.1절 453p) - 기하 셰이더는 테셀레이션 단계를 사용하지 않는다고 할 때, 렌더링 파이프라인에서 정점 셰이더 단계와 픽셀 셰이더 단계 사이에 있는 생략 가능한 단계이다. - 기하 셰이더 프로그래밍은 정점 셰이더나 픽셀 셰이더 프로그래밍과 상당히 유사하나 몇 가지 차이점이 있다. - 기하 셰이더 프로그램을 작성할 때에는 우선 기하 셰이더의 한 실행(호출)에서 출력할 정점들의 최대 개수를 지정해야 한다.(기하 셰이더는 기본도형마다 실행된다.) => 기하 셰이더 주 함수 이전에 최대 정점 개수 특성(attribute)을 지정해 주어야 한다. [max.. 2023. 1. 25.
[DirectX11] 10장 스텐실 적용 연습문제 ※ 아래의 내용들은 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책의 내용을 바탕으로 작성된 것입니다. 3. 해골 예제에서 벽 뒤로 반사상이 보이도록 만들어보라.(그림 10.1의 왼쪽처럼) - 예제를 구현하는 순서는 아래와 같다. 1. 바닥과 벽 등을 보통의 방법으로 렌더링 한다. 거울은 아직 그리지 않는다. 2. 스텐실 버퍼를 0으로 지운다. 3. 거울을 스텐실 버퍼에만 렌더링한다. 4. 반사된 두개골을 후면 버퍼와 스텐실 버퍼에 렌더링한다. 5. 거울 자체를 후면 버퍼에 통상적인 방식으로 렌더링하되, 반사된 물체가 가려지지 않도록 하기 위해 투명도 혼합을 적용한다. 위의 과정 중 4번째 단계에서, 반사된 두개골 기하구조의 픽셀들은 스텐실 판정을 통과한 경우에만 후면 버퍼에 기록되도록 하고있.. 2023. 1. 18.
[DirectX11] 스텐실 적용 ※ 아래의 내용들은 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책의 내용을 바탕으로 작성된 것입니다. 10장 스텐실 적용 깊이ㆍ스텐실 버퍼의 자료 형식과 버퍼 지우기(10.1절 421p) - 깊이ㆍ스텐실 버퍼 또한 하나의 텍스처다. => 깊이ㆍ스텐실 버퍼를 생성할 때 특정 자료 형식을 지정할 필요가 있다. 스텐실 판정(10.2절 422p) - 주어진 한 픽셀을 후면 버퍼에 기록할 것인지 아닌지를 스텐실 버퍼에 근거해서 판정하는 것을 "스텐실 판정(stencil test)"라고 부른다. => 스텐실 버퍼를 이용하면 후면 버퍼의 특정 영역으로의 렌더링을 방지할 수 있다. - 스텐실 적용이 활성화된 경우 스텐실 판정은 픽셀이 래스터화되는 과정에서 (즉, 출력 병합기 단계 도중에) 일어난다. - 스.. 2023. 1. 7.
[DirectX11] 9장 혼합 연습문제 ※ 아래의 내용들은 DirectX 11을 이용한 3D 게임 프로그래밍 입문 책의 내용을 바탕으로 작성된 것입니다. 1. 수면을 렌더링하기 전에 첫 번째 표본의 추출을 비활성화 하는 코드를 수행하도록 예제를 수정하라. - 아래의 기존 예제 코드에서 마지막 0xffffffff 값만 0xfffffffe 로 변경하면 문제없이 실행된다. md3dImmediateContext->OMSetBlendState(RenderStates::TransparentBS, blendFactor, 0xffffffff); => 다만 저의 경우, 주석에도 적혀있듯이 코드에 익숙해질겸 혼합 상태를 직접 설정하고 만드는 방식으로 변경했습니다. - 이번 예제는 다중표본화를 사용하지 않으므로, 이렇게 하면 물 픽셀이 그려지지 않는다. 2. 혼.. 2023. 1. 5.
반응형