Como transformar um gráfico 3D em algo assistível em uma televisão 3D?

9

Digamos que eu tenha um gráfico de dispersão 3D em R ou um quadro de dados com 3 campos preenchidos com dados numéricos.

Como isso pode ser "transformado" em "algo" assistível em uma televisão 3D (como uma TV de tela grande aleatória da Samsung usando óculos de obturador)? Ou um clipe estático daquele gráfico de dispersão girando em torno de um eixo ou, ainda melhor, sendo capaz de interagir com o gráfico (mova-o, gire-o, ...). Quais programas, bibliotecas você precisa para fazer isso?

(Eu acabei de mencionar R porque é onde o trabalho está feito. Mas uma solução não teria que incluir R)

    
por Raffael 28.11.2012 / 15:37

2 respostas

1

Você pode gerar duas imagens (para os olhos esquerdo e direito) para cada quadro da animação, configurá-las lado a lado (para criar uma imagem muito ampla ou horizontal) e gerar um vídeo arquivo dessa maneira. Em seguida, coloque esse arquivo em um pen drive USB e conecte-o a uma TV 3D moderna, e procure em seu menu 3D, você deve encontrar uma opção "side-by-side" ou "SBS", que vai entender como exibir a imagem. (Procure no YouTube por "GoPro 3D" para muitos exemplos.)

Você pode fazer o mesmo com um computador conectado à TV como um monitor, mas as partes não-3D da área de trabalho precisariam estar ocultas, já que não seriam duplicadas para cada olho (e pareceriam estranho).

Nota: Se você conectar um computador a uma tela 3D no modo SBS, será útil fechar um olho de cada vez enquanto navega para iniciar sua apresentação.

    
por 04.06.2014 / 18:23
0

Realmente você só precisa de um plot3d () spinnable, do rgl pacote .

  1. Inicie a orientação do seu enredo em algum local normal e específico.
  2. Crie duas instâncias do gráfico base, gire ligeiramente em direções opostas (para uma visão totalmente centrada na lente) ou aumente e afaste ligeiramente o zoom, respectivamente (para obter mais visualizações 3D padrão)

    x. Tingue o enredo mais longe, mais azul, e tingir o enredo mais próximo.

  3. Na verdade, não exibe o gráfico base. De preferência, use a base para calcular um buffer quádruplo (ou buffer duplo) alternando qual dos dois gráficos de offset é exibido em cada quadro. Atualize cada loop de desenho. Simultaneamente, exiba cada gráfico de instância após a atualização.
  4. Usando um temporizador de alta resolução ou VSync, reproduza a pilha de buffers precisamente na taxa de atualização do seu dispositivo de óculos de obturador.
  5. Espero que a taxa de atualização seja configurável em seu aplicativo, além da opção de "pular o próximo quadro" para sincronizar com os óculos do obturador. (para reverter a sincronização esquerda / direita)
  6. Antes de atualizar o gráfico base, verifique a entrada para feedback do usuário, possivelmente de um buffer de entrada preenchido de forma assíncrona.
  7. Conecte um laptop ou um pequeno dispositivo linux à tv com HDMI lol.
  8. Bônus: se você realmente quiser fazer isso, use Rcpp e GLFW juntos para lidar com a loucura do joystick / mouse / gamepad.

Existe uma breve descrição do rgl e de um pacote semelhante para gráficos 3D, que podem ser vistos no final deste postagem .

Se você puder, você vai querer colocar algum tipo de efeito de blur baseado em perspectiva apenas em cada lote usando OpenGL. Claro, você provavelmente terá que fazer um pouco de ajustes com os ângulos para acertar. Se me lembro, deve ser o ângulo < 20 graus, ... mas quem sabe, não eu!

    
por 20.03.2014 / 05:01

Tags