본문 바로가기

Game

밉맵 (Mipmap) 밉맵(Mipmap) 밉맵은 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합. 동작원리 텍스처가 원래 크기 이상으로 보일 경우 기본 텍스처를 그대로 사용한다.원래보다 멀거나 작게 보일 경우 축소된 텍스처를 렌더링에 (보간 과정을 거쳐서) 대신 사용한다. 렌더링에 사용되는 텍스처 픽셀(텍셀)의 수가 훨씬 줄어들어 렌더링의 속도를 높일 수 있다. 밉맵 이미지들은 이미 안티에일리어싱 처리가 되어있으므로 렌더링 과정에서 일어날 수 있는 손실이 줄고, 실시간 렌더링의 부하도 줄일 수 있다. 밉맵 예시 텍스처의 크기가 256x256 픽셀이라고 할 때, 만들어지는 밉맵 집합은 각각 이전 이미지의 1/4 크기다.(128x128, 64x64, 3.. 더보기
게임 클라이언트 프로그래머 면접을 보고 특정 개념을 설명하는것 위주에, 어떤 상황에서 어떤 것을 사용해야 하는가? 꼬리 물기 식의 질문.. 1. 자료구조자료구조의 특성과 적용 위주로 물어봄. 어떤 경우엔 어떤 식으로 써야 하는가? 2. 알고리즘for문과 recursive의 차이점, 이런 저런 상황인데 뭐가 더 괜찮은 방법인가? 3. 언어 개념OOP, Boxing, 상속, 다형성 등 4. 네트워크TCP, UDP 특징 5. 그래픽스 단순 개념LOD, 밉맵, 컬링 등 6. 메모리함수가 메모리에 어떻게 쌓이는가?힙은 무엇인가?어떤 식으로 가비지 콜렉터를 구현할 수 있겠는가? ---------------------------------------------------------------------------------------------------.. 더보기
게임 프로그래머 면접 문제 주제 인터넷을 돌아다니면서 게임 프로그래머 면접 문제의 주제를 정리해 봤습니다. · Call by value & Call by reference · const 변수형 const 변수 · 가상함수 테이블 · Class · OOP · 다형성 · Virtual void test() = 0;과 Virtual void test(); 차이점 · override와 overload 각각 설명, 차이점 · 다중상속 문제점 · 인터페이스와 추상클래스 · 가상함수 · Volatile · 소멸자에 virtual 쓰는 이유 · 암시적 변환 (static_cast) · 스마트 포인터 · strcmp 함수 구현 · 싱글 링크드리스트 작성 · 스택과 큐 설명 · vector와 list 차이점 · Binary Search Tree · Pr.. 더보기
[펌]물리 충돌 제대로 사용하자 Collider Collider만 붙어있는 오브젝트는 물리 엔진에서 Static Collider로 따로 관리된다. 이동을 막는 벽의 역할을 수행할 때 적합하며 transform을 직접 움직일 경우 부하가 생기므로 움직이지 않는 경우에만 사용한다. 벽이 아닌 감지 기능으로 사용할 경우에는 IsTrigger 옵션을 켠다. 이 옵션을 켜면 물리 충돌은 일어나지 않고 충돌 감지만 된다. Collider & RigidBody Collider와 Rigidbody가 붙어있는 오브젝트는 Collider만 붙어있는 오브젝트와 달리 물리적인 힘으로 움직일 때 사용한다. 움직이는 벽이라면 IsTrigger를 끄고, 움직이는 감지 물체라면 IsTrigger 옵션을 켠다. Collider가 붙어 있으므로 transform으로 .. 더보기
오큘러스 모바일 SDK - 기기 Setup Device Setup 기어 VR 어플리케이션을 실행하고, 디버깅하고, 테스트하기 위해, 지원 기기를 어떻게 세팅해야 하는지 알아봅시다. 다음을 참조하여 지원 기기를 확인해 주세요.System and Hardware Requirements - https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-reqs/ Note : 이 정보는 발행시의 정보이고, 이 페이지에서 언급되는 제 3의 어플리케이션의 지속성과 사용가능성을 장담할 수 없습니다. 또한 언급하는 제3의 어플리케이션의 지원을 제공할 수도 없습니다. 디버깅을 위한 기기 확인하기 어플리케이션을 당신의 기기에서 테스트하고 디버깅하려면, 기기에 대한 구체적인 개발자 옵션들을 활.. 더보기
오큘러스 모바일 SDK - 설치 가이드 모바일 SDK 설치 가이드 이 가이드는 삼성 기기 세팅과 VR 어플리케이션 개발환경을 준비를 다루고 있습니다. 오큘러스 모바일 SDK 설치하기 1. 이곳에서 모바일 SDK를 다운받는다- https://developer.oculus.com/downloads/. 2. 다운로드가 되면 zip파일을 원하는 경로에 압축푼다. (e.g., C:\Oculus\Mobile) 모바일 SDK는 zip 형식의 압축된 저장소로 구성되어 있고, 소스와 미디어 파일을 포함한다 : over_sdk_mobile_.zip 유니티와 언리얼 개발자를 위한 모바일 Setup 대부분 유니티와 언리얼 개발자들은 안드로이드 스튜디오나 NDK를 설치할 필요가 없습니다. 제 3의 게임 엔진을 사용하는 개발자들은 개발 전에, 아래 주소의 내용을 따라.. 더보기
오큘러스 모바일 SDK - SDK Contents SDK Contents SDK에 다음이 포함되어 있습니다. · 고성능 VR 어플리케이션을 빌드하기 위한 native 프레임워크· native 그리고 유니티 프로젝트 예제 - VR 어플리케이션 제작을 위한 모델이 되어줄 소스 포함· 이미 빌드된 예제 어플리케이션, native와 유니티 몇개씩· native 개발을 도와줄 툴들 Unity Resources 유니티와 Legacy Integration package 를 위한 오큘러스 유틸리티는 다음 사이트에서 각자 다운받을 수 있습니다.- https://developer.oculus.com/downloads 모바일 SDK가 포함된 유니티 샘플들은 유니티 4 버전만, 오큘러스 Legacy Integration package에서 사용 가능합니다. 유니티 5.1 이상.. 더보기
오큘러스 모바일 SDK - 어플리케이션 서명 어플리케이션 서명 오큘러스 모바일 앱은 2개의 확실한 서명을 요구합니다. · 오큘러스 서명 파일 (개발 동안 요구되고, 제출 시 삭제) · 안드로이드 어플리케이션 서명 (제출 시 요구됩니다) 오큘러스 서명 파일(osig) 개발하는 동안, 당신의 어플리케이션은 오큘러스에서 발행한 오큘러스 서명 파일(osig)로 승인 받아야 합니다. 이 서명은 파일 형태로 당신의 어플리케이션에 포함되며, 당신의 모바일 기기의 보호된 저수준의 VR 기능에 접근하기 위해 사용됩니다. 서명파일은 기기간 공유할 수 없으므로, 개발에 사용하는 기기에 맞는 osig 파일을 따로 생성하셔야 합니다. 어플리케이션이 제출되고 승인된다면, 오큘러스가 모든 기기에서 사용할 수 있도록 APK를 변경합니다. osig 요청을 위한 더 많은 정보와 .. 더보기
오큘러스 모바일 SDK - 요구사항 해당 내용은 Oculus Developer Center에 있는 내용을 참고하여 적었습니다. - https://developer.oculus.com/documentation/mobilesdk/latest/ 1. 운영체제 요구사항 · Windows 7 or 8· Mac OS : 10.6+ (x86 only) 2. 최소 시스템 요구사항 · 2.0+ GHz processor· 2 GB system RAM 3. 지원 VR 헤드셋 · 삼성 기어 VR 4. 지원 기기 · 삼성 노트5· 삼성 갤럭시 S6· 삼성 갤럭시 S6 Edge· 삼성 갤럭시 S7· 삼성 갤럭시 S7 Edge 기어 VR Innovator v2 · 삼성 갤럭시 S6 기어 VR Innovator v1 · 삼성 노트4 5. 타겟 기기 요구사항 · API.. 더보기
UML - 기본편 ( 기본 표기 형식 및 관계 표현법 ) 공부하다가 UML에 관해 쉽게 잘 설명되어져 있는 글이 있어서 퍼왔습니다. 출처 - http://geniusduck.tistory.com/ UML - 기본편 ( 기본 표기 형식 및 관계 표현법 ) Class 및 Class instance 의 기본 표기 형식 Class 표기형식 UML Diagram 중에서 가장 기본적인 표현 단위인 클래스의 표기형식을 알아보자. + : public - : private # : protected * variables, methods 는 생략이 가능하나 class 이름은 반드시 명시해주어야 한다. 위의 class 를 소스코드로 표현하면 아래와 같다. Class instance 객체의 표기형식 Relationships( 관계 표현 ) 서로 의미있는 클래스들의 관계에는 크게 4가.. 더보기