inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12

행렬 곱셈 질문 드립니다.

587

작성자 없음

작성한 질문수 0

0

안녕하세요 루키스님. 질문 남깁니다.

 

쉐이더로 보내준 g_matWVP와 g_matWV를 사용하면 물체가 잘 나옵니다. 하지만, 두 행렬을 사용하지 않고 쉐이더 코드 안에서 직접 wvp, wv를 곱해서 사용하려고 하는데 물체가 나오질 않습니다.

 

HLSL은 열중심이고, DxMath는 행중심 행렬이라 cbuffer안에 있는 값들도 row_major로 설정해주었습니다. 그런데도 물체가 나오질 않습니다.. 혹시 행렬 순서가 잘못되었나 싶어 P VW로 곱해봤으나 결과는 동일했습니다..

(1).png(2).png

 

 

 

directx 게임수학

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
sysy0512님의 질문에 대하여 답변 드립니다.

HLSL에서 행렬 곱셈을 할 때 순서가 매우 중요합니다. 보통 행렬 곱셈은 Local -> World -> View -> Projection 순서로 진행됩니다. 만약 g_matWVP와 g_matWV가 각각 World-View-Projection, World-View 행렬로 제공되었다면, 이 행렬들은 이미 적절한 순서로 곱해진 상태일 수 있습니다.

cbuffer에 row_major로 설정했음에도 불구하고 물체가 나타나지 않는다면, HLSL 내에서 행렬을 직접 곱할 때 계산 순서를 다시 확인해보시는 것이 좋습니다. 열 기반의 HLSL에서는 행렬을 곱할 때 오른쪽에서 왼쪽 순으로 곱하는 것을 기억하시고, 다음과 같은 순서로 곱셈을 해보세요.

Projection * View * World * Local

또한 DirectX 수학 라이브러리(DirectXMath)를 사용하실 때는 XMMatrixMultiply 함수를 사용하여 행렬을 곱할 수 있으며, 이 함수는 첫 번째 인자를 오른쪽 행렬, 두 번째 인자를 왼쪽 행렬로 고려합니다.

직접 계산 시 행렬 곱 순서를 확인하시고, 그래도 문제가 해결되지 않는다면 쉐이더 코드 내에서 행렬이 어떻게 적용되는지 디버깅을 통해 값을 검토해보시기 바랍니다.

도움이 되셨길 바라며, 추가적인 질문이 있으시면 언제든지 문의해 주세요.

복습중에 커맨드 큐 관련 질문이 있습니다.

0

37

1

_vsBlob와 _psBlob에서 nullptr이 뜨면서 실행이 안됩니다

0

58

1

#include d3dx12.h 추가했지만 오류

0

82

1

LNK1104 error, DirectXTexD.lib 파일을 열 수 없습니다.

0

123

1

[DirectXTex LNK2019 에러]

0

245

2

UI 랜더링이 이해가 안되어 질문드립니다

0

176

1

insideTess 값 관련 질문

0

126

1

렌더 타겟을 SRV로 사용하려고 합니다.

0

182

1

C++ 언어 표준과 Engine.lib 오류에 관하여..

0

281

2

실행과정에서의 문제

0

396

3

결과물에 의문이 생겨서 한가지 질문 드립니다

0

147

1

uv좌표변환

0

149

1

Shader 관련 문제

0

223

1

Load 부분에서 문제가 있어 질문드립니다

0

164

1

강의에서 보여진 모습과 다른모양이 되어서 질문드립니다

0

173

1

enumclass 질문입니다

0

155

1

nullptr오류가 발생해요.

0

363

2

Normal Mapping / Assertion failed! 오류

0

221

1

1>LINK : fatal error LNK1104: 'Engine.lib' 파일을 열 수 없습니다.

0

430

2

shared_ptr 과 헤더파일 관련하여 질문있습니다

0

208

1

질문있습니다.

0

177

1

장치 초기화 nullptr이 자꾸 발견 되네요.

0

301

2

용 모델에 분명 Diffuse 텍스쳐가 있는것같은데 왜 적용이 안되나요?

0

254

1

안녕하세요 질문있습니다

0

205

1