태그 보관물: directx

directx

화면의 일부만 상세하게 렌더링 대해 그래픽을 렌더링하는 경우 뷰어는 실제로 전체

큰 시야각 (예 : 매우 큰 TV 또는 VR 헤드셋)에 대해 그래픽을 렌더링하는 경우 뷰어는 실제로 전체 이미지에 집중할 수 없으며 그 일부만 할 수 있습니다. (실제로 일반 화면의 경우도 마찬가지입니다.)

시청자의 눈을 추적하는 방법과 결합하면 (주로 VR에서 가장 가능성이있는 것으로 생각됨) 이론적으로이를 활용하여 세부적인 정보와 해상도를 점차적으로 낮춰 시청자의 초점에서 멀어지게 할 수 있습니다.

현재 사용 가능하거나 개발중인 기술이 있습니까?



답변

많은 게임에서 이러한 효과에 대해 이야기하고 있습니다. 먼저, Depth of field 가 있는데,이 예제 에서처럼 카메라가 근접한 물체에만 초점을 맞추는 것처럼 먼 거리의 물체가 흐릿하게 보입니다. DirectX SDK 패키지에서 이와 관련된 더 많은 샘플을 탐색 할 수 있습니다. 샘플 코드도 있습니다. OpenGL의 경우 검색하면 인터넷에서 얻을 수 있습니다.

두 번째로보고 싶은 것은 이름에서 알 수 있듯이 텍스처 밉 매핑과 비슷하지만 지오메트리에 대한 Geometry MipMaping 또는 Progressive Mesh 로 알려져 있습니다. 객체가 카메라에서 멀어 질수록 메시의 다각형 수가 줄어 듭니다. 이것은 성능 향상에 도움이됩니다. D3D에는 프로그레시브 메시를 자동으로 생성하는 데 도움이되는 기능이 있습니다. 여기있어:

HRESULT WINAPI D3DXGeneratePMesh(
                                  LPD3DXMESH pMesh,
                                  const DWORD *pAdjacency,
                                 const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
                                  const FLOAT *pVertexWeights,
                                  DWORD MinValue,
                                  DWORD Options,
                                  LPD3DXPMESH *ppPMesh
                                 );

이에 대한 예는 다음과 같습니다.

편집 :
다음 이미지를 고려하십시오

이것은 카메라의 컬링 절두체입니다. 가운데를 통과하는 선은 LookAt 벡터입니다. 이제 플레이어가 항상 화면 중앙에 초점을 맞추기를 원한다고 가정하면 각도 x를 정의합니다. 결정된 x보다 많은 각도에 배치되는 모든 객체는 저해상도 렌더링을 가지며 각도 내에있는 객체는 상세하게 렌더링됩니다. 이와 같이 화면 중앙에있는 객체는 측면에있는 객체보다 더 자세합니다. 플레이어가 중앙을보고 있지 않으면 중앙 라인을 플레이어가보고있는 방향으로 조정하십시오. (또는 전체 카메라를 해당 방향으로 회전)


답변

예. Foveated Rendering 은 눈 추적 기능을 사용하여 사용자 가보고 있는 것을 매우 상세하게 렌더링합니다. 다른 모든 것은 더 자세하게 렌더링 될 수 있습니다.

이와 같은 스크린 샷을 볼 때 상당히 분명하지만 VR에서는 사용자에게 보이지 않습니다.

기존 주류 헤드셋에는 시선 추적 기능이 포함되어 있지 않지만 시선 추적 기능을 추가 할 수있는 몇 가지 애프터 마켓 솔루션이 있습니다. 또한 렌더링 프로세스에는 소량의 추가 처리가 필요합니다. 그러나 이점은 상당합니다. Foveated 렌더링을 구현하면 적은 비율의 FOV 만 매우 자세하게 렌더링하면 프레임 속도가 크게 높아질 수 있습니다. 정확한 숫자는 구현에 따라 다릅니다.

또한 이것은 VR 헤드셋에만 국한되지 않습니다. 데스크탑 모니터에서도 사용할 수 있습니다 (시선 추적 기능이 추가되고 효과가 제한됨).


답변

Byte56의 답변을 확장하면 예, 이런 종류의 일이 업계에서 개발되고 있습니다. Fixed Foveated Rendering은 Valve의 로봇 수리 데모 ( https://youtu.be/DdL3WC_oBO4?t=769 )와 몇 가지 상용 게임 (PSVR의 Resident Evil VII 가 떠오름)에서 채택 된 기술 입니다. 고정 Foveated 렌더링은 시선 추적을 사용하지 않지만 현재 시선 추적 기능이없는 현재 버전의 VR 헤드셋과 잘 작동합니다. 현재 Vive는 시선 추적 업그레이드 키트를 구입해야하기 때문에 일부 AAA VR 타이틀이이를 활용할 수 있습니다.

이런 종류의 것과 관련하여 사용 가능한 많은 코드 샘플을 찾을 수는 없지만 Nvidia에는 ​​문서화 된 하드웨어 확장이 있습니다. 다중 해상도는 상당히 잘 설명되어 있지만 하드웨어와 관련된 기능입니다.


답변