오늘부로 제대로 된 D3D12 엔진 제작을 시작하려고 한다. 지금까지 D3D12를 공부한 것을 토대로 제대로 된 게임 엔진을 제작하고자 한다. 게임 엔진의 구조는 유영천님의 나만의 게임엔진 개발하기 영상과 ppt를 참고하였다. 엔진은 다음과 같이 정적/동적 라이브러
GraphicsCommon.cpp에 RootSignature, PipeLineState을 생성하여 렌더링 할 때 넘겨주었다. FillMode: \[Solid, Wired]MeshType: \[Default, Skinned, Skybox] 파라미터가 이렇게만 있어도 2\
FBX SDK를 활용하여 상용 모델을 엔진에서 띄워 보았다.기존 Assimp ModelLoader에서 하지 못한 멀티 메터리얼을 지원할 수 있다는 점에서 만족스러웠으나 이 모델을 띄우는데 7~8초가 걸린다는 치명적인 문제가 있었다. 최대한 최적화를 해보고 그래도 이렇게
Raytracing레이트레이싱을 나의 엔진에 적용하고 있다.캐릭터 애니메이션을 적용한 동적 객체들의 BottomLevelAS도 빌드하는데 성공하였다. 기존에는 캐릭터 애니메이션(vertex 변환)을 vertex shader에서 처리하였다.그러나 레이트레이싱은 Verte
Raytracing메시의 VertexBuffer, IndexBuffer, Texture같은 셰이더 리소스들을 바인딩하는데 성공하였다.생각보다 엄청 까다로운 작업이었다. 셰이더 안의 TraceRay함수 파라미터를 잘 맞춰주고, LocalRootArgument와 Globa
raytracing_shadowRayRaytracing을 활용하여 간단한 Shading을 구현해보았다. Raytracing에서는 물체에서 빛 방향으로 ray를 쏴 중간에 물체가 있으면 Shading한다. 이번에는 그림자가 지면 밝기를 0.3배 낮추는 방식의 간단한 셰이
ViewFrustumCulling 뷰 프러스텀 컬링을 구현해보았다. 뷰 프러스텀 컬링이란 시야각 내에 존재하지 않는 오브젝트들을 렌더링시 제외하는 기술이다. 테스트 해본 결과 405개의 메시 중 40~60개의 오브젝트들을 컬링하였다. view frustum c
ShadowMappingShadow Mapping 기능을 구현하였다.중간에 Lighting이 반대로 되는 문제를 발견해서 해결하느라 늦어졌다. 찾아보니 모델 Exporter에서 모델의 노말이 반대로 매핑된 것이 문제였다.카메라와 좌표계 문제로 착각하고 카메라 구현내용을