목록공부/3D강의 (101)
응애맘마조
인스턴싱에 대해서 강의했습니다. 많은 오브젝트가 화면에 표시되면 FPS가 많이 떨어지게 되는데 같은 메쉬파일을 하나로 묶음으로써 드로우콜을 한 번만 하여 FPS를 많이 떨어뜨리지 않는 것입니다. enum class VertexType { P, PC, PCN, PTN, MODEL, TERRAIN, PT, PS, PSV, PSP, PCNI, }; 먼저 enum class로 마지막에 PCNI를 추가했습니다. PCN에 Instance를 추가했다는 의미입니다. struct VertexPCNI { static D3D11_INPUT_ELEMENT_DESC LayoutDesc[]; }; 그리고 레이아웃만 추가됩니다. D3D11_INPUT_ELEMENT_DESC VertexPCNI::LayoutDesc[] = { { "..
강의라고 해도 현재 작업중인 포폴 작업을 이어서 하고 상담이 진행되어서 따로 수업 내용은 없습니다. 18일은 학원 휴무였습니다. 내일은 인스턴싱에 대해서 배우게 됩니다.
개인적인 일정 때문에 하루 늦었습니다. 시험만 치뤘기 때문에 따로 강의는 없었습니다.
그림자를 마무리 지었으며 LookAt함수를 이전에 사용한 YawPitchRoll을 사용해 바라보는 방향을 고정시킬 수 있도록 했습니다. Matrix R = Matrix::CreateLookAt(player->GetWorldPos(), sphere->GetWorldPos(), Vector3(0, 1, 0)); R = R.Transpose(); Quaternion q = Quaternion::CreateFromRotationMatrix(R); player->rotation = Util::QuaternionToYawPtichRoll(q); Matrix R은 전치행렬로 만들어진 뷰행렬이고 그 Matrix를 Quaternion으로 변환하고 YawPitchRoll로 변환했습니다. #include "Common.hl..
팀 포폴을 만들면서 필요한 기능들이 보여 복사 생성과 카메라의 주시에 대해 강의했습니다. 먼저 복사 생성입니다. 캐릭터나 오브젝트를 많이 넣게 되면 FPS가 당연히 많이 떨어지게 됩니다. 그래서 복사해서 생성하는 방법으로 조금이나마 FPS가 줄어드는 것을 줄이고자 이미 생성된 캐릭터를 복사하는 식으로 만들었습니다. playerClone = Actor::Create(player); 변수 이름을 PlayerClone으로 해서 만들었습니다. 여태 Create함수 안에는 매개변수가 들어가지 않았는데 이번에 새로 함수를 하나 만들었습니다. Actor* Actor::Create(Actor* src) { Actor* temp = new Actor(*src); temp->CopyChild(src); return tem..