DirectX 11

220923

슬뷔 2022. 10. 1. 23:43

레이아웃은 정점의 정보를 표현한다.

레이아웃 -> 버텍스쉐이더가 입력으로 받을 시멘틱과 버텍스가 어떻게 구성되어 있는지

시멘틱으로 정보를 알려주는 객체

 

정점을 사용하는 것은 버텍스 쉐이더이다.

하나의 정점에 하나의 버텍스 쉐이더가 호출된다.

 

버텍스쉐이더는 어떻게 정점이 구성되어있는지는 모르지만 

하나의 정점안에 포지션이랑 컬러 시멘틱이 있어야 하고 입력을 받아오겠다는 것이기 때문에

둘이 연결을 시켜주어야한다.

 

그래서 레이아웃보다 버텍스쉐이더가 먼저 만들어져야 한다.

 

HLSL으로 작성한 걸 읽어들여서 기계어로 바꾼걸 빌드할건데,

빌드된 코드를 저장하는게 ID3DBlob 이라는 객체이다.


ID3DBlob  -> 컴파일 된 코드를 저장~

코드만을 저장하진 않고 문자열 데이터 or 바이너리화된 코드를 저장하는 메모리블록이다.

엔트리포인트(1byte 문자열을 사용한다.)는 함수명이다.
한 파일 안에 버텍스쉐이더를 여러 종류 만들 수 있다.
그 중에서 컴파일 진행시킬 버텍스쉐이더가 누군지 진입점 함수 이름을 알려주어야한다.

 

레스터라이저에서 정점을 넘겨서 NDC로 넘어온 좌표가 

내부영역 삼각형에 호출될 픽셀쉐이더들을 호출할 수 있게 레스터라이저가 준비를 해줘야하는데

이때 필요한게 위상구조이다,

 

Topology -> 위상구조(위치와 상태를 나타내는 구조)

linestrip 으로 설정하면 호출되는 픽셀이 내부영역이 아니라 라인을 따라서 걸리는 픽셀들이

픽셀쉐이더로 호출이 돼서 라인이 호출이 된다.

 

trianglelist 로 설정하면 레스터라이저는 점 세개를 기준으로 삼각형을 만들어서 내부영역에

픽셀들을 픽셀쉐이더로 호출되게 한다.

 

깊이버퍼의 용도 -> 현재 그려지려는 물체가 깊이버퍼에 있는

깊이값보다 크면 그런 픽셀값들은 OM(마지막단계)단계에서 걸러버린다.

 

'DirectX 11' 카테고리의 다른 글

220927  (0) 2022.10.05
220926  (0) 2022.10.04
220929  (0) 2022.09.29
220922  (0) 2022.09.26
220921  (0) 2022.09.26