2010-07-17 60 views
5

Tôi đang tìm ma trận chiếu mà tôi có thể sử dụng trong 3D sẽ cho tôi hiệu ứng của mắt cá. Tôi không tìm kiếm một pixelshader hoặc bất cứ thứ gì như thế, điều đó sẽ thao tác các pixel - nhưng ma trận chiếu thực tế được sử dụng trong chiếu từ không gian 3D lên 2D.Ma trận chiếu ma trận trong Xna/OpenGL - 3D

Cảm ơn.

+0

điều này có thể hữu ích: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/domefisheye/fisheye/ –

+0

Cảm ơn. Điều đó sẽ có ích trong các tình huống khác mà tôi đang xem xét. –

Trả lời

2

Carlos không sai nhưng bạn có thể muốn thử chơi với thông số "trường xem (FOV)" trong trình tạo ma trận chiếu của bạn.

+0

Cảm ơn cả hai. Tôi đoán tôi sẽ cần phải xem xét tính toán ma trận của tôi - phỏng đoán đầu tiên của tôi cũng là để thử nghiệm với FOV, nhưng không nhận được hiệu quả mong muốn. Tôi đang xem xét mức độ gần đúng hơn là pixelperfect. –

+0

@Einar, Như Goz cho biết Carlos là trên tiền - FOV hoạt động cho các thiết bị đầu cuối, biến đổi chúng, nơi họ có nghĩa vụ phải, nhưng nó vẫn vẽ đường thẳng giữa chúng. Cố gắng tạo một vài mắt lưới đại diện cho một hình tam giác - sử dụng một đa giác đơn hoặc sử dụng 10 đa giác và sử dụng 1000 đa giác. Sau đó thử chơi với FOV, có thể mọi thứ sẽ rõ ràng hơn. – Unreason

11

Điều đó không thực sự khả thi. Trong các tọa độ đồng nhất, ma trận biến đổi các dòng thành các dòng. Vì vậy, bất kỳ giải pháp nào chỉ dựa trên các ma trận sẽ nhất thiết phải không uốn cong các đường như bạn muốn.

0

Carlos đúng. Có một cách bạn có thể giả mạo nó, nhưng bạn sẽ phải tái render cảnh của bạn nhiều lần.

Về cơ bản, bạn bắt đầu bằng cách tìm hiểu cách thực hiện phối cảnh hai điểm. Mà tôi sẽ làm bằng cách render cảnh hai lần với một ma trận chiếu có một điểm biến mất trên các mặt xen kẽ. Sau đó, bạn kết hợp hai phần, tôi đoán sử dụng một bản đồ stencil.

Bạn có thể làm điều gì đó như phối cảnh bốn điểm kết hợp hình ảnh với bốn điểm biến mất. Bạn lặp lại quá trình đó nhiều lần.

Điều bạn làm sau đó chiếu lên đa giác xấp xỉ một hình cầu.

Tôi có thể giải thích thêm, nhưng phỏng đoán của tôi có vẻ quá phức tạp.

Cách đơn giản nhất để giả mạo nó là hiển thị kết cấu và làm biến dạng hình ảnh và hiển thị nó dưới dạng quad toàn màn hình.

+0

Cảm ơn bạn đã nhập - ý tưởng tuyệt vời. Vấn đề của tôi liên quan đến một thứ khiến tôi đỏ mặt khi nhìn thấy nó. Tôi đã có một lỗi khi chiếu lên màn hình, gây ra tất cả những nỗ lực của tôi trong việc thay đổi FOV để có được hiệu ứng tôi muốn vô dụng. –