렌더링 파이프라인에 대해서..
프로그래밍 공부/C++ 프로그래밍2022. 6. 30. 04:48렌더링 파이프라인에 대해서..

다이렉트 X는 정말 어렵다. 배우고는 싶었는데 개인포폴이랑 자료구조 공부랑 병행 할 엄두가 안났다. 당장 필요한것도 아니고 나중에 공부하자 생각해서 카테고리도 숨겨놨었는데 수업을 듣다보니 좀 욕심이 생겨서 제대로 좀 해보려고 한다. 몇 개월 전부터 렌더링 파이프라인이라는 단어는 수도없이 듣고 시험도 봤지만 머리속에 잘 들어오지 않았다. 하지만 다이렉트X 수업을 들을때 렌더링 파이프라인에 대한 이해가 없으면 많이 힘들거같아서 혼자 유튜브로 공부를 좀 했다. 그 내용을 조금 정리하려고 한다. 렌더링 파이프라인 이란? 우리가 '파이프라인' 이라는 단어를 떠올린다면 이런 파이프라인이 떠오를것이다. 렌더링 파이프라인 이라는것은 우리가 렌더링 정보들을 GPU에 주입시켜서 우리가 보는 화면에 출력해주기 까지의 과정을..

Direct X 7일차💻 DirectX의 시작
프로그래밍 공부/C++ 프로그래밍2022. 6. 22. 19:17Direct X 7일차💻 DirectX의 시작

드디어 다이렉트X를 시작했다. 처음 세팅하는게 좀 복잡했는데 코드가 이해 안가는건 어쩔수 없는거지만 세팅이 안되면 코딩도 할 수 없으니 문제였다. 30명에 가까운 학생들을 한명한명 다 봐주다보니 진행속도가 너무 더뎠다. 그래도 내일부턴 괜찮아질거 같다. 다이렉트X 와 openGL openGL 3D 그래픽 카드가 출시 되고 이에 맞춰 하드웨어와 소프트웨어가 발전해왔다. 하지만 당시 하드웨어 규격이 제대로 잡혀있지 않았고, 이 하드웨어를 돌리려면 OS에서 지원을 해주어야 하는데 소프트웨어도 기준이 제대로 잡혀있지 않았다. 이 발전해가는 3D그래픽카드를 사용할 수 있는 api가 필요했는데, 그래픽카드회사에서 직접 제공하는 api는 수준이 낮았다. 그래서 openGL이 나왔다. 기반은 유닉스였으며 이름 그대로 ..

Direct X 6일차💻 <WINAPI> #마지막
프로그래밍 공부/C++ 프로그래밍2022. 6. 21. 14:48Direct X 6일차💻 <WINAPI> #마지막

WINAPI의 마지막이다. 다음 수업부터는 DirectX에 들어간다. 그림을 그리는 과정이 이해가 안돼서 개념정리를 살짝 하고 가려고 한다. 2.2 그리기 예 [Windows API] (ehclub.co.kr) 이 블로그의 자료들을 참고 했다. 이 블로그 주인분은 아래와 같은 글을 쓰셨다. 지금에 와서 Windows API를 학습하는 이유는 윈도우즈 프로그램이 어떠한 원리로 동작하는지 이해하기 위한 부분이 실제 프로그래밍에 사용하기 위한 것보다 많다고 볼 수 있습니다. 이미 MFC나 Windosw Form, WPF 등의 보다 강력하고 개발 비용이 적게 드는 기술들이 많기 때문에 실제 Windows API를 이용하여 윈도우즈 프로그래밍을 주로 할 일은 많지 않습니다. 나도 윈도우즈 프로그램을 만들어보고 싶..

Direct X 5일차💻 <WINAPI> #3
프로그래밍 공부/C++ 프로그래밍2022. 6. 19. 18:25Direct X 5일차💻 <WINAPI> #3

라디오버튼 만들기 #define ID_BUTTON1 100 #define ID_RADIO1 101 #define ID_RADIO2 102 #define ID_RADIO3 103 #define ID_RADIO4 104 #define ID_RADIO5 105 #define ID_RADIO6 106 HINSTANCE g_Inst; LRESULT CALLBACK MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { //윈도우 창이 생성될때 메세지 case WM_CREATE: //프로그램 이름, 버튼 이름, 스타일 (자식형태|or연산으로 합침) CreateWindow(L"button", L"Test", WS_CHIL..

Direct X 4일차💻 <WINAPI> #2
프로그래밍 공부/C++ 프로그래밍2022. 6. 19. 14:50Direct X 4일차💻 <WINAPI> #2

그림판 기능 구현 #include #include #include //포인트를 저장하는 리스트 변수 std::list Pointlist; //메세지 프로시저가 이 함수를 호춣함 LRESULT CALLBACK MessageHandler(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { //그림그리는 구조체 PAINTSTRUCT ps; //그림 그리는 핸들러 HDC hdc; switch (uMsg) { //마우스가 움직일때마다 발생하는 메세지 case WM_MOUSEMOVE: if (wParam == MK_LBUTTON) { Pointlist.push_back({ LOWORD(lParam), HIWORD(lParam) }); InvalidateRect(hWnd,..

WINAPI 추가정리
프로그래밍 공부/C++ 프로그래밍2022. 6. 19. 05:04WINAPI 추가정리

이해가 안가는 것들이 많아서 추가로 개념을 정리하고 가려고 한다. RegisterClass – 언제나 휴일 (ehpub.co.kr) 이곳에 정리가 잘 되어있어서 자료를 가져왔다. 윈도우즈 프로그램의 기본 흐름 1. 아까 입력했던것 처럼 WNDCLASS로 윈도우 프로그램을 다 설정해준다. 2. RegisterClass를 통해 윈도우 클래스를 등록한다. 3. CreateWindow를 통해 인스턴스를 생성한다. 4. ShowWindow를 통해 만든 인스턴스를 시각화하고 5. 메시지를 루프시킨다. RegisterClass ATOM WINAPI RegisterClass(WNDCLASS *lpWndClass); 이 함수의 원형을 찾아가보면 WNDCLASS형 포인터 변수를 매개변수로 입력해줘야 한다. Register..

image