728x90 반응형 전체 글165 VR)1.VR_Pawn BluePrint 먼저 블루프린트 Pawn을 생성해주고 생성된 Pawn에 카메라와 모션컨트롤러를 추가해준다. 컨트롤러를 추가해주었으면 컨트롤러에 맞는 모션소스를 적용시켜준다.(L->L R->R) SetTracking Origin 설정 방금 생성한 Pawn에 SetTracking Origin이란것을 설정해주어야한다. 여기서 주의해야될점은 Vr기기를 착용하면 기기의 높낮이의 값을 보정하여 카메라의 높이가 정해지게 된다. 만약 이런식으로 높이에 따라 카메라의 위치가 바뀌게 된다면 게임이 제작자의 의도와 다르게 플레이 될 가능성이 생길수도 있기에 높이를 고정해줄 필요가 있다. 카메라 고정 먼저 새로운 SceneComponent를 하나 생성해준다.그리고 카메라와 모션컨트롤러를 새로운 컴포넌트에 넣는다. 이렇게 계.. UE5/UE5 VR 2023. 4. 6. VR)0.환경설정 오큘러스 세팅 1.Oculus app 다운로드 🔎 oculus app download: Google 검색 www.google.com 2.기기선택 3.Oculus 활성화 UNREAL VR세팅 1.빌드파일 수정 빌드파일에서 HeadMountedDisplay와 UMG를 추가해준다. UE5/UE5 VR 2023. 4. 6. DFS)합이 같은 부분집합 문제 N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하라. 예를 들어 {1, 3, 5, 6, 7, 10}이 입력되면 {1, 3, 5, 7} = {6, 10} 으로 두 부분집합의 합이 16으로 같은 경우가 존재하는 것을 알 수 있다. ▣ 입력설명 첫 번째 줄에 자연수 N(1 level; for (int i = 0; i > a; total += a; arr1.push_back(a); } DFS(0); if (ch == true)cout 알고리즘 문제 2023. 4. 5. DFS)부분집합 문제 자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램을 작성하시오. ▣ 입력설명 첫 번째 줄에 자연수 N(1 알고리즘 문제 2023. 4. 5. DX) 4. IA(InputAssembler) InputAssembler IA단계는 랜더링 파이프 라인에서 가장 먼저 시행되는 단계이다. 이 단계에서 Device에서 생성한 VertexBuffer나 IndexBuffer의 데이터를 읽어들여 Primitive를 조합하여 파이프라인의 다음단계인 VS에 데이터를 전달하는 역할을 한다. 그 밖에도 쉐이더에게 넘겨줄 데이터를 분석한 정보를 넘겨주는 InputLayOut을 추가할수있다. 위와 같은 방식으로 생성된 VertexBuffer와 IndexBuffer, 그리고 InputLayOut을 DeviceContext에서 조립하는것이 IA단계라고 할수 있다. 그러기 위해서는 두 Buffer와 LayOut을 만들어주어야한다. VertexBuffer생성 VertexBuffer는 GPU가 접근가능한 버퍼에 Vertex정.. 게임엔진/DirectX 2023. 3. 3. DX)3.Device 각 기능의 분리 지난 포스팅까지 렌더링에서 필요한 구성이 무엇이 있는가와 어떤 역할을 수행하는지에 대해 알아보았다. 하지만 한 클래스안에 랜더링 과정을 몰아서 랜더링을 하게 될 경우 다음과 같은 것을 고려해보아야한다. 클래스에 종속되어야 되는 것은 무엇인가? 객체에 종속되어야 되는 것은 무엇인가? 리소스에 속해야 되는 것은 무엇인가? 즉, 각 기능에 따라 서로 종속되어야 될것들이 다르기 때문에 한 클래스에 모두 구현 하는 것은 메모리 낭비로 이어질 수 있기에 각 기능을 분리하여야 하며, 이번 포스팅에서는 Device 생성 이 클래스에서는 장치 초기화 관련된 Device장치가 수행하는 것들과 Render Begin/End에 관한 것들을 넣고자한다. //Graphics.h class Graphics { pu.. 게임엔진/DirectX 2023. 3. 3. DX)2.렌더링파이프라인 가이드 DirectXAPI 렌더링을 하기위해서는 먼저 DirectX의 API중에서 Device와 DeviceContext 그리고 SwapChin을 생성해주어야한다. Device는 그래픽 카드를 추상화한 객체이다. 이는 오브젝트의 할당 및 해제, 렌더링, 그래픽 드라이버 및 하드웨어와의 통신을 담당한다. Direct3D 11은 디바이스라는 개념이 2가지로 분리하는데, 하나는 생성을 담당하는 Device Object이고, 다른 하나는 Device Object에서 생성한것들을 설정하거나 제어하는 Device Context Object이다. 이 두 오브젝트를 이용하여 렌더링을 하게 되는데, 만약 후면버퍼를 설정하지 않는다면 WindowAPI때 처럼 렌더링 잔상이 남게 될 것이다. Swapchain은 후면 버퍼를 관리하.. 게임엔진/DirectX 2023. 3. 3. DX)1.렌더링 파이프라인 DirectX DirectX는 Window환경에서 GPU와 같은 H/W를 제어할수 있도록 제공하는 API이다. 이러한 GPU를 사용하려는 목적은 렌더링과 같이 연산량이 많으나 단순한 연산일 경우 CPU는 연산뿐만 아니라 다양한 것을 처리해야 되는데 이런 것을 CPU 혼자 처리하게 될 경우 속도의 저하로 이어질수 있다. 따라서 고급인력인 CPU를 대신하여 CPU보다 싸면서 연산장치가 많은 GPU에게 연산을 시키는 것이 DirectX의 주목적이라고 할 수 있다. 렌더링 파이프라인 렌더링 파이프라인 또는 그래픽스 렌더링 파이프라인이라 부르는 과정은 3차원으로 만들어진 모델을 2차원에 투영하는 렌더링 과정의 프로세스를 표현한 것이다. 아래에서 주황색으로 칠해져 있는 부분은 프로그래머가 코딩으로 제어할수 있는 부.. 게임엔진/DirectX 2023. 2. 11. 윈도우API)18.충돌-1 충돌 충돌은 게임에서 많은 역할을 수행한다. 예를 들자면 물리적인 충돌을 막을 수도 있고 충돌을 판단하여 이벤트를 수행할수도 있다. 이러한 충돌은 상속구조보다는 컴포넌트를 이용하는것이 게임제작에 편리하다. 본 포스팅에서는 이러한 충돌을 컴포넌트를 이용하여 구현해보고자 한다. 콜리전 생성 먼저 생성할 콜리전의 타입을 정의해준다. 일반적으로 2D게임에서는 박스와 스피어 두종류의 콜리전을 사용한다. enum class CollisionType { Box, Sphere, }; 타입을 정의하였으면 콜리전의 베이스들이 될 콜리전 클래스를 정의해준다. class Collision: public Component { public: Collision(CollisionType CType); virtual ~Collisio.. 게임엔진/윈도우API 2023. 1. 25. 윈도우API)17.타일맵 타일맵 2D맵에는 하나의 커다란 이미지를 사용하는 속칭 "통맵"과 작은 단위의 이미지를 이어붙여 만드는 "타일맵"이 존재한다. 여기서 타일맵은 다양한 형태로 활용이된다. 이미지를 불러들여 맵으로써 활용하기도 하지만 특정 범위를 지정하여 콜리전 범위를 지정할수도 있다. 이번포스팅에서는 이러한 콜리전 범위를 표시하는것을 다루고자 한다. 타일맵 계층구조 ResourceBase(Load/Save) Tilemap(vector _tiles) Actor TilemapActor(Tilemap* _tile/bool _showDebug) 타일맵 생성 타일맵은 리소스로써 활용될 예정이다. 그렇기에 ResourceBase를 상속받고 ResourceManager에서 관리되어야 한다. //tilemap.h class tilema.. 게임엔진/윈도우API 2023. 1. 24. 게임서버) 11. IOCP Core IOCP Core 이제 IOCP모델을 서버코어에 넘겨주어야 하기 떄문에 세분화 하여 정리할 필요가 있다. IOCP의 핵심 요약 CreateIocompletionport를 사용하여 (초기화된)CP큐를 생성한다. CP에 연결할 객체(Object)를 생성한다. CreateIocompletionport를 이용하여 생성한 객체를 CP에 등록한다(관찰대상 등록) WSARecv를 사용하여 WorkerThread에게 전송을 맡긴다(이때 WorkerThread에서 마지막에 WSARecv를 호출해야된다) IOCP Core IOCP모델의 CP큐를 담당하는 클래스이다. //IOCPCore.h class IocpObject : public enable_shared_from_this { public: virtual HANDLE .. 게임서버 2023. 1. 17. 게임서버) 8. Select모델 select 모델 select모델은 소켓함수 호출을 미리 알 수 있다면 블로킹/논블로킹에서 했던 불필요한 것을 하지 않아도 된다는 것이다. select모델 순서 0.소켓 셋 초기화 1.ListenSocket(관찰 대상) 등록(읽기,쓰기,예외 설정) 2.세션 소켓 등록 3.Select 옵션 설정(관찰 시작 하나 이상의 소켓이 준비되면 리턴->나머지는 알아서 제거됨(readSet,writeSet,exceptSet)) 4.남은 소켓 체크해서 진행 Select모델 생성 0.소켓 셋 초기화 및 세션생성 먼저 세션과 fd_set을 생성해준다. struct Session //클라이언트의 정보를 서버로 가져오는 역할 { SOCKET socket=INVALID_SOCKET; char recvBuffer[1000]={};.. 게임서버 2023. 1. 13. 이전 1 ··· 3 4 5 6 7 8 9 ··· 14 다음 728x90 반응형