* 언리얼 엔진은 세 축에 대한 방향을 x축이 전방, y축이 오른쪽, z축ㅇ 하늘방향으로 설정한다. 3ds max나 Maya, Blender등 3D 제작 툴은 대부분 y축을 전방으로 설정하므로, 외부에서 제작한 오브젝트를 가져온 후에는 오브젝트가 게임 뷰의 x축을 향하도록 회전 시켜야 한다. 2. 액터의 기준점 Pivot Point는 액터의 이동, 회전, 스케일조절을 하기 위한 기준점이다. 언리얼 엔진이 제공하는 스태틱 메시는 대부분 바닥에 닿는 면에 피봇 포인트가 있다. 3. 언리얼 엔진이 단위 언리얼 엔진은 유니(Unit)이라는 가상의 단위를 사용하므로 실제의 거리와 차이가 있지만, 길이는 cm ,각도는 60분법(Degree)이 적용된다. 포인트 라이트나 스포트라이트는 루멘(Lumen)단위로, 1700루멘은 100W전구에 해당한다. 4. 액터의 회전 방향 액터의 회전 각도는 벡터로 표시하지만, 회전 방향은 (x,y,z)축의 회전에 대해 Roll, Pitch, Yaw라는 개념을 사용한다. *액터의 복사는 Ctrl+W키를 누르거나 Alt키를 누른 상태로 액터를 이동하면 복사된 액터가 이동한다. 5. 스냅 설정 스냅(Snap)은 액터를 일정한 거리/각도/비율로 이동/회전/스케일을 조절하기 우한 기능이다. *버텍스 스냅 -->이 기능은 피벗이동(휠버튼 드래그)과 함께 사용한다. 예를들어 큐브의 모서리를 맞출때 사용한다. 이동할 큐브를 선택한 후 V키를 누른 상태에서 기즈모의 중앙을 휠버튼으로 드래긓면 큐브에 버텍스가 표시되므로 그 모서리의 위치에 정확히 맞출 수 있다. 또는 [세팅]메뉴에서 버텍스 스탭 켜시 옵션을 이용한다. *표면 스냅 --> 액터의 바닥을 다른 물체의 표면에 정렬하는 기능이다.
Initial Mark Phase : 싱글 쓰레드에서만 사용한다. 애플리케이션이 중지되고 애플리케이션에서 직접 Reference(Root set에서 한 단계의 Reference관계)되는 Live Object 만 구별한다. Suspend 상태지만 빠르다. Concurrent Mark Phase 단계 : 싱글 쓰레드에서만 사용한다. 애플리케이션은 수행되고, GC Thread외 Working Thread는 애플리케이션 수행이 가능하다. Initial Mark Phase에서 선별된 Live Object가 Reference하고 있는 object를 추적해 Live여부를 구별한다. Remark Phase 단계: 멀티 쓰레드가 사용되며 애플리케이션이 중지된다. 이미 Marking된 오브젝트를 다시 추적, Live 여부 확정, 모든 Resource를 투입한다. Concurrent Sweep Phase 단계 : 싱글쓰레드만 사용한다. 애플리케이션은 수행되고 최종 Live로 판명된 오브젝트를 제외한 Dead Object를 지운다. 단, sweep 작업만하고 Compaction작업은 수행 안한다.항상 Compaction은 Heap의 Suspend를 전제로 하는데 반복된 Sweep은 단편화를 유발한다. 때문에 Free List를 사용하여 단편화를 줄이는 노력을 한다.
웹 소켓은 단일 소켓을 통해서 풀듀플렉스(full-duplex) 통신을 제공하는 프로토콜이다. 웹 브라우저오 서버간의 비동기 메시징을 활성화한다. 풀 듀플렉스는 서버가 브라우저에 메시지를 전송할 수 있고, 브라우저도 서버에 메시지를 전송할 수 있음을 의미한다. 스프링4.0은 웹 소켓 통신을 지원하며, 다음을 포함한다. 메시지 전송과 수신을 위한 하위 레벨 API 스프링 MVC 컨트롤러에서의 메시지 처리를 이한 상위 레벨 API 메시지 전송을 위한 메시징 템플릿 브라우저, 서버, 프록시에서 웹 소켓 지원 부족을 지원하기 위한 SockJS 1. 스프링의 하위 레벨 웹 소켓 API사용하기 간단한 형태로 웹 소켓은 두 애플리케이션 사이의 통신 채널이다. 풀 듀플렉스이므로 양쪽 종단은 메시지를 전송할 수 있고, 다른 쪽은 그 메시지를 받아서 처리한다. 웹 소켓 통신은 여러 종류의 애플리케이션 사이에서 사용될 수 있다. 그러나 웹 소켓의 대부분은 서버와 브라우저 기반 애플리케이션 사이의 통신을 용이하게 하기 위해서 사용된다. 브라우저에서의 자바스크립트 클라이언트는 서버에 대한 연결을 오픈하고, 서버는 그 연결을 통해 브라우저에 업데이트하라고 보낸다. 이러한 방법은 업데이트를 위해 서버를 폴링(Polling)하는 일반적인 방식보다 더 효율적이며, 좀 더 자연스럽다. 하위 레벨 웹 소켓을 지원하기 위해서 스프링에서 메시지를 처리하고, WebSocketHandler를 구현한 클래스를 작성한다. public interface WebSocketHandler{ void afterConnectionEstablished(WebSocketSession session)throws Exception; void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception; void ...
댓글
댓글 쓰기