본문 바로가기

5장 카메라, 렌더링, 씬 (1) 5장 카메라, 렌더링, 씬 - 카메라 : 씬이 렌더링되는 시점이다. 카메라는 주어진 원근감과 시야로 만들어진 씬의 광경을 이루는 3D 공간 안의 한 점으로서, 픽셀 형태의 텍스처로 담기며 래스터화된다. 이런 과정을 거친 후, 이 텍스처는 다른 카메라들을 통한 이전의 렌더링 결과의 맨 위에 혼합 및 합성되어 화면상에 렌더링된다. 1. 카메라 기즈모 - 씬에서의 카메라 위치, 시야 등의 속성을 통해 카메라에 보이는 모습 등을 명확히 보여주는 것을 프러스텀 기즈모(frustum gizmo)라고 한다. 2. 보이기 - 게임이 진행되는 동안 오브젝트 가시성에 대한 의문이 생길 때가 많다. 오브젝트가 보이지 않을 때, 처리 부하를 줄이기 위해 멈출 수 있는 동작이나 계산이 많기 때문이다. 게다가 카메라가 움직였을 ..
Multiple APK support link : https://developer.android.com/google/play/publishing/multiple-apks Multiple APK support | Android Developers Multiple APK support is a feature on Google Play that allows you to publish different APKs for your application that are each targeted to different device configurations. Each APK is a complete and independent version of your application, but they share… developer.android.com *Mult..
ABI에 대해 여러 개의 APK 구성 link : https://developer.android.com/studio/build/configure-apk-splits Build multiple APKs | Android Developers Although you should build a single APK to support all your target devices whenever possible, that might result in a very large APK due to files needed to support multiple screen densities or Application Binary Interfaces (ABIs). One way to reduce the size developer.android.com *ABI에 대해..
4장 이벤트 주도적 프로그래밍 4장 이벤트 주도적 프로그래밍 1. 이벤트 - 유니티에서 게임 월드는 완전히 결정론적인 시스템으로서 유한한 수의 게임오브젝트를 담는 씬이고, 데카르트 3D 좌표계와 시간을 가진다. - 하나의 행동은 다른 행동을 수반하는 식으로 서로의 행동들은 중요환 관계를 맺고 있다. 이러한 연결이나 결합을 이벤트라고 부르는데, 각가의 개별적인 연결은 하나의 이벤트가 된다. 2. 이벤트 관리 - 이벤트 리스너(EventListener) : 자신이 발생시킨 이벤트를 포함한 어떤 이벤트가 발생하면 알기를 원하는 모든 오브젝트를 리스너(Listener:수신자)라고 부른다. - 이벤트 포스터(EventPoster) : 리스너와 반대로 오브젝트가 이벤트 발생을 알아차린 경우, 이 오브젝트는 다른 모든 리스너가 알 수 있게 이벤트..
1장 C# 복습 / 2장 디버깅 / 3장 싱글턴과 정적 멤버, 게임오브젝트와 월드 1장 C# 복습 1. C#을 선택하는 이유 - 각 언어들에 절대적인 우월함이나 부족함이 존재하지는 않는다. 모든 언어는 각각의 이점과 쓰임새가 있고, 유니티에서 사용되는 모든 언어는 게임을 만드는 데 있어 똑같이 쓸 만한 언어이다. - 개발자들이 유니티를 접할 때 C#을 선택하는 경우 기존에 만들어진 자료 대부분에 가장 손쉽게 접근할 수 있기 때문이다. - C#은 다른 분야의 애플리케이션 개발에 큰 영향력을 가지고 있는 관계로 대부분의 유니티 튜토리얼은 C#을 염두에 두고 만들어졌다. - C#은 유니티에서도 사용하는 닷넷 프레임워크의 역사와 함께한다. - C#은 게임 개발 분야에 큰 영향력을 지닌 C++과 가장 닮아있기도 하다. - C#을 배움으로써 현재의 게임 업계에서 유니티 프로그래머에게 요구하는 것..
오랜만에 글 간간히 글을 올리다가 오랜만에 chat에 잡담을 남긴다. 입사한지 어연 5개월차가 되가면서 서울 생활이 익숙해져가고 있다. 팀원 분들도 너무 좋은 사람들을 만나서 즐거운 생활을 하고 있다. 다만 현재 하고 있는 업무가 학생 때 공부를 많이 해보지 않은 native 단에서 만든 프로젝트 유지 보수를 맡아서 초반에는 꽤나 고생했다. 지금도 모르는 부분이 많지만 점차 익숙해졌고, 몰랐던 부분에 대한 지식을 공부하면서 실력이 상승됐음을 느낀다. 이렇게 글을 다시 쓰는 이유는 블로그를 재시작하면서 공부를 하기 위함이다. 회사에 적응하고, 나에게 휴식을 주기 위해서 주말과 평일에 공부를 따로 하지 않았는데 이제는 해야겠다. 주로 공부할 분야는 C#과 Unity가 될 것이다. 학생 때처럼 프로젝트를 진행하면서 배우는..
unity Lambert & Blinn phong Lambert(램버트) / Blinn Phong(블린 퐁) 01: 유니티에 내장된 라이팅 구조 물리 기반 쉐이더 (Standard Shader - Metallic pass) struct SurfaceOutputStandard { fixed3 Albedo; // 반사율 (기본 색상 / 오브젝트의 텍스쳐) fixed3 Normal; // 법선 (반사각을 결정하는 면의 방향) fixed3 Emission; // 방사 (이 오브젝트가 스스로 생성하는 빛의 양 - 빛의 영향을 받지 않는 색상) half Metallic; // 재질이 금속인가 아닌가 half Smoothness; // 재질이 거친가 매끈한가 half Occlusion; // 폐색 (차폐되어 어둡게 되는 강도) half Alpha; // 투명도 };..
unity SurfaceOutputStandard SurfaceOutputStandard 사용하기 01: Standard Shader(스탠다드 쉐이더) struct SurfaceOutputStandard { fixed3 Albedo; // 반사율 (기본 색상 / 오브젝트의 텍스쳐) fixed3 Normal; // 법선 (반사각을 결정하는 면의 방향) fixed3 Emission; // 방사 (이 오브젝트가 스스로 생성하는 빛의 양 - 빛의 영향을 받지 않는 색상) half Metallic; // 재질이 금속인가 아닌가 half Smoothness; // 재질이 거친가 매끈한가 half Occlusion; // 폐색 (차폐되어 어둡게 되는 강도) half Alpha; // 투명도 }; glossiness -> 광택 (스펙큘러 반사가 퍼지는 정도) grad..