레이캐스팅(raycasting)이란? 말 그대로 쓰자면, 한 지점에서 광선을 쏴서 그 광선이 어딘가에 충돌하는지 알아내는 방법이다. 원래는 렌더링을 위한 기법으로 사용되었는데, 반사가 없는 레이 트레이싱으로 생각할 수도 있기 때문이다. 또한, 그림자를 계산하는데 사용될 수도 있다. 생각보다 활용도가 매우 높아서, 게임에서 마우스 클릭시 어떤 오브젝트가 선택되었는지 오브젝트 피킹에 사용되기도 하고, NPC의 시야에 플레이어가 보이는지 체크할 수 도 있다….
[카테고리:] Godot
Godot 게임엔진 관련
Godot : 입력을 받는 위치, _input(), _process(), _physics_process()
Godot 에서 입력의 처리는 다음 세가지 함수에서 가능하다. 세 경우의 차이를 알아보자.
Godot 4 : 3D Middle mouse button (MMB) 안쓰기
블렌더도 그렇지만, Godot도 Middle mouse button을 사용하도록 되어있다. 요즘 세상에 mmb(middle mouse button)을 메인으로 사용한다니… 아니, 쓸 수 있는데, 마우스들이 휠버튼을 엿같이 만들어놔서 쓰기 너무 불편하다. 그래서 안쓰는 방법 찾아봄. 메뉴바에서 Editor 메뉴를 연다. General 탭에 Editors>3D 항목을 찾는다. 항목에 보면, “Emulate 3Button Mouse”를 체크해줌. 이렇게하면, 바로 아래 항목에 설정된 Orbit Modifier, Pan Modifier, Zoom…
작업하던 프로젝트 Github에 올리기
1. github에서 repository 생성 github 사이트의 대시보드에서 new 버튼을 눌러 새로운 git repository를 생성한다. github의 새로운 프로젝트 생성화면은 다음과 같다. 입력란에 빨간줄을 쳐놨는데, repository이름을 입력하고, 프로젝트를 공개할지여부를 Public/Private로 선택한다. 그 아래로, README 파일 및 .gitignore, license파일들을 자동생성해주는 옵션이 있는데, 작업중인 소스코드를 올리려는 경우, 충돌이 있을 수 있으니 다 비워주고 추가하지 않는다. 마지막으로 Create repository 버튼을…
Godot 3D rendering #4 : Geometry Transforms
앞에서 레이 트레이싱에 대해 개념적으로만 간단히 알아봤다. 레이 트레이싱이 현실의 빛을 시뮬레이션 하는 방법이기 때문에, 이론적으로는 가장 명확하고 단순하겠지만, 엄청난 계산량으로 인해 리얼타임 렌더링에서 사용하기엔 제한적이다. 일반적인 리얼타임 렌더링은 두단계로 나뉠 수 있는데, 첫번째로 Geometry Transform들을 통해서 3D 공간의 오브젝트를 스크린 스페이스로 옮겨오면서 어떤 부분들이 보여지는지 판단하는 과정이 필요하고, 두번째로 이렇게 옮겨온 오브젝트를 스크린의 각…