Godot 3D rendering #4 : Geometry Transforms

앞에서 레이 트레이싱에 대해 개념적으로만 간단히 알아봤다. 레이 트레이싱이 현실의 빛을 시뮬레이션 하는 방법이기 때문에, 이론적으로는 가장 명확하고 단순하겠지만, 엄청난 계산량으로 인해 리얼타임 렌더링에서 사용하기엔 제한적이다. 일반적인 리얼타임 렌더링은 두단계로 나뉠 수 있는데, 첫번째로 Geometry Transform들을 통해서 3D 공간의 오브젝트를 스크린 스페이스로 옮겨오면서 어떤 부분들이 보여지는지 판단하는 과정이 필요하고, 두번째로 이렇게 옮겨온 오브젝트를 스크린의 각 […]

Godot 과 Unity에서 사용하는 UI Anchor System

본 내용은 처음 접하는 Godot: Pong 게임을 만들어 보자 #4 에서 독립적인 내용을 추출한 포스팅 입니다. 고정된 해상도의 스크린이라면 문제가 매우 간단하나, 현실에서는 각종 모니터부터 핸드폰까지 여러 형태의 스크린 사이즈가 존재한다. 앵커 시스템은 가변적인 스크린 또는 부모 컨트롤 사이즈에 대응하기 위한 방법이다. 유니티에서도 이걸 사용하고 있다. 다음 그림을 보자. 그림이 복잡해 보일지 모르겠는데, 간단한 개념이다. […]

게임엔진 및 3D 프로그램들 좌표계(Coordinate system)

본 내용은 처음 접하는 Godot: Pong 게임을 만들어 보자 #3 에서 독립적인 내용을 추출한 포스팅 입니다. 아, 내가 좌표계 얘길 했던가? Godot에서는 화면의 좌측 상단이 (0, 0)이고 오른쪽이 +X 축, 아래쪽이 +Y축이다. 2D 좌표계는 공식 문서에서 확인할 수 있다. 얘기가 나온김에 3D도 살펴보자. 3D는 오른손 좌표계와 왼손 좌표계로 나뉜다. Godot은 오른손 좌표계를 사용한다. 오른손 좌표계에서도 […]

OOP: constructor and inheritance

상속과 관련해서 생성자는 어떻게 연결이 되는지 헷갈릴만한 포인트들이 있어 한 번 정리해 놓는다. Kotlin 코틀린은 생성자에 클래스이름을 쓰지않고 ‘constructor’라는 키워드를 쓴다. 여러 생성자를 가질 수 있으나, primary constructor는 클래스 첫 라인을 활용한다. ( Kotlin 공식문서 참조 ) 두번째 라인처럼 키워드를 안써줘도 된다. 또한, 세번째처럼 class property정의를 써서 추가적인 할당코드없이 간단하게 사용도 가능하다. 조금 당황스러울 수 […]

OOP: Inheritance and access modifier memo #1

진짜 개인적인 잡담이며, 관련 내용은 별개의 정리 포스팅으로 올리고 있습니다. 디자인 패턴 공부하면서 조금 충격받은게 내가 inheritance와 access modifier조차 이해를 잘못하고 있었다는 사실이다. 단순한 예로 private으로 지정한 클래스 변수는 서브클래스에서 접근이 불가능할 뿐 상속은 되는 거였는데, 상속이 안되는걸로 착각을 하고 있었다. 내 프로그래머 인생이 몽땅 야매였다는 느낌을 받았다. private variable 또는 backing field를 서브클래스에서 어떻게 […]