갬장장이
'분류 전체보기' 카테고리의 글 목록 (4 Page)

분류 전체보기

computer graphics/DirectX

[D3D Engine] 4. Message loop, WinProc

앞서 2. WinMain에서 윈도우 OS는 윈도우(창)과 메세지 이렇게 두 가지가 핵심적인 역할을 한다고 언급한 바 있다. 그 중 이번에는 메세지를 자세히 살펴보자. 윈도우는 특정 사건이 발생했을 때(ex.클릭) 메세지를 보내 그에 맞는 행동을 실행하는 방식의 아키텍처이다. 이렇게 보면 message driven같기도 한데, 또 어떤 면에서는 (백그라운드에서 자원을 관리한다던지) event driven 같기도 하고, 사실 윈도우OS정도 되는 어마어마한 프로그램은 굳이 방식을 구분짓는 게 무의미하다고 생각이 들긴 한다. 아무튼 중요한 건 메세지를 보내 사건을 처리한다는 점이다. 윈도우에서 사건이 발생되면 다음과 같은 흐름으로 처리된다. 가로줄로 어플리케이션 단과 OS단을 구분지어놓은 것을 신경쓰며 살펴보자..

computer graphics/DirectX

[D3D Engine] 3. Window Creation

이번에는 실제로 눈에 보이는 윈도우 창을 띄워보자. 지난 시간에 우리의 Entry point인 WinMain 함수를 살펴보았는데, 그 세부적인 파라미터는 아래에서 확인할 수 있다. MSDN 링크: https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-winmain #include int CALLBACK WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // register window class /* 윈도우 함수에서 앞으로 자주 볼 방식으로, 함수에 파라미터 몇십개를 일일히 넘겨주는 것보다, 이 데이터들이 들어있는 구조체를 ..

computer graphics/DirectX

[D3D Engine] 2. WinMain

Direct3D를 사용해 무언가를 만들기 위해서 WinAPI를 익히는 건 사실상 필수적이다. 하지만 API 자체도 굉장히 낡고 복잡하고, 코드 자체도 읽기 쉽지 않기에 모든 것을 외우려고 하기 보다는 흐름과 사용법을 익힌다는 마인드로 접근하자. 빈 cpp 프로젝트를 만들고, Entry 지점이 될 cpp 파일 하나를 만들어 준다. Visual Studio를 사용한다면 필요에 따라 COnfiguration들을 바꿔주자. 또 본 학습 내용에서 C++ language standard는 가장 최신의 standard를 사용한다. 참고하자. Window 어플리케이션을 만들 때는 Entry point가 main()이 아니라 WinMain()으로 지정되어 있다. 함수 파라미터는 위와 같다. 함수에서 while(true)..

computer graphics/DirectX

[D3D Engine] 1. Introduction

3D Engine 시리즈의 포스트들은 아래 깃허브 레포지토리에서도 확인하실 수 있습니다. https://github.com/hagukin/DxEngine 본 레포지토리는 바닥부터 3D 엔진을 만들어나가는 과정을 따라가며 필요한 지식들을 익히는 것을 목표로 만들어졌다. 대략적인 학습 과정은 위와 같으며, 3D 그래픽스, 프로그래밍, 선형대수학에 대한 선수지식이 있음을 가정한다. 앞으로 학습해야 할 내용이 방대하고, 기록 목적이 정보를 공유하는 것보다는 스스로 복습하기 위한 용도인 만큼, 본 레포지토리의 학습 기록에서는 내용을 읽기 쉽게 완벽한 정리하는 것에 초점을 두기보다는 나중에 내 스스로가 다시 살펴봤을 때 이해할 수 있을 정도로만 핵심 내용들만 간추려서 정리할 내용이다. 윈도우 API 파트는 추후 다..

software engineering/algorithms

<안내글>

알고리즘과 관련된 정리 내용은 앞으로 특별한 경우가 아니면 아래 레포지토리 내 문서에 기록할 예정입니다. https://github.com/hagukin/PS/blob/main/algorithms.md

software engineering/PS

<안내글>

알고리즘 문제풀이는 특별한 경우가 아니면 앞으로는 블로그 대신 아래 레포지토리에 기록할 예정입니다. https://github.com/hagukin/PS

cs

쿠버네티스

https://www.samsungsds.com/kr/insights/220222_kubernetes1.html?moreCnt=0&backTypeId=&category= 쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념 요즘 IT 생태계에 관심이 많으신 분들이라면 쿠버네티스라는 단어를 들어 보셨을 텐데요. 쿠버네티스에 대해 개발자들의 관심이 높아지고 있고, 여러 대기업에서 새로운 시스템을 쿠버네티스를 www.samsungsds.com https://m.post.naver.com/viewer/postView.naver?volumeNo=31722475&memberNo=24985926 [NDC 2021] 데브시스터즈가 품은 '미지의 존재', 쿠버네티스에 대하여 [BY 디스이즈게임] 게이..

computer graphics/3D Graphics

[3DGraphics] 22. Camera view

이번 시간에는 카메라를 이동시킬 수 있는 기능을 구현해보자. 현재 우리의 프레임워크에서는 카메라의 좌표와 방향이 고정되어있는데, 이를 보다 유동적으로 동작할 수 있도록 수정해보자. (사실 이 내용은 예전에 내가 블로그에서 다룬 적이 있는 내용이기도 하다. 참조) 스크린에 나타나는 물체의 위치는 물체와 카메라의 상대적 위치관계에 의해 결정되는 것을 알 수 있다. (2D 카메라의 경우부터 생각해보면 쉽다. 카메라가 위로 움직이면 물체는 아래로 움직인다) 때문에 카메라의 실제 좌표를 파이프라인 상에서 자유롭게 움직이게 하는 대신, 카메라를 고정시켜 두고 물체들이 카메라의 움직임에 맞추어 상대적으로 이동하게 만드는 방법을 사용할 수 있다. (이렇게 하는 가장 큰 이유는 파이프라인에서 카메라의 좌표는 0,0,0이..