자세히보기
반응형

공부 나눔 (Sharing Study) 19

[CS] 데이터베이스의 기본

* 이 게시글은 ⌜면접을 위한 CS 전공지식 노트⌟ 서적으로 공부한 내용을 개인적으로 정리한 것입니다. 데이터베이스 : 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 DBMS(DataBase Management System) : 데이터베이스를 제어, 관리하는 통합 시스템 → DBMS마다 정의된 쿼리언어를 통해 삽입, 삭제, 수정, 조회등을 수행할 수 있으며 실시간 접근과 동시 공유가 가능 엔터티 : 여러 개의 속성을 지닌 명사 (ex.회원) A가 B의 존재 여부에 따라 종속적이라면 A는 약한 엔터티, B는 강한 엔터티 (ex. 방과 건물) 릴레이션 : 데이터베이스에서 정보를 구분하여 저장하는 기본 단위 (관계형 데이터베이스에서는 "테이블" / NoSQL 데이터베이스에서는 "컬렉션" 이라..

[Unity] 병목 현상 해결하기

* 이 게시글은 아래 영상을 공부한 내용을 개인적으로 정리한 것입니다. [병목 현상이란?] 말 그대로 병의 목 부분, 물이 빨리 빠지지 않게 만드는 원인 구간 → 데이터의 흐름에서 문제가 되는 구간 병목이 CPU 바운드인지, GPU 바운드인지 먼저 찾는 것이 중요! (드로우콜 > 이전 작성 게시글 확인) 2023.09.11 - [공부 나눔 (Sharing Study)/Unity만] - [Unity] 드로우콜과 배칭 [Unity] 드로우콜과 배칭 * 이 게시글은 ⌜유니티 그래픽스 최적화 스타트업⌟ 서적으로 공부한 내용을 개인적으로 정리한 것입니다. [드로우콜] : CPU가 GPU에게 렌더링하라고 명령을 보내는 것 오브젝트를 렌더링하려면 yoonstone-games.tistory.com 아래 사진은 GPU는..

[Unity] 그래픽스

* 이 게시글은 아래 영상을 공부한 내용을 개인적으로 정리한 것입니다. [그래픽스 라이브러리(GL)] 플래폼마다 지원하는 그래픽스 라이브러리가 다름 (그래픽스 라이브러리 = 그래픽스 API) 유니티는 여러 플랫폼에서 사용/배포가 가능함 → 다양한 그래픽스 라이브러리를 지원함 유니티에서는 직접 사용고자하는 그래픽스 API를 고를 수도 있고, 자동으로 설정할 수도 있음 (최적화를 위해서는 필요한 것만 사용하는 것이 좋음) 씬 하나를 렌더링할 때는 한번에 뿅! 그려지는 게 아니라 하나하나 순차적으로 그려짐 [CPU와 GPU] CPU에서 사용하는 메모리, GPU에서 사용하는 메모리가 따로 있음 (모바일에서는 하드웨어 원칙으로 하나의 물리적인 영역을 사용하지만 논리적으로는 구별되어있음) CPU : 로직, 가비지컬..

[Unity] 드로우콜과 배칭

* 이 게시글은 ⌜유니티 그래픽스 최적화 스타트업⌟ 서적으로 공부한 내용을 개인적으로 정리한 것입니다. [드로우콜] : CPU가 GPU에게 렌더링하라고 명령을 보내는 것 오브젝트를 렌더링하려면 매번 렌더 상태 정보들을 변경해주어야 함 → 렌더 상태 변경 메시를 그리라는 명령 → DP Call 명령 왼쪽 사진처럼 명령을 바로 보내는 게 아니라 버퍼에 명령을 쌓아두고, GPU가 작업이 끝나면 다음 할 일을 가져가는 식으로 작업함 → 병령 작업 가능 커맨드 버퍼(Command Buffer)에 각종 상태 변경 명령들과 DP Call 명령을 쌓아두어 순차적으로 수행 [드로우콜 발생 조건] : 기본 적으로 오브젝트 하나에 메시 1개, 머티리얼 1개라면 드로우콜이 1번 발생 → 즉, Batch가 1 1. 메시가 여러..

[Unity/C#] 카메라가 벽을 통과하지 못하게 만들기

이번 시간에는 플레이어를 따라다니는 카메라가 벽을 통과하지 못 하도록 만드는 방법을 배워보도록 하겠습니다 :) 1. 캐릭터와 공간 준비 바닥(Plane)과 플레이어(Capsule), 벽(Cube)을 만들어 배치하고, 플레이어는 움직일 수 있게 스크립팅을 해둔 상태입니다. 2. 카메라 배치 메인 카메라를 캐릭터를 따라다니는 3인칭 카메라를 만들기 위해 메인 카메라의 위치와 각도를 수정합니다. 카메라가 플레이어가 이동함에 맞춰 따라다니는 기능이 필요합니다. 이 기능을 메인 카메라에 바로 적용하면 카메라가 플레이어를 기준으로 회전할 수 없으므로 부모 오브젝트를 만들어 기능을 분리하도록 하겠습니다. (카메라의 부모 : 플레이어 따라다니기 / 카메라 : 회전 및 벽 통과 불가) 3. 카메라의 부모는 플레이어 따라..

[Unity] 미니맵 원하는 모양으로 만들기 (+컬링마스크)

이번 시간에는 게임의 완성도를 높여주는 미니맵을 원하는 모양으로 만드는 방법을 배워보도록 하겠습니다 :) 1. 미니맵을 만들기 위한 준비 바닥(Plane)과 플레이어(Capsule)를 만들어 배치하고, 플레이어는 움직일 수 있게 스크립팅을 해둔 상태입니다. 2. 미니맵 UI 배치 미니맵을 배치하기 위한 UI를 생성합니다. 일반 이미지가 아닌 Raw Image로 생성해야 합니다. 미니맵 이미지는 원하는 위치/크기로 배치합니다. 저는 오른쪽 위에 300x300 사이즈로 제작했습니다. 3. 미니맵 전용 카메라 생성 미니맵에는 플레이어, 적, 상점 등의 위치뿐만 아니라 이동하는 것도 실시간으로 보여야 합니다. 때문에 실제 맵을 카메라를 통해 찍어서 띄워줘야 합니다. 미니맵에 사용될 카메라를 생성해서 각도/위치를..

