Inventory
-
객체 풀@ 16. 1 ~ 17. 1/디자인 패턴 2016. 12. 26. 19:23
메모리 단편화를 막기 위한 방법 중 하나결론은 메모리를 크게 한번에 잡아놓고 계속 들고 있으면서 마음껏 객체를 할당, 해제하는 것이다. 1. 먼저 재사용 가능한 객체들을 모아놓은 객체 풀 클래스를 정의한다.2. 여기에 들어가는 객체는 현재 자신이 사용 중인지 여부를 알 수 있는 방법을 제공해야 한다.3. 풀은 초기화할때 사용할 객체들을 미리 생성하고(보통 같은 종류의 객체를 연속된 배열에 넣는다.), 그리고 사용안함으로 초기화한다.4. 새로운 객체가 필요하면 풀에 요청을 하고, 요청된 풀은 사용 중으로 초기화해서 반환하고..더이상 사용안하면 사용안함으로 초기화 보통 시각적 효과같이 눈으로 볼 수 있는 것에 많이 사용된다. 물론 사운드도 해당한다. 어쨌든 다음과 같을때 사용한다.- 객체를 빈번하게 생성, ..
-
컴퍼넌트 패턴 & 이벤트 큐 정리@ 16. 1 ~ 17. 1/디자인 패턴 2016. 12. 26. 18:59
보통 다른 코드는 서로 격리해야 한다고 배운다.한클래스안에서 많은 내용을 처리하게 된다면 하나 수정에 엄청나게 많은 작업이 필요하다는것 이다.머잖아 이런 클래스는 기능보다 버그가 더 빨리 늘어난다. 디커플링 패턴이 컴퍼넌트 패턴임.. 예를 들어 if(물리상태 && 그래픽 상태 != 안보임)플레이 사운드 이런 코드가 있다면 전부 알아야 한다. 보통 하나가 게임 코드를 분야별로 스레드에 분배하는 것이다. 각각...이렇게 하려면 디커플링이 되어야 하는데.. 커플링과 코드 길이 문제는 서로 악영향을 미친다. 한 클래스가 너무 많은 분야를 건드리다 보니 모든 프로그래머가 그 클래스를 작업해야 하는데, 클래스가 너무 크다 보니 작업하기가 굉장히 어렵다. 이런 상황이 심해지면 프로그래머들이 뒤죽박죽이 된 클래스를 손..
-
3D 좌표, 투영관련@ 16. 1 ~ 17. 1/면접관련 2016. 12. 21. 00:47
투영변환클리핑이란 : 뷰 좌표계 중 일부를 클립하는 역할을 한다. 이떄 잘라버리는 부분은 카메라에서 보이지 않는 부분이다. 카메라에서 보이지 않는 부분을 삭제한 육면체 영역을 뷰 프러스텀이라 한다.뷰 프러스텀을 정규 뷰 볼륨이라하는 각 정점 좌표가 정규화된 정육면체로 변환하는 것이 바로 프로젝션 변환이다. 근평면보다 커야 할 원평면이 결과적으로 같은 크기가 되므로,뷰 프러스텀을 무리하게 정육면체 모양으로 찌부러뜨린다고 생각하면 정규 뷰 볼륨에서는 원평면에 가까워지면 가까워질수록..오브젝트의 응축도가 높아진다. 반대로 근평면에 가까워질수록 비율적으로는 커진다. 이런 프로젝션 변환 방법을 원근투영이라한다.. **오클루전 컬링 : 카메라에서 보이지 않는 오버드로된 부분의 그리기 처리를 생략할 수 있다. 직교투..
-
유니티 정리@ 16. 1 ~ 17. 1/Unity 2016. 12. 20. 21:24
유니티가 제공하는 총체적으로 메카님이라고 한다.Animator의 왼쪽에 Layer와 Parameters가 있는데 Layer는 동시에 여러 애니메이션을 재생할 수 있게 해주는부분..상하체 분리 이런건듯..?파라미터는 변수들 엥커 관련 화면변환시 변경된 위치를 위해서 필요하다.클릭 이벤트를 어떤 스크립트에 또는 어떤 객체 전달하기 위해선 EventTrigger가 필요하다. 회전, 이동을 애니메이션 값을 대입하지 않고 스크립트 로 제어하며, 회전의 루트위치, 수직 방향의 기준, 수평 방향의 기준을 애니메이션 데이터에 따른다는 뜻이다. Original - 애니메이션 데이터를 따른다.Bake Into Pose 체크 - 스크립트로 이동, 회전을 제어한다.[출처] [유니티로 간단한 RPG만들기] #2 카메라이동 과 ..
-
포트폴리오 예상질문@ 16. 1 ~ 17. 1/면접관련 2016. 12. 16. 20:54
스타2* 전체적인 UI를 구현할떄 직교투영 행렬을 활용 D3DXMatrixOrthoLH(&m_matProj, WINCX, WINCY, 0.f, 1.f);//여기서 중요한건 월드가 단위 행렬이란것이다.m_matView._11 = fSizeX;//사이즈 해놓고..스케일 행렬m_matView._22 = fSizeY;m_matView._33 = 1.f; //아하..아래 연산으로 모니터의 중앙값이 0,0이 된다..//직교투영을 하면 화면의 가운데가 0, 0 인 좌표가 된다.화면의 왼쪽 끝이 - 400.f 일 것이고 화면의 오른쪽 끝직교투영도 3D 공간상이기때문에 회전 이동이 가능하다. 월드 셋팅이 된다는 것이다.월드셋팅되기때문에 카메라이동시 위치가 틀리면 안보인다는 것이다. 그래서 인터페이스를 만들때 이점을생각해..
-
디자인패턴 정리@ 16. 1 ~ 17. 1/면접관련 2016. 12. 16. 17:49
디자인 패턴을 쓰는이유?여러 선대 프로그래머분들께서 구조에 대한 고민을 응집시켜놓은 하나의 모범답안이라고 생각함. 그것을 이용한다는것은그 수많은 시행착오를 덜 겪게 되는부분이고 가장 중요한 유지보수와 생산성에 있어서 어느정도 보장을 받는다고 생각. 옵저버 패턴어떤 객체의 상태가 변할 떄 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 업데이트 될 수 있게 만든다. 다른 객체가 뭐하는지 관심이 많은 옵저버 클래스어떤 클래스든 Observer인터페이스를 구현해서 관찰자가 되면 된다. 알림 메서드는 관찰당하는 객체가 호출한다. 호출이다..(Subject라고들 하지..)1. 끈질지게 관찰자 목록을 들고 있는일을 하고..그래서 여기서 관찰자들에게 일을 시키고... 그 서브젝트를 관찰을 당하는..
-
객체지향? 절차지향? 정리 끝판@ 16. 1 ~ 17. 1/면접관련 2016. 12. 16. 15:36
객체 지향 프로그래밍이란?프로그램을 수많은 객체라는 기본 단위로 나누고 이 객체들의 상호작용으로 데이터를 처리하는 프로그래밍 절차지향과의 차이점?일단 둘다 실행방식에 있어서는 순서대로 진행되는것은 똑같다. 객체지향 프로그래밍이 실행절차에 영향을 받지 않는 프로그램 기법이 아니다. 절차지향 : 데이터와 함수가 묶여있지 않다., 객체지향에 비해서 코드양이 증가할수록 사용성과 유지보수의 어려움이 있다.객체지향 : 데이터와 함수가 묶여 있다. OPP를 사용하는 이유?새로운 기능을 추가하거나 기능을 확장하는것이(유연성과 확장성) 편리하다.그럼 어떤 특징 떄문에 위에 유연성과 확장성이 편하다는것인가? 특징캡슐화1. 기능과 데이터들을 한곳으로 모은것. 객체지향에서는 이런걸 클래스라고 부른다. 상속상속의 주 목적은 재..