인프런에 DirectX Raytracing 강좌 올렸습니다.

인프런에 DirectX Raytracing 강좌 올렸습니다. D3D12프로그래밍 해봤는데 쓸모가 없다고 느끼시는 분들이 계실텐데 Raytracing까지 하면 쓸모가 있습니다. D3D12는 Raytracing때문에 존재한다고 봐도 무방합니다. 강좌를 구입하실 경우 인프런에서 검색해서 구입하지 마시고 아래 링크로 직접 찾아가시면 저한테 금전적으로 조금 더 도움이 됩니다. DirectX Raytracing 프로그래밍 – https://inf.run/ovHNq D3D12프로그래밍 기초편 – https://inf.run/WYdms D3D12프로그래밍 기초 플러스 – https://inf.run/dW4QZ Windows Debugging tip … More 인프런에 DirectX Raytracing 강좌 올렸습니다.

DirectX Raytracing – 복셀월드에 raytracing적용.

복셀월드 렌더링에 raytracing을 적용했다.복셀 데이터는 삼각형 데이터와 상당히 구조가 다른데다가 오브젝트 개수가 엄청나게 많아질수 있으므로 작업이 간단하지 않았다. 또한 복셀 오브젝트는 모양이 변형될 수 있으므로 일반적인 static mesh와는 완전히 다르다. 어쨌든 꽤 빡시게 작업해서 기존 기능들은 다 작동하게 만들었다. 그런데 복셀 오브젝트 하나당 BLAS한개씩을 생성했더니 문제가 있다. 마을맵의 경우 복셀 오브젝트가 5만개가 넘는데 그 수만큼 … More DirectX Raytracing – 복셀월드에 raytracing적용.

DirectX Raytracing – GBuffer로부터의 raytracing

i7 8700K , GTX1660TI , 1920×1200 해상도에서 두 가지 방식으로 테스트. [화면으로부터 raytracing]화면 픽셀로부터 카메라 방향으로 첫번째 TraceRay()호출.충돌하는 지오메트리가 있으면 GI, 반사, 그림자 등을 계산하기 위해 두번째 TraceRay()호출35fps , GPU점유율 89% [GBuffer로부터 raytracing]GBuffer(diffuse, normal, depth)로부터 픽셀을 읽어서 depth값 < 1 이면 ray가 hit한 것으로 간주. GI, 반사, 그림자등을 계산하기 위해 첫번째 TraceRay() 호출.56fps , GPU점유율 … More DirectX Raytracing – GBuffer로부터의 raytracing

DirectX Raytracing – Hit group, Shader Record Table Acceleration Structure 갱신 등

계속 내 엔진의 D3D12렌더러에 DirectX Raytracing 기능을 적용하고 있다. 그 동안 상당히 많은 깨달음이 있었고 코드도 거의 엄청나게 갈아엎었다. 어떻게 쓰는지 감을 잡아가고 있다. Local Root Parameter , Hit Group관련하나의 피봇을 공유하는 매시들의 집합을 오브젝트라 할때, 이 오브젝트 안에서는 여러개의 재질(텍스처등)을 사용할 수 있고 이 경우 각각은 다른 텍스처 좌표를 갖기 때문에 각각 다른 인덱스 … More DirectX Raytracing – Hit group, Shader Record Table Acceleration Structure 갱신 등