2011-08-11 21 views
8

Tôi có một ứng dụng OpenGL rằng kết quả đầu ra stereo video 3D với TV off-the-shelf qua cổng HDMI, nhưng nó hiện đòi hỏi màn hình để hỗ trợ các phương pháp trước 1.4a của tay lựa chọn định dạng phù hợp (side-by-side, top -bottom vv). Tuy nhiên, bây giờ tôi có một thiết bị mà tôi cần hỗ trợ CHỈ chỉ hỗ trợ tín hiệu HDMI 1.4a 3D, vì tôi hiểu đó là một loại gói được gửi tới màn hình cho biết định dạng của video 3D. Tôi đang sử dụng NVIDIA Quadro 4000 và tôi muốn biết nếu có thể xuất video của mình (hoặc cho card màn hình biết cách) theo cách mà một 3DTV chuẩn sẽ thấy định dạng chính xác, tương tự như Blu-ray 3D hoặc 1.4a khác thiết bị tương thích, không cần phải chọn thủ công chế độ 3D nhất định. Điều này có thể không?Làm cách nào để xuất tín hiệu lập thể tương thích HDMI 1.4a từ ứng dụng OpenGL sang 3DTV?

+0

tôi đã trả lời nó ở đây: http://stackoverflow.com/questions/6827737/how-do-i-output-3d-images-to-my-3d-tv/6828590#6828590 – datenwolf

+0

đó câu hỏi không liên quan đến HDMI 1.4a, nó chỉ nói về việc sử dụng bộ đệm quad mà tôi không sử dụng. Tôi đang gửi tín hiệu trái/phải hoặc trên/dưới cho TV, nhưng TV cần biết định dạng nào tôi đang gửi bằng cách nào đó, KHÔNG can thiệp thủ công (như được mô tả trong tiêu chuẩn 1.4a) Thẻ video phải hiển thị thông tin đó bằng cách nào đó, tôi chỉ không biết làm thế nào để làm điều đó hoặc nếu nó có thể. – bparker

+0

Bạn không phải làm khung xếp chồng mình. Đó là nhiệm vụ của card đồ họa để tạo ra một khung hình HDMI-1.4 xếp chồng từ hình ảnh được hiển thị cho bộ đệm quad. Toàn bộ điều HDMI-1.4 hoàn toàn không liên quan đến các lập trình viên ứng dụng. Đó là một điều mà các nhà phát triển trình điều khiển và các kỹ sư điện phải quan tâm. Không phải bạn. – datenwolf

Trả lời

2

Tôi không thấy một câu trả lời trực tiếp cho câu hỏi này.

HDMI 1.4a định nghĩa dữ liệu meta để mô tả định dạng 3D. video_format 010 có nghĩa là 3D 3d_structure 0000 khung đóng gói, 0110 trên cùng dưới cùng, 1000 cạnh nhau

Nhưng nếu trình điều khiển không có api cho điều đó, bạn cần phải thay đổi mã của nó (giả sử nó đang mở hoặc bạn có quyền truy cập)

1

Nếu trình điều khiển của bạn cho phép nó, bạn có thể tạo một quad-đệm bối cảnh stereo rendering. Ngữ cảnh này có hai bộ đệm và hai bộ đệm trước, một cặp cho mắt trái và một cặp cho bên phải. Bạn trả về một bộ đệm sau (GL_BACK_LEFT), sau đó là bộ đệm kia (GL_BACK_RIGHT), rồi hoán đổi chúng với hàm hoán đổi chuẩn.

Tạo một bối cảnh QBS đòi hỏi mã hóa nền tảng cụ thể. Nếu bạn đang sử dụng Windows, bạn cần phải chọn định dạng pixel với quad-buffer.

Điều này chỉ có thể xảy ra nếu trình điều khiển của bạn cho phép. Họ có thể không. Và nếu họ không có thì bạn không thể làm được gì.

+0

Tất cả các trình điều khiển Quadro đều cho phép âm thanh nổi bốn bộ đệm. – eile

+1

Tôi không thấy làm thế nào quad-buffer có liên quan ở tất cả. HDMI 1.4a nói rằng bạn phải chỉ định bố cục chính xác của các khung hình của bạn (cạnh nhau, trên cùng, khung tuần tự, v.v.) bên trong các gói được gửi đến màn hình, mà tôi cho rằng chỉ trình điều khiển video card mới được thực hiện. – bparker

+1

@bparker: Tất cả công cụ HDMI 1.4a không liên quan nếu bạn không thể thực sự hiển thị nhiều bộ đệm để trình điều khiển có thể gộp chúng theo cách mà HDMI cần chúng. Hoặc để đặt nó theo một cách khác, nếu bạn có thể tạo ra một bối cảnh QBS, thì trình điều khiển sẽ tìm ra cách để đưa nó lên màn hình. Nếu bạn không thể tạo ra một ngữ cảnh QBS, thì bạn sẽ không thể nhận được bộ đệm bốn chiều. Không phải thông qua OpenGL. –

0

Nếu ứng dụng OpenGL của bạn xảy ra để sử dụng một tập hợp con đủ đơn giản của OpenGL, sau đây có thể làm việc:

  1. Sử dụng GLDirect để tự động chuyển đổi OpenGL của bạn gọi đến DirectX.
  2. Sử dụng Nvidia 3DTV Play để tự động làm rõ và đóng gói tín hiệu qua HDMI 1.4.
+0

Được rồi, vì vậy trước tiên, bạn đang cố gắng để mất tính đa nền tảng, và thứ hai thậm chí mất đi sự can thiệp của GPU. Câu trả lời chính xác. –