본문 바로가기

Old91

Open3D와 SMPL, 딥러닝.. 뭐 그런거 요즘 융합적인 프로젝트를 진행 중이다! 근데 이건 기밀이라서 글을 쓰진 않을거고 여러가지 자료 조사 했던 링크들을 정리해두려고 한다..ㅎㅎ https://meshcapade.wiki/SMPL#mesh-templates--samples Meshcapade Wiki A Wiki on Body-Modelling Technology, maintained by Meshcapade GmbH. meshcapade.wiki SMPL: A Skinned Multi-Person Linear Model (SIGGRAPH Asia 2015) Open3D – A Modern Library for 3D Data Processing Open3D – A Modern Library for 3D Data Processing Introd.. 2023. 7. 24.
기본 용어 정리 모델 좌표계: 모델(메쉬)를 표현하기 위한 좌표계 모델마다 자체적인 별도의 좌표계를 갖고 있다고 가정 객체 로컬 공간 일반적으로 객체(매쉬)의 중심을 원점으로 하는 좌표계 (좌표계의 원점과 중심이 반드시 일치해야 하는 것은 아님) 월드 좌표계 게임 세계를 하나의 통일된 좌표계로 표현 모든 객체(메쉬)들이 동일한 하나의 좌표계로 표현(배치) 게임 월드 단위 개발자는 게임 월드의 크기와 단위를 결정하기 위해 아티스트와 협력해야 함 실수 표현으로 인한 문제 -> 범위로 표현하기 메쉬의 크기와 이동 속력을 고려해야 함 텍스쳐 매핑을 어떻게 할 것인가도 고려 사항임 모든 객체가 서로 상대적이면서 일관된 크기로 만들어진다면 문제 없음 은면 제거(Back Face Culling) 은면 제거는 관찰자(카메라)가 볼 수.. 2023. 7. 24.
Scriptable Object Scriptable Object : 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너 유니티 오브젝트를 상속받은 클래스로 Unity Serialize 시스템을 가지고 있음 serialize: 클래스나 오브젝트를 스트링이나 일차원 배열 형태로 변환하는 것 실제 파일을 열어 보면 저장된 텍스트 내용 확인 가능 데이터 컨테이너로 데이터 공유에 사용할 수 있고, 이를 통해 메모리 사용량 줄일 수 있음 Scriptable Object는 데이터를 참조 형태로 오브젝트에서 가져올 수 있게 함으로써 메모리 할당을 최소화하고 고유한 값을 가질 수 있게 함 주요 사용 사례) 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄임 연결된 MonoBehaviour 스크립트에 변경되지.. 2023. 7. 24.
디자인 패턴 요약 상속: A is B 장점) 부모 클래스로부터 물려받은 부분은 다시 쓸 필요가 없으므로 재사용 면에 있어서 효율적임 단점) 부모, 조상 클래스가 될 공통된 최소 필수 집합을 개발자가 미리 예상하기 어려움 컴포넌트들끼리 커플링이 심함 컴포넌트: A has B 각자의 기능을 가지고 있는 스스로 동작하는 독립적인 부품 컴포넌트를 뗀다고 해서 오브젝트의 다른 컴포넌트에 영향이 가는 것은 없음 코드의 의존성을 줄이고 재활용성을 높임 인벤토리 기능은 컴포넌트로 구현하는 것이 좋음 컴포넌트란 : 로직을 기능별로 컴포넌트화하는 것, 기능들을 나누어 각각 독립적인 클래스로 분리 한 개체가 여러 분야를 서로 커플링 없이 다룰 수 있게 해줌 인터페이스 & 다형성과 연관 : 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)를.. 2023. 7. 24.
게임 서버와 클라이언트 패키지 게임: 소규모의 플레이어가 같이 모여서 하는 온라인 게임 (Offline이 가능한 경우도 많음), MOG라고도 함 (Multiple Online Game) 서버 플레이어 세 명 이상이 게임을 하려면 그들의 게임 플레이 상태를 저장하는 곳이 필요하고, 이를 위해 플레이어 중 한 명의 컴퓨터가 모든 플레이어의 게임 플레이 상태를 취합하여 유지하는 역할을 해야 함 패키지 게임에서 게임 서버가 하 역할은 지금 플레이어가 두세 명 혹은 많아야 십여 명 참여하여 게임 플레이를 하는 상태, 즉 세션 처리를 담당하는 것 데디케이티드 서버: 클라이언트 프로그램과 같은 엔진을 사용하지만 렌더링과 사용자 입력 처리를 받지 않고, 순전히 클라이언트 연결을 받는 세션을 처리만 하는 프로그램이 따로 운용하는 경우 MUD(.. 2023. 7. 24.
Socket Programming 블로킹 : 디바이스에 처리 요청을 걸어 놓고 응답을 대기하는 함수를 호출할 때 스레드에서 발생하는 대기 현상 소켓뿐만 아니라 파일 핸들에 대한 함수를 호출했을 때도 이러한 대기 현상이 발생하는 것을 모두 블로킹이라고 함 송신 버퍼와 수신 버퍼 송신 버퍼: 일련의 바이트 배열이라고 보면 됨 송신 버퍼의 크기는 고정 되어 있으나, 마음대로 크기를 변경할 수 있음 수신 버퍼가 가득 차면 발생하는 현상 수신 함수가 수신 버퍼에서 데이터를 꺼내는 속도가 운영 체제가 수신 버퍼의 데이터를 채우는 속도보다 느리면 TCP 송신 함수로 송신 버퍼에 데이터를 쌓는 속도보다 수신 함수로 수신 버퍼에서 데이터를 꺼내는 속도가 느리다고 해서 TCP 연결은 끊어지지 않음 (실제 송신 속도가 느린 쪽에 맞추어 작동할 뿐) UDP .. 2023. 7. 24.