분류 전체보기 91

윈도우 프로그램 분석

1. WinMain 함수 윈도우 응용 프로그램의 시작 진입점을 나타내는 함수 윈도우 응용 프로그램이 실행되면 윈도우 운영체제는 이 함수를 실행하여 응용 프로그램을 시작 이 함수가 종료(반환)되면 응용 프로그램이 종료됨 일반적인 윈도우 응용 프로그램이 되려면 이 함수는 다음과 같은 기본적인 일을 처리해야 함 윈도우 클래스를 시스템에 등록 (Register Window Class) 응용 프로그램 초기화 및 주 윈도우 생성 메시지 루프 2. 윈도우 프로시져 윈도우 클래스를 등록할 때 설정한 윈도우 프로시져 함수 주 윈도우가 처리해야 하는 윈도우 메시지가 주 윈도우에게 전달될 때 호출되는 메시지 처리 함수 메시지 루프에서 DispatchMessage() 윈도우 API 함수를 호출하면 WindProc()함수가 실..

Metaverse/DirectX 2023.08.03

DirectX12 - Project Setting

응용 프로그램 마법사가 자동으로 생성한 소스 파일 project명.h project명.cpp framework.h: 표준 시스템 포함 파일 또는 프로젝트를 위한 특정 포함 파일들을 포함하는 파일 Resource.h: 윈도우의 리소스(메뉴, 대화상자 등)의 ID를 정의하는 헤더 파일 targetver.h: 응용프로그램의 플랫폼을 정의하는 헤더 파일 1) framework.h의 파일명을 "stdafx.h"로 변경 : 프로그램에서 사용하는 주요 헤더 파일들을 포함, 나중에 이 파일에 Direct3D 12의 헤더 파일을 추가할 것 2) stdafx.cpp 파일 추가 후 헤더 include 3) 4) 프로젝트명.cpp 파일에 선언된 헤더 이름을 바꿔주고 빌드하면 설정 끝!

Metaverse/DirectX 2023.08.03

게임 서버 - 데이터베이스 기초

각 플레이어의 로컬 컴퓨터에 플레이어 정보를 저장하면? 플레이어가 자리를 옮겼을 때 자기가 플레이하던 정보를 이어서 할 수 없음 플레이어가 해킹을 할 줄 안다면, 자기가 컴퓨터에 저장된 플레이 정보를 조작할 수 있음 플레이어 정보를 서버에 저장하는 방법: 파일과 데이터 베이스 상용으로 서비스되는 게임들은 대부분 플레이어 정보를 데이터베이스에 저장함 파일 vs 데이터베이스 데이터베이스는 구체적인 상황에서도 빠르고 다각적으로 데이터 검색할 수 있음 데이터베이스 구성 데이터베이스에서 다루는 데이터는 표 형태의 집합 데이터베이스 인스턴스: 테이블의 집합으로 데이터베이스가 다루는 가장 큰 단위의 데이터 집합 데이터베이스에서는 행 단위로 데이터를 넣거나 뺄 수 있으며 이 행을 레코드라 함 레코드 안에는 표의 열이 ..

Metaverse/복습 2023.08.01

게임 네트워크 엔진

프라우드넷의 네트워크 모듈 1. NetServer 클래스: 게임 서버의 메인 모듈 클라이언트의 연결을 받으며, 클라이언트와 메시지를 주고받는 역할을 함 각 클라이언트의 네트워크 상황 등을 열람할 수 있음 2. NetClient 클래스: 게임 클라이언트에서 네트워크 모듈 서버로 연결을 맺은 후 메시지 주고받기를 수행할 수 있음 다른 클라이언트와 P2P 통신도 가능 NetServer 인스턴스를 생성하고 NetServer가 클라이언트 접속을 받으려면 다음 작업이 필요 CNetServer.Create()로 CNetServer 인스턴스를 생성 CNetServer.Start()로 서버가 클라이언트 접속을 받을 수 있게 함 Start()에 들어가는 필수 매개변수는 프로토콜 버전과 리스닝 포트 번호로, 프로토콜 버전은..

Metaverse/Network 2023.07.31

두렵지만 매력적인

2021년 7월에 읽었던 책인데, 내 대학생활에 꽤나 큰 영향을 준 책이라 꼭 남겨 놓고 싶다. 2021년이면 내가 1학년이었다. 원하지 않은 전공을 선택하게 되어 진로 고민을 크게 하고 있었다. 자퇴하고 부모님과 오빠 따라 경제학과를 갈까 아니면 예전 꿈 찾아 화학공학과를 갈까 하고 있었을 때다. 이 책은 VR의 활용 사례에 관한 책이다. 책을 읽고 마인드 맵으로 정리해놨던 걸 지금 다시 찾아봤다. 다양한 분야에 활용할 수 있고, 이미 구현이 된 것들도 정말 많다. 책을 읽자마자 VR이라는 키워드로 논문을 뒤져봤었다. 교육, 시뮬레이터, 엔터테인먼트 등등 다양한 분야에서의 연구가 진행됐다. 이렇게 융합적으로 다양하게 활용될 수 있다니, 갑자기 흥미가 생겼다. 창의적인 아이디어로 새로운 걸 만들어내고 싶..

