inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[게임 프로그래머 도약반] DirectX11 입문

SkyBox

SkyDemo에서 카메라 입력이 작동하지 않는 문제

81

Jaein Choi

작성한 질문수 1

0

SkyBox 실습에서 화면에 텍스처 렌더링까지는 잘 되는데, 문제는 실행했을 때 WASD 입력을 넣어도 카메라가 움직이질 않습니다.

 

회전 행렬이 잘못 적용되어서 텍스처가 함께 이동하는 건가 해서 Update에 아래와 같이 회전을 직접 줘봤는데, 이 때는 카메라 회전이 되어 하늘이 움직이는 것처럼 잘 보입니다.

	_camera->GetTransform()->SetRotation(Vec3(0, _rotation, 0));
	_rotation += 0.25f * DT;

 

제공해주신 A-34)+SkyBox에서 다른 데모는 카메라 입력이 잘 되는데, SkyDemo만 동일한 문제가 발생했습니다. 마찬가지로 카메라 입력이 먹히질 않습니다.

 

중단점을 찍고 디버깅을 해봐도 InputManager::Update()CameraScript::Update()가 매 프레임 정상적으로 호출되고 있었습니다.

혹시 SkyDemo의 특정 초기화 순서나 렌더링 파이프라인 설정이 다른 데모와 달라서 입력 이벤트 처리에 영향을 주는 건 아닌지 궁금합니다.

아직 해결하지 못해서 질문을 올립니다..

 

c++ directx skybox

답변 2

0

Jaein Choi

SkyDemo의 카메라 입력 문제에 대해 추가로 질문드립니다.

혹시 몰라 셰이더에서 viewPos를 구할 때,

float4 viewPos = mul(float4(input.position.xyz, 1), V);

이렇게 바꿔봤더니, 렌더링된 구체가 이동해서 카메라를 회전시켰을 때 회전이 적용되는 것을 시각적으로 확인할 수 있었습니다.

이 테스트를 통해 CameraScript의 회전 입력 자체는 정상적으로 작동하는 것을 확인했습니다.

그런데 원래 코드인

float4 viewPos = mul(float4(input.position.xyz, 0), V);

일 때는 카메라를 회전시켜도 텍스처가 시야에 고정된 것처럼 보입니다.

w=0 로 했을 때, 카메라의 이동을 무시하고 회전만 적용하는 것으로 알고 있는데, 왜 회전이 적용된 결과가 보이지 않는 것인지 궁금합니다. 혹시 SkyDemo에서만 카메라의 회전값이 셰이더로 올바르게 전달되지 않는 이유가 있을까요?

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Jaein Choi님.

카메라 입력이 SkyDemo에서 정상적으로 작동하지 않는다고 하셨군요. 다른 데모에서는 문제없이 작동하는 것을 보면, SkyDemo에 특정한 설정이 영향을 미치는 것일 수 있습니다. 일반적으로 이런 문제는 입력 시스템 초기화 문제, 스크립트 업데이트 순서 문제 또는 씬 내 오브젝트의 충돌로 인한 경우가 많습니다.

다음 사항들을 한번 확인해 보시겠어요?

  1. 카메라 및 스크립트 초기에 정상적으로 초기화: 시작 시점에서 카메라와 관련된 스크립트 및 오브젝트들이 정상적으로 초기화되지 않았는지 확인해 보세요.

  2. 카메라 컨트롤 스크립트 확인: SkyDemo의 카메라 컨트롤 스크립트에서 InputManager로부터 입력을 받는 부분이 있는지, 해당 부분이 정상적으로 값을 받아오고 있는지 디버깅해 보세요.

  3. 씬 설정 비교: 다른 데모와 SkyDemo 비교하여 씬 설정, 오브젝트 레이어, 태그 등을 살펴보세요. 특히, 카메라의 태그가 설정되어 있는지 확인하세요.

  4. Update 호출 순서 확인: SkyDemo에서 호출 순서가 잘못되어 필요한 수치가 제때 계산되지 않거나 전달되지 않는 상황이 있을 수 있습니다.

만약 이 정보로도 해결이 어렵다면, 다음 관련된 질문 및 답변 링크들을 통해 비슷한 상황을 다룬 사례를 참고하실 수 있습니다:

위의 링크는 유니티에서 발생할 수 있는 비슷한 문제를 다룹니다. 이런 문제들은 종종 설정이나 스크립트 로직에서 발생하곤 하니, 다른 프로젝트들과도 비교하여 설정을 점검해 보시는 것을 추천드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

assimp-vc143-mtd.dll가 없어서 코드 실행을 진행할 수 없습니다 라는 에러가 뜹니다.

0

77

1

Model.cpp에서 ReadMaterial()의 SpecularTexture 부분 질문입니다.

0

55

0

노멀매핑 자료

0

71

1

셰이더 인텔리센스 문제

0

78

1

4강 삼각형띄우기 오류관련 질문있습니다

0

64

1

64.애니메이션 강의의, AssimpTool 에서 FBX 애니매이션 데이터를 옮길 때의 강의 오류가 있는 것 같습니다.

1

65

1

섹션6. DirectX 11 3D 입문 강의부터 렌더링이 안됩니다

0

131

2

텍스처와 UV 강의 관련해서 문의드려요

0

162

2

frame간 보간에 대해서 질문이있습니다.

1

132

1

자료 pptx가 아닌 pdf

0

109

1

어디에 좀더 집중해야하나 고민입니다

0

200

1

CameraPosition 질문있습니다

1

112

1

안녕하세요 roatation 행렬 질문있습니다.

1

155

2

'C\ .... ......lib'은 올바른 win32에플리케이션이 아닙니다.

0

521

4

버텍스버퍼 실습 도중 버그

0

176

1

물방울 책 실습은 어디까지 하는건가요??

0

404

2

리소스매니저의 get함수에서 에러가 나요

0

132

2

자식 GameObject SetPosition 시 움직이지 않음

0

101

1

강의 끝나고 3D 포폴

0

314

2

공부 방법에 대해서 문의 드려요

0

151

1

19분 5초에 함수 구현부 한꺼번에 만드는법

1

150

1

좌표계 변환 행렬이랑 srt 변환 행렬

0

202

2

SRT 행렬중에 ppt 질문 있습니다.

0

166

1

hlsl파일 컴파일

0

301

1