# FAQ

## Qual formato de modelo 3D é melhor suportado?

O formato recomendado para importar e exportar recursos é o glTF (GL Transmission Format). Isso porque o glTF é focado na entrega de recursos em tempo de execução, é compacto para transmitir e rápido para carregar.

O three.js também fornece loaders para muitos outros formatos populares como FBX, Collada ou OBJ. No entanto, primeiro você deve sempre tentar estabelecer um fluxo de trabalho baseado em glTF em seus projetos. Para obter mais informações, consulte [link:#manual/introduction/Loading-3D-models Carregando modelos 3D].

## Por que existem meta tags de viewport nos exemplos?

`<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">`

Essas tags controlam o tamanho e a escala da janela de visualização para navegadores móveis (onde o conteúdo da página pode ser renderizado em tamanho diferente da janela de visualização visível).

[link:https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html Safari: Using the Viewport]

[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag MDN: Using the viewport meta tag]

## Como a escala da cena pode ser preservada no redimensionamento?

Queremos que todos os objetos, independentemente da sua distância da câmera, apareçam do mesmo tamanho, mesmo que a janela seja redimensionada. A equação chave para resolver isso é esta fórmula para a altura visível dada uma determinada distância da câmera: `visible_height = 2 * Math.tan( ( Math.PI / 180 ) * camera.fov / 2 ) * distance_from_camera;` Se aumentarmos a altura da janela por uma certa porcentagem, o que queremos é que a altura visível em todas as distâncias aumentem na mesma porcentagem. Isso não pode ser feito alterando a posição da câmera. Em vez disso, você tem que mudar o campo de visão da câmera (FOV). [link:http://jsfiddle.net/Q4Jpu/ Exemplo].

## Por que parte do meu objeto está invisível?

Isso pode acontecer por causa do corte de faces. As faces têm uma orientação que decide qual lado é qual. E o corte remove a parte traseira em circunstâncias normais. Para verificar se este é o seu problema, altere o lado do material para THREE.DoubleSide. `material.side = THREE.DoubleSide`

## Por que o three.js às vezes retorna resultados estranhos para entradas inválidas?

Por motivos de desempenho, o three.js não valida entradas na maioria dos casos. É responsabilidade do seu aplicativo garantir que todas as entradas sejam válidas.