DirectX 11/코드 분석

World, View, Projection

김띠띵 2022. 2. 8. 01:49

결과물

 


코드

World.cpp

 


World.fx

전역변수 생성


추가

UpdateSubresource

더보기

CPU에서 VRam으로 값을 복사해 넘겨주는데 두가지 방법이 있다.

그중 하나가 UpdateSubresource이다.

속도가 늦은편이라 대체로 CPU에서 업데이트가 드문드문할때 추천한다고 한다.

드문드문 : 프레임당 한번이하

Default Buffer의 경우, UpdateSubResource를 사용해서만 업데이트 할 수 있다.

Default Buffer는 속성중 Resource Usage Type이 DEFAULT인걸 뜻한다.

 

공간변환

더보기

정점위치에 공간행렬을 곱하면 그 공간으로 변환이 된다.

공간행렬은 각 공간의 원점과 세 축을 알면 만들 수 있다.

그래서 Vertex Shader에서 mul함수를 사용하는것

mul : multiply 곱셈

 

World

더보기

정점의 로컬공간으로도 움직일수 있는데 왜 world공간이 필요한가? 한다면

한번에 모두 이동시키기 편하기 때문이다.

 

정점은 모든 정점을 다 일일히 이동시켜줘야한다. = 매우 반복적이고 느림

world공간으로 계산한다면 한번에 모두 이동시킬수 있다.

 

그래서 거의 대부분 그려질 클래스들은 모두 정점버퍼를 가지고있고

그 정점을 움직이기 위해 world매트릭스를 가지고 있다.

 

 

https://grandstayner.tistory.com/entry/DirectX-11-UpdateSubResource-Map-Unmap-CopyResource-CopySubresourceRegion%EC%9D%98-%ED%8C%81

 

DirectX11 - UpdateSubResource(), Map() ~ Unmap(), CopyResource(), CopySubresourceRegion()의 팁

DirectX 11에서는 Resource에 데이터를 넣는 함수는 4개가 존재한다. UpdateSubresource(), Map() ~ Unmap(), CopyResource(), CopySubresourceRegion() 이 함수들은 자주 사용되는 만큼 어느 정도는 알고 사용해..

grandstayner.tistory.com

https://gamedevforever.com/230

 

D3D11에서 Lock ??

제가 연재하는 날은 아니지만, 최근 플밍 관련 글도 자주 올라오지 않고, 겸사 겸사 정리하고 있던 내용도 있던 찰나에 불쑥 제가 한번 난입했습니다. ㅎㅎㅎ. 다들 DirectX11 공부를 하고 계신지

gamedevforever.com