> Study

왼손 좌표계 / 오른손 좌표계 왼손 좌표계 - 시계방향으로 그려야 그려진다 오른손 좌표계 - 반시계방향으로 그려야 그려진다 Triangle VertexBuffer vertices[0].Position = Vector3(-0.5f, +0.0f, 0.0f); vertices[1].Position = Vector3(+0.0f, +0.5f, 0.0f); vertices[2].Position = Vector3(+0.5f, +0.0f, 0.0f); vertices[0].Position = Vector3(-0.5f, +0.0f, 0.0f); vertices[1].Position = Vector3(+0.5f, +0.0f, 0.0f); vertices[2].Position = Vector3(+0.0f, +0.5f, 0...
Vertex = 정점 무언가를 그리기 위한 정점 NDC 좌표계 (정규 좌표계) 정규화된 좌표계로 -1 ~ +1으로 나타낸다 2D 공간 렌더링 파이프라인 IA -> VS -> RS -> PS IA (Input Assembly) VertexBuffer, Primitive Topology CPU의 정보를 GPU로 받아온다 정점 정보, 정점을 어떻게 그릴건지 (정점의 Position) VS (Vertex Shader) 정점을 셰이더에서 어떻게 변화시킬건지 WVP가 NDC좌표계로 변경된다 RS (Rasterization) 정점을 3D공간에서 2D공간으로 바꿔준다 정점을 픽셀로 Viewport를 설정한다 (정점에서 정점까지 선을 긋는다고 생각하면 그 선을 이루는 픽셀들을 만드는 작업) PS (Pixel Shader..
DirectX 란? SDK (Software Develop Kit) => API(Application Programming Interface) 프로그래밍을 하기 위한 도구의 집합 게임 개발을 위한 함수나 클래스들을 모아둔 라이브러리 Version 8 CPU렌더링 중점 9 CPU + GPU 렌더링, 셰이더 본격적 지원 복잡한 렌더링 파이프라인 10, 11 GPU 렌더링, 셰이더가 없으면 렌더링 불가 10 -> GS 추가 (Geometry Shader) 11 -> TS 추가 (Tessellation) 12 Window 10에서 지원 Low Level API , 하드웨어에 가깝게 설계됨
Normal Impuse block 되었을 때의 입사각 어디에서 쐈는지 알아낼 때 사용한다 Collision Preset Query Only 겹침 연산 Physics Only 물리 연산 Collision Enabled 겹침 연산 + 물리 연산 Simulation Generate Overlap은 충돌되는 것 모두(양쪽 다) 켜져있어야한다 Delegate dynamic delegate는 파라미터 개수, 자료형, 변수명 까지 일치시켜줘야한다 언리얼 내부적으로 쓰는 델리게이트는 거의 다 SPARSE - dynamic만 쓸 수 있 dynamic일땐 직렬화 꼭 해줘야한다 SingleCast 가장 기본적인 Delegate로 함수 1개를 바인드하여 사용, 함수 포인터 MultiCast 싱글 캐스트와 동일, 여러 함수를..
UPROPERTY(VisibleAnywhere) 이 나오면 컴포넌트구나 ~ 생각하면 된다 roll : x축 회전 pitch : y축 회전 yaw : z축 회전 FRotator (pitch, yaw, roll); 순서 주의하기 ! FRotator, FQuat(쿼터니언), RotationMatrix(3x3) 는 1:1:1 매칭된다 FRotator : 360분법으로 사용하기 편하다 GetSafeNormal : 크기가 0인거 막아준다 ( 나누기 0 하면 안될 때 사용한다) GetUnSafeNormal CGameMode : 기본 캐릭터를 CPlayer 클래스로 지정한다 (GameModeBase) DefaultPawnClass ConstructorHelpers::FClassFinder pawn(L"Blueprint..
UObject 는 최상위 자료형 UClass 클래스 타입을 다루겠다 UStruct UProperty 멤버 변수 UClass는 클래스의 제한 없이 모든 클래스가 나오기 때문에 TSubClassOf ( 템플릿이다 )로 제한시켜줘야 한다 TSubClassOf랑 UClass랑 1:1 매핑된다 TSubClassOf 이름 ; SpawnActor같은건 다 GetWorld()에 있다 GetWorld()는 현재 월드를 가져온다 C++클래스 추가 할 때 직렬화 안할 땐 부모클래스 없음 선택 ! VA_ARGS : 가변 파라미터 easing.net
컴포넌트를 C에서 만들 때 컴포넌트도 결국 변수기 때문에 직렬화 시켜줘야하고, VisibleAnywhere로 만든다 (4.26부터 defaultsOnly, instanceOnly와의 차이가 없어졌다) UObject로부터 직접 상속받을 경우 클래스명 앞에 U를 붙여준다 (Actor에서 상속받을 경우 A를 붙인다) 에디터에서 동적할당 하는 법 CreateDefaultSubObject("할당된 이름") RootComponent에 할당 (블루프린트에서는 가상 루트에 자동으로 할당되지만 C++에서는 꼭 할당 해줘야한다) CHelpers - 템플릿화 해서 사용할 클래스 템플릿은 헤더파일에 정의 CoreMinimal.h - 진짜 꼭 필요한 거만 모여있는 헤더파일 문자열(FString)을 text로 바꿀때 *(포인터)..
비주얼 스튜디오에서 #include 하는 기준은 소스폴더가 기준 ! Module : 하나하나의 라이브러리를 의미한다 게임 프로젝트도 라이브러리로 친다 모듈 세팅 + 빌드 세팅 _API 앞부분이 하나의 모듈로 묶여있는 것 직렬화 Serialization 언리얼 엔진은 멀티플랫폼으로 여러가지 운영체제가 있다 ( 플스용, 스위치용, 안드로이드용 ,, ) 공통 포맷으로 잡아주기 위한 개념 구조체나 클래스를 공통 byte stream 에 보내지도록 변환시켜주는것 byte형의 배열로 순차적으로 보낸다 C++에서 언리얼 에디터로 내보내지는 것도 직렬화 되어있는 애들만 보여진다 역직렬화 ( Deserialization) : 직렬화 후에 byte 배열로 바뀐것을 다시 복원하는 과정 int32 : 32bit형 int를 사..
연Gennie
'> Study' 카테고리의 글 목록 (2 Page)