Chỉ hiển thị một phần của màn hình với độ chi tiết cao


11

Nếu đồ họa được hiển thị cho góc nhìn lớn (ví dụ: TV rất lớn hoặc tai nghe VR), người xem thực sự không thể tập trung vào toàn bộ hình ảnh, chỉ là một phần của nó. (Trên thực tế, đây là trường hợp cho màn hình có kích thước thông thường.)

Kết hợp với cách theo dõi mắt người xem (phần lớn khả thi trong VR tôi đoán), về mặt lý thuyết bạn có thể khai thác điều này và khiến đồ họa rời khỏi tiêu điểm của người xem với độ phân giải và chi tiết ngày càng ít hơn, đạt hiệu suất, mà không làm giảm chất lượng cảm nhận.

Có bất kỳ kỹ thuật cho điều này có sẵn hoặc đang được phát triển ngày hôm nay?


Đó là một ý tưởng thú vị, nhưng tôi đoán nó không khả thi vì hầu hết các màn hình không đi kèm với máy theo dõi mắt. Tôi cũng nghĩ rằng việc chuyển đổi hình học ở tốc độ chuyển động của mắt có thể có tác động tiêu cực đến hiệu suất. Tất nhiên, bạn có thể thiết kế cấp độ / cảnh của mình theo cách khuyến khích người chơi xem xét các điểm ưa thích nhất định và cung cấp các lưới chi tiết cao ở đó trong khi bạn sử dụng các tài sản chất lượng thấp hơn cho môi trường xung quanh ...
bummzack

1
Kiểm tra giấy Siggraph 2014 này: Graphics.cs.cmu.edu/projects/multirate . Tôi đã không có thời gian để đọc nó, nhưng nó mô tả một cách để làm mờ hình ảnh ở mức thực thi ít hơn "1x shader mảnh trên mỗi pixel" và vẫn có được hình ảnh hợp lý. Có lẽ bất kỳ thuật toán hoặc ý tưởng nào họ phác thảo đều có thể được sử dụng để giảm tốc độ lấy mẫu trên các cạnh của màn hình và cải thiện hiệu suất.
TravisG

Một bài báo khác có thể thú vị: software.intel.com/en-us/articles/coude-pixel-shading
TravisG

Đây là một điều bây giờ, được gọi là Foveat Rendering. roadtovr.com/ Quảng cáo
Bart van Heukelom

Câu trả lời:


7

Có những ví dụ về những hiệu ứng như vậy mà bạn đang nói đến trong nhiều trò chơi. Đầu tiên, có Độ sâu trường ảnh , làm cho vật thể ở khoảng cách trông mờ đi, giống như máy ảnh đang tập trung vào những thứ chỉ gần nó, như trong ví dụ này. Bạn có thể khám phá thêm các mẫu liên quan đến điều này trong gói DirectX SDK - họ cũng có mã mẫu ở đó. Đối với OpenGL, bạn sẽ có được chúng trên mạng nếu bạn tìm kiếm.

nhập mô tả hình ảnh ở đây

Điều thứ hai bạn có thể muốn thấy là cái có thể được gọi là Geometry MipMaping hoặc Progressive Meshes , giống như tên cho thấy, tương tự như ánh xạ mip kết cấu, nhưng đối với hình học. Số lượng đa giác trong một lưới bị giảm khi đối tượng càng rời xa máy ảnh. Điều này giúp tăng hiệu suất. Trong D3D, tồn tại một chức năng sẽ giúp tạo các lưới lũy tiến tự động. Đây là:

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

Đây là một ví dụ về điều này:

nhập mô tả hình ảnh ở đây

EDIT: Hãy xem xét hình ảnh sau đây- nhập mô tả hình ảnh ở đây

