Bagaimana mengubah grafik 3D menjadi sesuatu yang dapat ditonton di televisi 3D?

9

Katakanlah saya memiliki plot sebar 3D di R atau bingkai data dengan 3 bidang diisi dengan data numerik.

Bagaimana bisa "diubah" menjadi "sesuatu" ditonton di televisi 3D (seperti TV layar lebar acak dari Samsung menggunakan kacamata rana)? Entah klip statis plot pencar itu memutar sumbu atau bahkan lebih baik untuk berinteraksi dengan plot (pindahkan, putar, ...). Program apa, perpustakaan yang Anda perlukan untuk menyelesaikan ini?

(Saya baru saja mengangkat R karena di situlah pekerjaan dilakukan. Tetapi solusi tidak perlu harus menyertakan R)

Raffael
sumber
1
Jika Anda sudah memiliki representasi 3D plot, maka yang Anda butuhkan hanyalah membuat setidaknya dua tampilan darinya. Pandangan ini harus berbeda dalam apa yang ditampilkan dengan jumlah minimal. Jadi, jika "kamera" Anda akan melihat plot dari satu sudut, Anda akan sedikit menggeser kamera ke kiri atau kanan untuk mendapatkan tampilan kedua.
slhck
1
Dan kemudian Anda perlu meng-encode gambar ke beberapa video multi-view yang bisa ditangani TV, misalnya H.264 MVC atau stereo split - apakah Anda memiliki spesifik tentang itu?
slhck
@ Slhck: Saya tidak benar-benar memiliki representasi 3D itu. Saya hanya bisa menampilkannya dengan R dalam 3D. Juga menggunakan dua perspektif kamera pada representasi VRML mungkin akan menghalangi interaksi dengan plot. Seperti menyesuaikan skala atau menggunakan data yang berbeda. : /
Raffael
1
Oh begitu. Ya, itu akan rumit. Anda memerlukan grafik yang diberikan yang dapat menampilkan 3D aktual dari kartu grafis komputer Anda (mis. NVIDIA dengan kit visi 3D), tetapi saya tidak mengetahui hal itu.
slhck
1
Anda memerlukan kartu grafis yang dapat menampilkan 3D (seperti NVIDIA dan visi 3D yang telah disebutkan) dan kemudian program yang menampilkan data Anda dalam viewport 3D yang dipercepat perangkat keras (mirip dengan video game). Memproses (processing.org) dapat membantu Anda dalam hal ini.
evilspoon

Jawaban:

1

Anda dapat menghasilkan dua gambar (untuk mata kiri dan kanan) untuk setiap bingkai animasi Anda, mengaturnya berdampingan (untuk membuat gambar yang sangat lebar, atau yang tergencet secara horizontal), dan menghasilkan file video seperti itu . Kemudian masukkan file itu ke drive USB dan tancapkan ke TV 3D modern, dan lihat di menu 3D-nya, Anda harus menemukan opsi "berdampingan" atau "SBS" yang akan mengerti cara menampilkan gambar. (Cari YouTube untuk "GoPro 3D" untuk banyak contoh.)

Anda mungkin dapat melakukan hal yang sama dengan komputer yang terhubung ke TV sebagai monitor, tetapi bagian non-3D dari desktop harus disembunyikan karena mereka tidak akan diduplikasi untuk setiap mata (dan akan terlihat aneh).

Catatan: Jika Anda menghubungkan komputer ke layar 3D dalam mode SBS, Anda akan merasa berguna untuk menutup mata satu per satu saat menavigasi untuk memulai presentasi Anda.

sburlappp
sumber
0

Benar-benar Anda hanya perlu plot3d spinnable (), dari paket rgl .

  1. Mulai orientasi plot Anda di lokasi tertentu dan normal.
  2. Buat dua contoh plot dasar Anda, diputar sedikit ke arah yang berlawanan (untuk tampilan seperti lensa sepenuhnya tengah) atau diperbesar masuk dan keluar sedikit masing-masing (untuk tampilan 3D lebih standar)

    x. Poles plot lebih jauh lebih biru, sama-sama tint plot lebih dekat lebih merah.

  3. Jangan benar-benar menampilkan plot dasar. Lebih disukai menggunakan basis untuk menghitung buffer quad (atau buffer ganda) bergantian mana dari dua plot offset ditampilkan di setiap frame. Perbarui setiap loop gambar. Secara bersamaan menampilkan setiap plot contoh setelah pembaruan.
  4. Dengan menggunakan pengatur waktu resolusi tinggi atau VSync, mainkan tumpukan buffer tepat pada kecepatan refresh perangkat kacamata rana yang Anda berikan.
  5. Mudah-mudahan kecepatan refresh dapat dikonfigurasi di aplikasi Anda, ditambah opsi untuk 'melewatkan frame berikutnya' untuk disinkronkan dengan kacamata rana. (untuk membalikkan sinkronisasi kiri / kanan)
  6. Sebelum memperbarui plot dasar, pindai input untuk umpan balik pengguna, berpotensi dari buffer input yang diisi secara tidak sinkron.
  7. Hubungkan laptop atau perangkat linux kecil ke tv dengan HDMI lol.
  8. Bonus: Jika Anda benar-benar ingin melakukannya, Anda bisa menggunakan Rcpp dan GLFW bersama-sama untuk menangani kegilaan joystick / mouse / gamepad.

Ada deskripsi singkat tentang rgl dan paket serupa untuk plot pemintalan 3D, yang dapat dilihat di akhir posting ini .

Jika Anda bisa, Anda akan ingin menempatkan semacam efek blur berbasis perspektif hanya terlihat pada setiap plot menggunakan OpenGL. Tentu saja, Anda mungkin harus melakukan sedikit penyesuaian dengan sudut untuk mendapatkan yang tepat. Jika saya ingat itu seharusnya sudut <20 derajat, ... tapi siapa tahu, bukan saya!

Garet Claborn
sumber
tidak maaf. Saya tahu rgl dan rgl mendukung anaglyph 3D dari kotak. Saya menyebutkan kacamata rana karena suatu alasan. tapi terima kasih;)
Raffael
@ Яaffael whoops! tidak benar-benar melihat bahwa tentang kacamata rana karena membaca terlalu cepat. Maaf untuk itu, menambahkan beberapa koreksi.
Garet Claborn
Anda mungkin juga dapat menggunakan R dengan OpenCL / GL interop untuk mencapai buffering dan memiliki layanan tulis-saja yang terpisah untuk buffer input, memberikan akses read-only aplikasi kepada Anda. (Maka Anda juga perlu membalikkan untuk mengirim pesan kembali ke layanan dengan sangat cepat setelah input telah dibaca) Atau sangat mirip, hanya memiliki aplikasi Anda membuat buffer dan memposting simpul ke OpenCL dan C ++ / OpenGL / OpenCL renderer berjalan bersama sisi.
Garet Claborn
Saya menghapus pertanyaan saya karena saya mendapatkan terlalu banyak jawaban yang tidak relevan (seperti milik Anda sejauh ini :) tetapi Anda dapat memperbaruinya.
Raffael