Як перетворити 3D-діаграму на щось, що можна спостерігати на 3D-телебаченні?


9

Скажімо, у мене є графік 3D розсіювання в R або кадр даних з 3 полями, заповненими числовими даними.

Як це можна "перетворити" на "щось", яке можна спостерігати на 3D-телевізорі (як-от випадковий телевізор з великим екраном від Samsung за допомогою захисних окулярів)? Або статичний кліп розсіяного сюжету, який обертається навколо осі, або ще краще, щоб мати можливість взаємодіяти з сюжетом (переміщуйте його, повертайте його, ...). Які програми, бібліотеки вам потрібні для цього?

(Я щойно виховував R, тому що там робиться робота. Але рішення не потрібно було б включати R)


1
Якщо у вас вже є 3D-зображення представлення сюжету, тоді все, що вам потрібно, - це створити з нього принаймні два погляди. Ці погляди мають відрізнятися тим, що вони показують мінімальною кількістю. Отже, якщо ваша "камера" дивиться на сюжет з одного кута, ви злегка змістіть камеру вліво або вправо, щоб отримати другий вигляд.
slhck

1
І тоді вам потрібно кодувати зображення до якогось багатопрофільного відео, яким може працювати телевізор, наприклад, H.264 MVC або розділеної стереосистеми - чи є у вас якісь конкретні дані?
slhck

@slhck: У мене насправді немає 3D-зображення. Я просто можу відобразити його з R в 3D. Також використання двох персективів камери для представлення VRML, можливо, призведе до погіршення взаємодії з сюжетом. Як налагодження масштабів або використання різних даних. : /
Raffael

1
О Я бачу. Ну, це буде складно. Вам потрібна візуалізована графіка, яка може виводити фактичну 3D з відеокарти вашого комп’ютера (наприклад, NVIDIA та 3D-набір для зору), але я не знаю про таке.
slhck

1
Вам потрібна відеокарта, яка може виводити 3D (на зразок уже згаданої NVIDIA та 3D бачення), а потім програма, яка відображає ваші дані у 3D-огляді, прискореному апаратним забезпеченням (подібний до відеоігри). Обробка (Process.org) може допомогти вам у цьому плані.
лихи

Відповіді:


1

Ви можете створити два зображення (для лівого та правого очей) для кожного кадру анімації, встановити їх поруч (щоб зробити дуже широке зображення або горизонтально розрізати) та створити відеофайл таким чином . Потім покладіть цей файл на USB-накопичувач і підключіть його до сучасного 3D-телевізора, і подивіться в його 3D-меню, ви повинні знайти параметр "сторона" або "SBS", який зрозуміє, як відобразити зображення. (Шукайте в YouTube "GoPro 3D" для багатьох прикладів.)

Можливо, ви зможете зробити те ж саме з комп’ютером, підключеним до телевізора, як монітор, але не 3D-частини робочого столу потрібно приховати, оскільки вони не дублюються для кожного ока (і виглядатимуть дивно).

Примітка. Якщо ви підключите комп’ютер до 3D-екрану в режимі SBS, вам буде корисно закрити одне око, під час навігації, щоб розпочати презентацію.


0

Дійсно, вам просто потрібен спінальний plot3d () з пакету rgl .

  1. Почніть орієнтацію своєї ділянки в якомусь конкретному, нормальному місці.
  2. Створіть два екземпляри базової ділянки, трохи повернути їх у протилежних напрямках (для повністю зосередженого вигляду об'єктива) або збільшити масштаб та зменшити відповідно відповідно (для більш стандартного 3D-виду)

    х. Зафарбовуйте сюжет далі синім кольором, однаково підфарбовуйте ближчий сюжет більш червоним.

  3. Насправді не відображайте базову ділянку. Бажано використовувати базу для обчислення чотиригранного буфера (або подвійного буфера), чергуючи, який із двох графіків зміщення відображається у кожному кадрі. Оновіть її кожен цикл малювання. Одночасно відображати кожен графік примірника після оновлення.
  4. Використовуючи таймер високої роздільної здатності або VSync, відтворюйте стек буфера з точною швидкістю оновлення даного пристрою окулярів затвора.
  5. Сподіваємось, частота оновлення налаштовується у вашому додатку, а також опція "пропустити наступний кадр", щоб синхронізуватися із очками затвора. (для повернення вліво / вправо для синхронізації)
  6. Перед оновленням базової ділянки скануйте вхід для отримання відгуку користувачів, можливо, з асинхронно заповненого вхідного буфера.
  7. Підключіть ноутбук чи невеликий пристрій linux до телевізора з HDMI lol.
  8. Бонус: Якщо ви дійсно хочете перейти до цього, ви можете використовувати Rcpp та GLFW разом, щоб обробити дивацтво джойстика / миші / геймпада.

Існує короткий опис rgl та подібний пакет для 3D спінінг-сюжетів, який можна побачити в кінці цієї публікації .

Якщо ви можете, захочете розмістити якийсь ефект розмиття, орієнтований на перспективу, просто видно на кожен сюжет за допомогою OpenGL. Звичайно, вам, мабуть, доведеться трохи підправити кути, щоб це було правильно. Якщо я пам'ятаю, це повинен бути кут <20 градусів, ... але хто знає, а не я!


ні, вибач. Я знаю, що rgl і rgl підтримують анагліф 3D з поля. Неодноразово згадую захисні окуляри. але все-таки спасибі;)
Раффаель

@ Яаффаель! насправді не бачив цього про окуляри затвора через те, що читати занадто швидко. Вибачте за це, додав деякі виправлення.
Гарет Клаборн

Можливо, ви також зможете використовувати R з інтеропом OpenCL / GL для досягнення буферизації та мати окремий сервіс для запису лише на вхідні буфери, надаючи вашій програмі доступ до нього лише для читання. (Тоді вам також потрібен зворотній зв'язок, щоб дуже швидко повернути повідомлення в службу після того, як прочитаний вхід) Або дуже подібним чином, просто додайте програму зробити буфери та розмістити вершини на рендері OpenCL та C ++ / OpenGL / OpenCL, що працює разом сторона.
Гарет Клаборн

Я видалив своє запитання, тому що я отримую занадто багато таких невідповідних відповідей (як ваша досі :), але ви можете оновити його.
Раффаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.