[Unity/C#] 가장 쉽게 포물선 '위로' 그리는 방법 (+라인 렌더러)

포물선을 그리는 방법은 많지만 '위로' 포물선을 그리는 방법을 소개하는 내용이 없어서 이번에는 포물선을 위로 그리는 방법 중 가장 쉬운 방법을 배워보겠습니다. 포물선을 그릴 때는 라인 렌더러를 사용할 예정입니다 :) 1. 포물선을 그리기 위한 준비 포물선의 시작지점과 끝지점을 시각적으로 표현하기 위한 Sphere 2개와 테스트 용으로 사용될 Cube를 배치하고, 큐브에는 Parabola 라는 스크립트를 넣어두었습니다. 2. Slerp를 이용한 포물선 이해하기 포물선을 그리기 위해 Slerp() 함수를 사용할 예정입니다. Slerp() 함수는 구형보간을 하는 함수로, 두 점을 잇는 원을 그려 곡선상에서의 지점을 얻는 방식입니다. 더보기 [ 유니티 공식 문서 💬 ] https://docs.unity3d.co..

[Unity + Oculus] VR 개발하기 - 4 (잡기, 던지기, 밀리는 오류)

오큘러스와 유니티를 이용하여 콘텐츠를 개발하는 과정을 기록하는 게시글입니다. 사용한 오큘러스 기기는 '오큘러스 퀘스트2' 입니다 :) 1. 잡을 오브젝트 배치 플레이어의 시야에서 공을 잡을 수 있도록 받침대 위에 Sphere를 만들었다 잡으려고 하는 물체에는 2가지의 컴포넌트를 넣어야 한다 1. Rigidbody 2. OVRGrabbable (*콜라이더는 기본적으로 있어서) 2. 컨트롤러 설정 사실 1번 작업만해도 잡을 수는 있으나 컨트롤러의 콜라이더와 물체의 콜라이더가 부딪혀 밀려나는 현상이 발생한다 두 컨트롤러에 있는 OVRGrabber 컴포넌트에 ParentTransfrom과 Player에 알맞는 오브젝트 할당하면 해결된다 자동으로 그립버튼을 누르면 잡고, 그립버튼을 놓으면 물체를 놓는다 더보기 [..

[Unity + Oculus] VR 개발하기 - 3 (컨트롤러, 손 연동)

오큘러스와 유니티를 이용하여 콘텐츠를 개발하는 과정을 기록하는 게시글입니다. 사용한 오큘러스 기기는 '오큘러스 퀘스트2' 입니다 :) 1. 컨트롤러 프리팹 추가하기 지난 시간에 헤드셋 역할을 하기 위해 가져온 OVRPlayerController를 프리팹 해제한다 (자식으로 컨트롤러 게임 오브젝트를 넣기 위해) 프로젝트창 - Assets - Oculus - VR - Prefabs 폴더에서 OVRControllerPrefab을 OVRPlayerController의 왼쪽 손과 오른쪽 손의 자식으로 넣어준다 (왼쪽, 오른쪽에 같은 프리팹을 각각 넣으면 된다) 더보기 [ 💬 ] OVRCustomHandPrefab을 사용하면 손 모양이 나올 줄 알았다 이건 그냥 손 모델링을 커스텀할 수 있도록 제공해 주는 프리팹인..

[Unity + Oculus] VR 개발하기 - 2 (빌드하지 않고 바로 플레이)

오큘러스와 유니티를 이용하여 콘텐츠를 개발하는 과정을 기록하는 게시글입니다. 사용한 오큘러스 기기는 '오큘러스 퀘스트2' 입니다 :) 1. 데스크탑에서 오큘러스 사용을 허용하기 Project Settings - XR Plug-in Management - Oculus에서 데스트탑 아이콘 누르고, Oculus에 체크해야 한다 2. 링크 연결하기 Air Link 즉, 무선으로 연결할 수도 있지만, 무선으로 연결하니까 너무 버벅거려서 유선으로 직접 연결했다 (*유선으로 할 때는 꼭 오큘러스에서 Air Link 비활성화하기) 연결 후에 오큘러스를 쓰면 위와 같은 창이 뜬다 허용 선택 후 하단 가로메뉴에서 빠른 설정 - Oculus Link를 선택한다 그러면 새로운 공간으로 이동한다 3. 플레이하기 이 상태에서 오..

728x90
반응형