DEFAULT

GPU가 이 리소스를 빠르게 읽기 및 쓰기 권한이 가능하다.

오직 UpdateSubresource만을 사용하여 업데이트 할 수 있다.

렌더타겟에서 사용될때 좋은 후보가 될수있다 =>무슨말?

 

 

IMMUTABLE

GPU만이 이 리소스를 빠르게 읽을 수 있다.
일단 생성되면 업데이트할 수 없습니다.
생성 호출 중에 초기 데이터를 전달해야 합니다.
변하지 않는 리소스(정적 텍스처, Vb/Ib)에 좋은 후보가 될 수 있습니다.

Vb/Ib : VertexBuffer, IndexBuffer

모든것을 IMMUTABLE로 만들려 애쓰지 마라

 

 

DYNAMIC

빠른 CPU 쓰기 액세스가 필요한 리소스에 사용
(GPU 읽기 액세스 속도가 느려짐)
CPU 읽기 액세스 없음
밑의 두가지 플래그와 Map을 사용하여만 업데이트할 수 있습니다.

  • D3D10_MAP_WRITE_DISCARE
  • D3D10_MAP_WRITE_DNO_OVERWRITE

동적 텍스처, 동적 VertexBuffer는 좋은 후보입니다.

 

 

STAGING

GPU에서 데이터를 다시 읽을 수 있는 유일한 방법입니다.
MAP을 사용해야만 업데이트할 수 있습니다.
단 밑의 플래그와는 매핑할 수 없음

  • D3D11_MAP_WRITE_DISCARD
  • D3D11_MAP_WRITE_NO_OVERWRITE

gpu가 지연되지 않도록 버퍼를 두 배로 늘릴 수 있습니다.
GPU는 이것들을 직접 사용할 수 없다.

 

 


Vertex Buffer의 경우

 

버텍스 버퍼가 프레임당 한 번 미만의 CPU에 의해 터치됨
=> D3D11_USAGE_DEFAULT로 생성하여 UpdateSubresource를 사용하여 업데이트 해라


정점 버퍼는 동적 지오메트리에 사용되며 CPU에서 프레임당 여러 번 업데이트할 필요가 있는 경우

=> D3D11_USAGE_DYNAMIC으로 생성하여 MAP을 통해 업데이트 해라

 

 


사용하면서 내 경험으로 더 알아가면서 추가로 포스팅해야겠다.

 

https://www.slideshare.net/cagetu/windows-to-reality-getting-the-most-out-of-direct3-d-10-graphics-in-your-games

 

Windows to reality getting the most out of direct3 d 10 graphics in…

Windows to Reality: Getting the Most out of Direct3D 10 Graphics in Your Games Shanon Drone Software Development Engineer XNA Developer Connection Microsoft

www.slideshare.net

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=masca140&logNo=220719096462 

 

Direct3D 11의 자원들 (1)

자원을 이야기 하자면 자원 사용의 두 측면을 모두 살펴보는 것이 타당하다. 응용 프로그램의 관점에서 중...

blog.naver.com

 

'DirectX 11 > 개념 정리' 카테고리의 다른 글

동차 표기법 (Homogeneous)  (0) 2022.02.09
Vertex Shader, Pixel Shader, Rasterizer  (0) 2022.02.07
Device & Device Context / COM객체  (0) 2022.02.06

+ Recent posts