Jak zamienić mapę 3D w coś do oglądania na telewizorze 3D?


9

Załóżmy, że mam wykres rozproszenia 3D w R lub ramkę danych z 3 polami wypełnionymi danymi liczbowymi.

Jak można to „przekształcić” w „coś” do oglądania na telewizorze 3D (jak losowy duży telewizor Samsunga z okularami migawkowymi)? Albo statyczny klip tego wykresu rozrzutu obracający się wokół osi, albo jeszcze lepiej mogący wchodzić w interakcję z polem (przesuń go, obróć, ...). Jakie programy, biblioteki są potrzebne, aby to zrobić?

(Właśnie przywołałem R, ponieważ tam właśnie jest wykonywana praca. Ale rozwiązanie nie musiałoby obejmować R)


1
Jeśli masz już trójwymiarową reprezentację wykresu, wystarczy utworzyć z niego co najmniej dwa widoki. Widoki te muszą różnić się tym, co pokazują, minimalną ilością. Tak więc, jeśli Twój „aparat” spojrzy na wykres pod jednym kątem, delikatnie przesuń kamerę w lewo lub w prawo, aby uzyskać drugi widok.
slhck

1
A następnie musisz zakodować obrazy do jakiegoś rodzaju wideo z wieloma widokami, które może obsłużyć telewizor, np. H.264 MVC lub split stereo - czy masz jakieś szczegóły?
slhck

@slhck: Tak naprawdę nie mam jego trójwymiarowej reprezentacji. Mogę po prostu wyświetlić go z R w 3D. Również użycie dwóch persectives z kamery na reprezentacji VRML może utrudnić interakcję z fabułą. Jak dostosowanie skali lub użycie różnych danych. : /
Raffael,

1
Rozumiem. To będzie skomplikowane. Potrzebujesz renderowanej grafiki, która może wyświetlać rzeczywiste 3D z karty graficznej komputera (np. NVIDIA z zestawem wizyjnym 3D), ale nie jestem tego świadomy.
slhck

1
Potrzebujesz karty graficznej, która może generować 3D (jak wspomniana już NVIDIA i wizja 3D), a następnie program, który wyświetla twoje dane w przyspieszonym sprzętowo widoku 3D (podobnym do gry wideo). Przetwarzanie (processing.org) może ci w tym pomóc.
evilspoons

Odpowiedzi:


1

Możesz wygenerować dwa obrazy (dla lewego i prawego oka) dla każdej klatki animacji, ustawić je obok siebie (aby zrobić bardzo szeroki obraz lub poziomo ściśnięty) i wygenerować plik wideo w ten sposób . Następnie włóż ten plik na dysk USB i podłącz go do nowoczesnego telewizora 3D, i spójrz w jego menu 3D, powinieneś znaleźć opcję „side-by-side” lub „SBS”, która zrozumie sposób wyświetlania obrazu. (Wyszukaj w YouTube „GoPro 3D”, aby znaleźć wiele przykładów).

Możesz zrobić to samo z komputerem podłączonym do telewizora jako monitor, ale części pulpitu inne niż 3D musiałyby być ukryte, ponieważ nie byłyby duplikowane dla każdego oka (i wyglądałyby dziwnie).

Uwaga: Jeśli podłączysz komputer do ekranu 3D w trybie SBS, przydatne będzie zamknięcie jednego oka na raz podczas nawigacji, aby rozpocząć prezentację.


0

Naprawdę potrzebujesz po prostu spinnable plot3d () z pakietu rgl .

  1. Rozpocznij orientację działki w określonej, normalnej lokalizacji.
  2. Utwórz dwa wystąpienia wykresu podstawowego, lekko obrócone w przeciwnych kierunkach (w celu uzyskania całkowicie wyśrodkowanego widoku podobnego do soczewki) lub odpowiednio powiększone i zmniejszone (w celu uzyskania bardziej standardowego widoku 3D)

    x. Odcień wykresu bardziej niebieski, podobnie odcień bardziej czerwony.

  3. Nie wyświetlaj wykresu bazowego. Najlepiej użyć podstawy do obliczenia bufora poczwórnego (lub bufora podwójnego) na przemian, który z dwóch wykresów przesunięcia jest wyświetlany w każdej ramce. Zaktualizuj go przy każdej pętli losowania. Jednocześnie wyświetlaj wykres każdej instancji po aktualizacji.
  4. Korzystając z timera o wysokiej rozdzielczości lub VSync, odtwarzaj stos buforów dokładnie z częstotliwością odświeżania danego urządzenia z okularami migawkowymi.
  5. Mamy nadzieję, że częstotliwość odświeżania jest konfigurowalna w Twojej aplikacji, a także opcję „pomiń następną klatkę” w celu synchronizacji z okularami migawki. (aby odwrócić synchronizację lewo / prawo)
  6. Przed zaktualizowaniem wykresu podstawowego zeskanuj dane wejściowe w celu uzyskania opinii użytkowników, potencjalnie z asynchronicznie wypełnionego bufora wejściowego.
  7. Podłącz laptopa lub małe urządzenie linux do telewizora za pomocą HDMI lol.
  8. Bonus: jeśli naprawdę chcesz się do tego zabrać, możesz użyć Rcpp i GLFW razem, aby poradzić sobie z szaleństwem joysticka / myszy / gamepada.

Istnieje krótki opis rgl i podobnego pakietu dla wykresów 3D, które można zobaczyć na końcu tego postu .

Jeśli możesz, możesz umieścić jakiś efekt rozmycia z perspektywy widzenia tylko na każdym wykresie za pomocą OpenGL. Oczywiście prawdopodobnie będziesz musiał trochę zmodyfikować kąty, aby uzyskać właściwy efekt. Jeśli pamiętam, powinien to być kąt <20 stopni, ale kto wie, nie ja!


nie, przykro mi. Wiem, że rgl i rgl obsługuje anaglif 3D z pudełka. Nie bez powodu wspominam o okularach migawkowych. ale i tak dzięki;)
Raffael

@ Яaffael whoops! tak naprawdę nie widziałem tego w okularach z migawką z powodu zbyt szybkiego czytania. Przepraszamy za to, dodano kilka poprawek.
Garet Claborn,

Możesz także użyć R z interoperem OpenCL / GL, aby osiągnąć buforowanie i mieć oddzielną usługę tylko do zapisu do buforów wejściowych, dając aplikacji dostęp tylko do odczytu. (W takim przypadku potrzebujesz również rewersu, aby bardzo szybko wysłać wiadomość z powrotem do usługi po odczytaniu danych wejściowych) Lub bardzo podobnie, po prostu poproś aplikację, aby utworzyła bufory i wysłała wierzchołki do OpenCL i renderera C ++ / OpenGL / OpenCL wzdłuż bok.
Garet Claborn,

Usunąłem moje pytanie, ponieważ otrzymałem zbyt wiele tych nieistotnych odpowiedzi (jak twoje jak dotąd :), ale możesz je zaktualizować.
Raffael
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.