마음이 움직이는 순간들

행동경제학 두번째 책이다. (첫번째는 코끼리 움직이기) 한창 프로젝트를 열심히 진행 중이었을 때, 몸은 힘들어도 정말 즐거웠다. 조금씩 구현 되어가는 걸 보면서 뿌듯했고, 앞으로 내가 얼마나 더 발전할 수 있을지 기대됐다. 사실 결과물은 엉망진창이었지만, 괜히 잘 한 것 같고 애정이 가득 했다. 이 책의 그림 중에 자기가 만든 엉망진창인 작품 보고 하트 뿅뿅하는 그림이 있었다. 찍어둘걸..! 그 그림을 보고 뜨끔했다ㅋㅋㅋㅋ 난 줄.. 항상 내가 찾던 유의미함은 오로지 '결과'였는데, 이젠 노력이 담긴 과정이라는 걸 알았다.

도서관에 다니게 된 이유..

어렸을 때부터 독서는 정말 좋아했다. 쉬는 날마다 거실에서 부모님이 책을 읽고 계셨고, 나도 따라 잘 읽었다. 7살 땐가 유치원 졸업을 앞두고 그만 두고 피아노 학원을 다니면서 아침에는 도서관에서 자원봉사를 하시던 엄마를 따라 가서 책을 읽었다. 지금 생각해보면, 엄마가 진짜 우리 교육에 힘을 많이 쓰셨고 공부도 열심히 하셨다. 감사하다.. 덕분에 책을 찾아 읽게 되었다. 읽고 싶은 책이 생겼다 하면 부모님 데리고 서점에 갔고, 가끔 카톡으로 링크를 보내면서 이거 사줘... 했었다ㅋㅋㅋ 그러다가 도서관에 다니게 된 계기는 고3 때 다니던 수학학원 원장님이 일주일에 하루는 꼭 쉬어라, 쉬면서 혼자만의 시간도 가져보고 혼자 이곳저곳 돌아다녀 봐라 라는 말씀을 해주셔서이다. (성인이 되고도 '쉬고 싶다, 오늘..

게임 네트워킹

모든 역할을 서버에서 하기 클라이언트가 하는 역할 사용자 입력(키 입력, 마우스 좌표) 화면 출력 서버에서 하는 역할 게임 로직 연산 화면 렌더링 (그래픽 데이터 보유) 화면 송출(비디오 스트리밍) 온라인 게임을 방해하는 레이턴시가 길어지는 요인 서버가 멀리 있으면 네트워킹 중에 레이턴시가 추가됨 클라우드 서버 안에서 가상머신은 다른 가상머신이 CPU 사용량을 잠식하면서 조금씩 지연 시간이 있을 수 있음 패킷 드롭으로 인한 재송신은 간헐적인 큰 지연 시간을 일으킴 인구가 낮은 국가에서는 인터넷이 느림 무선 네트워크에서는 레이턴시와 패킷 드롭률이 크게 증가함 서버 운영의 경제성 문제 고퀄리티 그래픽을 60프레임으로 렌더링하려면 그래픽카드 하나가 모든 능력을 동원해야 함 (서버에서 이것을 하려고 하면 서버에..

Metaverse/Network 2023.07.27

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..

기본 용어 정리

모델 좌표계: 모델(메쉬)를 표현하기 위한 좌표계 모델마다 자체적인 별도의 좌표계를 갖고 있다고 가정 객체 로컬 공간 일반적으로 객체(매쉬)의 중심을 원점으로 하는 좌표계 (좌표계의 원점과 중심이 반드시 일치해야 하는 것은 아님) 월드 좌표계 게임 세계를 하나의 통일된 좌표계로 표현 모든 객체(메쉬)들이 동일한 하나의 좌표계로 표현(배치) 게임 월드 단위 개발자는 게임 월드의 크기와 단위를 결정하기 위해 아티스트와 협력해야 함 실수 표현으로 인한 문제 -> 범위로 표현하기 메쉬의 크기와 이동 속력을 고려해야 함 텍스쳐 매핑을 어떻게 할 것인가도 고려 사항임 모든 객체가 서로 상대적이면서 일관된 크기로 만들어진다면 문제 없음 은면 제거(Back Face Culling) 은면 제거는 관찰자(카메라)가 볼 수..

Metaverse/DirectX 2023.07.24