목록공부 (292)
응애맘마조
IA의 마지막 3일차입니다. 오늘은 Shader(셰이더)에 대해서 했었습니다. 어제에 이어서 hlsl에 대해서 좀 더 배웠습니다. 이 hlsl에서는 중단점을 찍으면 중단점 자체에 오류가 생깁니다. 하지만 컴파일 대상이 되지 않아서 할 수가 없는데 렌더링 파이프라인을 거쳐 모니터에 출력이 되려면 반드시 컴파일을 해야 됩니다. 컴파일 대상이 아니지만 바인딩을 하는 방법이 있습니다. 셰이더 클래스가 있는데 그 안에 있는 자원들이 하게 됩니다. cpp파일을 보면 char, wchar_t, string, wstring이 있습니다. char은 아스키코드에 있는 문자 하나를 출력합니다. (그 이외의 문자는 출력할 수 없습니다.) wchar_t는 2바이트로 된 문자도 출력이 가능합니다. string은 아스키코드에 있는..
오늘은 프레임워크 안에 있는 게임 오브젝트에 대해서 배웠습니다. 이걸 가지고 도형을 그리게 되기 때문에 이 부분을 이해하지 못한다면 앞으로의 강의 이해에 많은 어려움이 생깁니다. 클래스 헤더 파일 안에 desc로 시작하는 변수들이 있습니다. desc는 description으로 서술형 구조체를 의미합니다. (모든 자원들마다 다 있습니다.) Usage는 사용하겠다는 의미를 가지고 있습니다. 안을 보면 enum값으로 정의가 되어있는데 D3D11_USAGE로 해서 GPU와 CPU의 읽기/쓰기를 제어합니다. 읽기/쓰기는 GPU가 하고 있으 CPU를 사용하지 않습니다. 그래서 D3D11_USAGE_DEFAULT를 사용합니다. (D3D11_USAGE_DEFAULT말고도 D3D11_USAGE_IMMUTABLE과 D3D..
드디어 DirectX에 들어갔습니다. 시작부터 꽤나 어렵습니다. 기본적으로 렌더링 파이프라인부터 시작합니다. 렌더링 파이프라인은 출력을 위한 구조입니다. 화면으로 표현하기까지의 모든 과정을 나타내고 있습니다.여기서 파이프라인은 한 단계의 출력이 다음 단계의 입력으로 이어지는 구조가 됩니다. 순서는 DrawCall → IA → VS → RS → PS → OM입니다.(HS, TS, DS, GS 단계 과정은 부수적인 것이라서 없어도 상관은 없습니다. 하지만 위에 적은 5가지 단계는 반드시 있어야 됩니다. 하나라도 없으면 출력 자체가 불가능합니다.) IA : Input Assembler (입력 조립기) 정점 정보를 긁어모으는 역할을 합니다.정점을 어떻게 그릴지 모양을 정하는 역할을 합니다. 여기에서 자원이 필요..
저번 반사하는 미사일에 추가로 중력을 더한 미사일을 만드는게 과제였습니다. //bullet.cpp #include "stdafx.h" Bullet::Bullet() { missile.SetLocalPos(Vector2(2000.0f, 2000.0f)); missile.scale.x = 30.0f; missile.rotation = 0.0f; missile.isVisible = false; missilePet.SetParentRT(missile); missilePet.SetLocalPos(Vector2(50.0f, 50.0f)); missilePet.scale = Vector2(10.0f, 10.0f); missilePet.rotation = 0.0f; missilePet.isAxis = true; mis..
과제에 대한 풀이가 오늘의 강의가 되었습니다. 이미지를 사용하려면 프로젝트 폴더 내에 이미지를 추가하고 솔루션 파일 안에 있는 솔루션 탐색기에도 추가를 해야 정상적으로 사용할 수 있습니다. 전에도 말했듯이 LateUpdate() 함수는 모든 오브젝트가 이동한 뒤에 사용하는 함수입니다. 만약 조건문이 잘 되는지 바로 확인하는게 어렵다면 콘솔 창을 사용하는 것이 좋습니다. 특히 이번 과제에서는 반사각으로 튕겨 나가는 것이 예외처리가 조금 어려울 수도 있습니다. 왜냐하면 창의 크기가 바뀌거나 카메라 위치가 이동하거나 아니면 창 밖에 나가버려서 계속 껴있거나 할 수도 있습니다. 그래서 충돌처리 시 영역 처리가 굉장히 중요합니다. 따라서 충돌은 한 번만 날 수 있도록 밖으로 나간 영역에서 빼줘야 됩니다. 방법은 ..