Como criar dados 3D para o klar.land

·

·

Aqui explicamos quais as opções atualmente disponíveis no klar.land para a visualização de dados 3D e como os dados devem ser preparados de forma a obter resultados satisfatórios.

Programm

Recomendamos-te o programa Blender para a criação de dados 3D.

Um ficheiro glb é exportado do blender, que deve conter as texturas cozidas e todas as animações e materiais comprimidos o mais possível.

O melhor desempenho da visualização 3D no navegador Web é conseguido maximizando a compressão e reduzindo o número de componentes/vértices. Isto acaba por contribuir para uma experiência positiva do utilizador.

Formato dos dados

O klar.land processa dados no formato glb/gltf com nomes de objectos especificamente listados, que servem de base para a interação. A designação é indicada a seguir nas presentes instruções.

Carrega os dados

As pessoas com os direitos de acesso adequados podem criar uma nova “fase” através do menu de administração para carregar os dados 3D.

O ficheiro glb pode simplesmente ser carregado no campo designado utilizando a função arrastar e largar. A barra de carregamento mostra o progresso do carregamento. Enquanto isto estiver em curso e o carregamento ainda não tiver sido concluído, a janela do browser não deve ser fechada.

Os comandos de interação individuais para o ficheiro glb/gltf e o ambiente 3D são definidos no campo de texto “JSON”. As várias opções para definir e afinar o “Palco” podem ser encontradas nas instruções JSON.

Material

1. Deve ser criado um objeto chamado “MaterialHolder” para os materiais mutáveis, que contém todos os materiais que podem ser alternados.

Câmara

1. A câmara inicial (a vista que vês ao carregar a cena) deve chamar-se Defaultcam.

2. Todos os outros nomes de câmaras devem terminar em cam.

Iluminação

1. Os nomes dos Arealights devem começar por Arealight e

2. luzes de ponto com luz de ponto.

Objectos

1. As designações dos objectos também devem ser atribuídas às malhas correspondentes.

2. Se vários objectos tiverem o mesmo nome, por exemplo, vários ovos, os nomes devem ser “Ovo_1, Ovo_2, Ovo_3”, etc.

3. Os objectos devem receber uma escala de 1 antes de serem exportados.

4 Para objectos com texturas de vídeo, recomenda-se que cries planos simples (rectângulos) com mapeamento UV padrão. Estes devem ter materiais diferentes, se quiseres mostrar objectos diferentes com vídeos diferentes. Os objectos com os mesmos materiais também recebem o mesmo vídeo.

Materiais/Texturas

1. Para os materiais de vidro, o nome deve começar por Glass.

2. os mapas de oclusão ambiente cozidos seriam importantes para o desempenho, uma vez que o cálculo dinâmico das sombras é computacionalmente intensivo.

3. Usa um nó especial, não padrão no Blender, para os mapas de oclusão de ambiente cozidos. É melhor extraí-lo de um ficheiro de mistura existente. Se não tiveres um ficheiro blend adequado, contacta-nos.

Navegação no palco

Se pretenderes navegar pelo chão (ou seja, clicar em qualquer ponto do chão), o objeto chão deve chamar-se “_floor” e o pivô do objeto deve estar centrado. Atenção: na hierarquia do Blender, apenas o objeto de malha deve ser chamado “_floor”.

Como alternativa ao objeto _floor, também podes nomear um objeto “_navMesh”. Isto é automaticamente tornado invisível e a altura desejada em metros acima da _navMesh pode ser especificada através do parâmetro “userScale” no código Json. Isto dá-te mais opções de personalização em comparação com o objeto _floor.

Para apartamentos/quartos ou similares, é aconselhável utilizar pontos no solo. Evita a navegação contra paredes, entre outras coisas. Para isso, basta criar vários planos (=retângulos) sem material logo acima do objeto de chão chamado “_floor”, que contêm a cadeia de caracteres “groundspot” no nome. O código json também deve conter o seguinte:

{
  "Stage3dData": [
    {
	  "navigationmode":2,
	  .....
    }
  ]
}
Navegação através de pontos no solo

Animações

Os nomes das animações devem começar com o nome do objeto correspondente.

Por exemplo

O ovo_1 voa para a mesa de jantar

Ovo_2 na panela

IMPORTANTE: Assegura a coerência na designação das animações e dos objectos! Tanto durante a criação como após o processamento/modificações!

Não dupliques as animações!

Informação numa lista separada para as animações:

1. nome da animação (qualquer nome de animação)

2. grupo de animação (se vários objectos forem clicáveis depois de clicares num objeto, todos eles devem ter o mesmo nome de grupo).

3ª camada de animação (o botão é clicado e a câmara voa para o local da câmara => camada 0, o objeto é clicado e reproduz a animação => camada 1, o sub-objeto é clicado e reproduz)

4. estado da animação (se, quando se clica novamente num objeto, se quiser reproduzir uma animação diferente da que foi reproduzida quando se clicou nele pela primeira vez, à primeira animação deve ser atribuído o estado 0 e à segunda o estado 1 (por exemplo, primeiro clique => a porta abre-se, segundo clique => a porta fecha-se))

5. objeto que desencadeia a animação (objeto que desencadeia a animação quando clicado)

6. câmara de animação (câmara para a qual se muda quando se clica no objeto de ativação)

7. Animações com código de tempo (os nomes exactos das animações, tal como especificados no programa 3D, incluindo os códigos de tempo em que devem ser reproduzidas)

(mais informações sobre animações e a sua designação podem ser encontradas nas instruções JSON)