inflearn logo
강의

Course

Instructor

[MMORPG Game Development with C++ and Unreal Series] Part 2: Game Math and DirectX12

Skybox

w로 나눠 주는건 그냥 규칙인 건가요?

301

baljang

35 asked

0

좌표가 (x,y,z,w)가 있다고 했을 때 나중에 다음 단계로 넘어가게 될 때, 즉 rasterizer 단계로 넘어가게 될 때
(x/w, y/w, z/w, w/w)
이런식으로 다 w값으로 나눠주고 있다고 하셨는데
 
w값으로 나눠주는 건 그냥 규칙인 건가요?
 
변환행렬 시간에 z값이 깊이 값이 되는 건 행렬에서 배웠는데
w로 나눠주는건 생소한 부분인거 같아서요.
 
 

DirectX 게임수학

Answer 1

2

Young Jin

애초에 우리가 사는 세상은 3차원 공간인데 SRT 좌표변환(scale, rotation, translation)등에

왜 3x3 행렬(3차원 행렬)이 아니라 4x4 행렬(4차원 행렬)을 사용할까 고민해 볼 수 있어요. 

가장 큰 이유는 3차원 행렬 곱으로는 translation을 할 수가 없기 때문입니다.

왜냐하면 아무리 원점에 해당하는 (0,0,0) 벡터값에 행렬 곱을 적용해도 

(0,0,0)으로 고정되게 돼요. 그래서 하나의 차원을 추가해서 행렬 계산을 하게 된거죠.

어떻게 보면 계산 트릭이라고 볼 수도 있겠네요. 

Geometry Processing 스테이지를 지나서 Rasterization 스테이지에 진입할 때는

다시금 원래의 자연스런 형태의 데이터로 변환해주는 거라고 보시면 될 것 같습니다.

그래서 4번째 좌표값인 w을 1로 normalize하는 것입니다.

0

baljang

그렇군요, 감사합니다! :)

Lighting 추가하고 나니 프레임이 많이 떨어지는데 원래 이런 건가요?

0

512

0

Deferred Rendering 에서 조명에 Culling이 일어나는 것 같습니다.

1

536

1

static_pointer_cast와 static_cast의 차이가 무엇인가요?

0

1337

1

Engine.lib 파일을 포함 불가

0

606

1

셰이더 VS_Main에서 행렬 곱해줄 때

0

483

2

1:05분 질문(1시간 5분)

0

296

0

오류가 발생합니다

0

470

1

Animation코드가 무한로딩에 걸리네요

0

346

0

fov 관련해서 질문이 있습니다

0

274

0

normal mapping Tangent Space 수학식 질문

0

380

1

커리큘럼 관련 질문 드립니다!

0

273

0

강의를 어떤식으로 들으면 될까요??

0

379

1

머티리얼과 텍스쳐, 셰이더를 따로 관리해도 되나요?

0

432

1

박스 메쉬 생성하는 함수에서 버텍스가 왜 24개인가요

0

240

1

복수개의 서로 다른 동영상을 Picture in Picture 형식으로 rendering하는 가장 최적의 방법이 궁금합니다.

0

256

0

애니메이션 쉐이더에서 행렬보간 부분에 대해 질문드립니다

0

228

0

assert 에서 _currentIndex 와 _elemtSize 를 비교하는게 이해가 잘 안되네요

1

244

1

DX 공부방법에 대해서 질문 있습니다.

0

630

1

Root Parameter 를 정의하는데 있어서 질문있습니다.

0

369

1

Client 콘솔창이 잠깐 켜졌다가 말아요

0

251

1

DirectX12 Root Signature : CBV관련 질문입니다.

0

348

1

뷰 변환 행렬 관련하여

0

627

2

강의 시작!

0

299

1

using namespace Microsoft::WRL;

0

268

1