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.
Đ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:
EDIT:
Hãy xem xét hình ảnh sau đâ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 đó).