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 갱신 등

DXR – Update Acceleration Structure

건물 오브젝트에 이어 스키닝된 동적 매쉬들을 실시간으로 Acceleration Structure에 반영시켰다.Acceleration Structure 업데이트에 많은 비용이 들어갈걸로 추측하고 있기 때문에 일단 60FPS제한을 걸었다. 캐릭터 오브젝트의 변환(애니메이션, 위치, 스케일, 회전)을 Compute Shader에서 처리. 변환된 버텍스 데이터는 UAV로 전달된 ID3D12Resource에 저장. ID3D12Resource와 연관된 Bottom Level Acceleration Structure를 갱신. Top Level Acceleration Structure를 갱신. DXR의 가장 중요한 포인트는 ‘렌더링할 장면을 … More DXR – Update Acceleration Structure

3D 길찾기 구현중 #4 – voxel지형으로부터의 네비게이션 매시 생성

3D길찾기를 시도하면서 큰 목표중 하나가 복셀맵에서 길찾기를 하는것이었다. marching cube알고리즘으로 일단 voxel지형에서 삼각형을 생성할 수 있다. 이걸 네비게이션 매시로 사용해서 길찾기를 하면 되기는 하는데…..문제가 있다. 복셀 매시로부터 삼각형 매시를 생성. 삼각형이 미친듯이 많이 나온다. 복셀 매시로부터 생성한 삼각형을 최적화. 인접한 삼각형간에 엣지를 공유할 수 없게 된다. 엣지를 공유하지 않으므로 네비게이션 매시로 사용할 수 없게 된다. … More 3D 길찾기 구현중 #4 – voxel지형으로부터의 네비게이션 매시 생성