지식이 정확하지 않은 상태에서 어설프게 정리했던 내용이라, 내용의 주를 이루는 Anti-aliasing으로 제목을 바꾸고 SSAA와 MSAA의 차이점을 명확하게 다시 정리했다. 저번 포스팅에서 카메라에 대해 얘기하며 프로젝션에 대해 다뤘었다. 3D 공간의 오브젝트를 2D 화면으로 매핑하는 내용이었다. 수학적으로는 이것으로 충분하겠지만, 물리적으로 우리의 2D 공간은 모니터가 되고, 픽셀로 이루어진 제한된 해상도를 갖게 된다. Rasterization은 이 제한된 해상도의 픽셀공간에 그리는…
[카테고리:] 기타
메인 카테고리 소속되지 않는 개발 관련 팁
Godot 3D rendering #1 : 3D Model and Camera
3D 그래픽을 얘기하려면 대학 수업 수준의 방대한 내용을 말해야 한다. 많은걸 생략하고 Godot과 같은 게임 제작 툴을 사용하기 위한 내용에 포커싱을 맞춰 정리해 보려 한다. 3D Model 3D 그래픽은 기본적으로 vertex라고 불리는 3D공간상의 점들의 집합에 이 점들을 이은 선들로 면을 만들어 물체를 표현한다. 이와 같은 방법으로 일반적인 3D 오브젝트는 다음과 같이 삼각형으로 구성된다. 삼각형을 기본단위로…
게임엔진 및 3D 프로그램들 좌표계(Coordinate system)
본 내용은 처음 접하는 Godot: Pong 게임을 만들어 보자 #3 에서 독립적인 내용을 추출한 포스팅 입니다. 아, 내가 좌표계 얘길 했던가? Godot에서는 화면의 좌측 상단이 (0, 0)이고 오른쪽이 +X 축, 아래쪽이 +Y축이다. 2D 좌표계는 공식 문서에서 확인할 수 있다. 얘기가 나온김에 3D도 살펴보자. 3D는 오른손 좌표계와 왼손 좌표계로 나뉜다. Godot은 오른손 좌표계를 사용한다. 오른손 좌표계에서도…
Android: gradle 7.0 upgrade 후 에러
Android Studio Arctic Fox 2020.3.1 이 정식버전으로 릴리즈됐다. 업데이트 하면서 Android Studio와 AGP(Android gradle plugin)의 버전 체계가 변경되었다. Android Studio는 그 기반인 IntelliJ IDEA에 맞춰 <IntelliJ년도>.<Major 버전>.<Minor 버전> 형태를 사용하고, AGP는 시멘틱 버전관리를 따르면서 필요로하는 gradle 버전을 따라가게 되었다. 이 버전에 대한 자세한 내용은 공식 블로그를 통해 살펴볼 수 있다. 문제는 자연스럽게 Android Studio를 업데이트…
Multithread Singleton 구현에서의 Double-checked locking pattern
안드로이드 Room에서 Database 클래스의 Singleton 구현에 조금 의아해 보이는 코드가 있었다. Database class 코드를 다시보면 아래와 같은데, singleton 구현부분에서 getInstance() 함수만 떼어서 보자. 코드를 보면, instance의 null 여부를 두 번 체크하고 있다. 생각없이 보면 이상할 수 있는데, 멀티 쓰레드 동기화시 꼭 필요한 부분이며 Double-checked locking 이라고 부르는 디자인 패턴이다. 링크의 위키페이지를 따라가면 관련 설명이 있다….