Đây là sự thất vọng của máy ảnh. Đường thẳng đi qua giữa là vectơ LookAt. Bây giờ, giả sử người chơi sẽ luôn muốn lấy nét ở giữa màn hình, bạn xác định góc x. Bất kỳ đối tượng nào sẽ được định vị ở một góc nhiều hơn x quyết định sẽ có kết xuất độ phân giải thấp và các đối tượng nằm trong góc sẽ được hiển thị chi tiết. Giống như thế này, các đối tượng ở giữa màn hình sẽ chi tiết hơn các đối tượng ở hai bên. Vì nếu người chơi không nhìn vào trung tâm, thì chỉ cần điều chỉnh đường trung tâm đó theo hướng mà người chơi đang nhìn. (hoặc có thể xoay toàn bộ camera theo hướng đó).


Mặc dù tôi nghi ngờ bạn có thể đạt được hiệu suất bằng cách thực hiện dof.
badweasel

@badweasel Vâng, đó là sự thật. DOF không cung cấp các cải tiến về hiệu suất, nhưng đó là một hiệu ứng đáng được đề cập. Nó cho phép bạn ẩn hình học chi tiết thấp, chunky đôi khi có thể bật ra từ xa.
Tia sáng

Tôi đã bình chọn câu trả lời của bạn. Đó là một câu trả lời tốt. Tôi chỉ muốn chỉ ra vì đó là một phần câu hỏi của anh ấy.
badweasel

Những kỹ thuật này sử dụng khoảng cách z từ máy ảnh, nhưng ý tôi là khoảng cách x / y so với điểm trên màn hình mà người dùng đang nhìn. Tôi cho rằng họ có thể thích nghi như vậy mặc dù.
Bart van Heukelom

1
@BartvanHeukelom Tại sao, nếu người chơi không tập trung vào trung tâm, bạn hãy quay camera để thực hiện những gì anh ta đang tập trung tại trung tâm. Nghe có vẻ vui.
Tia sáng

2

Có, Foveat Rendering sử dụng tính năng theo dõi bằng mắt để chỉ hiển thị những gì người dùng đang xem chi tiết. Mọi thứ khác, có thể được hiển thị chi tiết thấp hơn.

nhập mô tả hình ảnh ở đây

Mặc dù khá rõ ràng khi nhìn vào ảnh chụp màn hình như thế này, nhưng nó lại vô hình với người dùng trong VR.

Các tai nghe chính hiện tại không bao gồm theo dõi mắt (chưa), nhưng có một vài giải pháp sau thị trường để thêm theo dõi mắt. Hơn nữa một lượng nhỏ xử lý bổ sung là cần thiết cho quá trình kết xuất. Tuy nhiên, lợi ích rất đáng kể. Với kết xuất hoàn chỉnh được triển khai, chỉ một tỷ lệ nhỏ FOV cần được hiển thị chi tiết cao, điều này có thể dẫn đến tốc độ khung hình cao hơn đáng kể. Con số chính xác phụ thuộc vào việc thực hiện.

Hơn nữa, điều này thậm chí không giới hạn đối với tai nghe VR. Nó cũng có thể được sử dụng trên màn hình máy tính để bàn (với việc bổ sung tính năng theo dõi bằng mắt và cho hiệu ứng hạn chế hơn).


1

Mở rộng dựa trên câu trả lời của Byte56, vâng, loại điều này đang được phát triển trong ngành. Fixed Foveat Rendering là một kỹ thuật được Valve sử dụng trong bản demo sửa chữa robot của họ ( https://youtu.be/DdL3WC_oBO4?t=769 ) và trong một vài trò chơi thương mại (Resident Evil VII cho PSVR xuất hiện trong tâm trí). Đã sửa lỗi kết xuất không được sử dụng theo dõi bằng mắt nhưng điều này có nghĩa là nó hoạt động tốt với các phiên bản tai nghe VR hiện tại không có bất kỳ loại khả năng theo dõi mắt nào. Mặc dù hiện tại, Vive được cho là có một bộ nâng cấp theo dõi bằng mắt để bạn có thể thấy một số tựa game AAA VR sử dụng điều đó.

Bạn sẽ không tìm thấy nhiều mẫu mã có sẵn liên quan đến loại điều này nhưng Nvidia có một số phần mở rộng phần cứng được ghi lại rõ ràng. Đa độ phân giải được giải thích khá tốt nhưng là một tính năng gắn liền với phần cứng của họ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.