3D Skybox
A criação de uma “skybox 3D” pode ser uma adição poderosa ao tratamento visual de um nível. A skybox 3D é uma área extra construída pelo designer de níveis que está fora dos limites da parte de jogabilidade do mapa. Quando o mapa é carregado, o Source amplia os objetos na área da skybox 3D e os coloca fora dos limites do nível atual, entre a skybox e o jogador. Isso é usado para dar a aparência de um mundo muito mais amplo fora da sua fase, sem ser muito caro para o orçamento devido à escala 1:16 (por padrão). As skyboxes 3D não são interativas: o jogador e outras entidades não podem se mover para o espaço da skybox 3D.
A geometria da skybox 3D pode ser indistinguível da geometria de nível normal. As transições perfeitas entre a geometria de nível normal e a skybox 3D são muito possíveis e são usadas em muitos dos mapas dos jogos oficiais da Source, como Counter-Strike: Source .
- Em Left 4 Dead, a escala padrão é 1:32, NÃO 1:16 (mas 1:16 funciona corretamente!)
- Para evitar problemas de iluminação, não use light (ou qualquer outra luz sem o prefixo Env_) na skybox
- Why?: Quais são os tipos de problemas? Você pode ter um light_environment separado no skyroom e ele funcionará bem.
- Em Portal 2 algumas geometrias de skybox não serão visíveis, a menos que você defina o cvar
r_skybox_draw_last
como0
.
Contents
Benefícios
As skyboxes padrão são imagens 2D simples, mapeadas em um cubo para que circundem o nível. Os skyboxes 3D são uma geometria totalmente em 3D e são devidamente paralaxe à medida que o jogador se move pelo nível. Como são renderizadas em tempo real, elas são dimensionadas de acordo com a resolução da placa de vídeo e também suportam efeitos de sombreamento em tempo real que não são possíveis em skyboxes 2D.
A principal vantagem de usar uma skybox 3D é que ela permite que o designer de níveis faça o mapa parecer muito maior do que é possível com a geometria padrão do mundo. O maior mapa que pode ser criado sem uma skybox 3D é de 32768 unidades em cada lado. Usando uma skybox 3D, o mapa pode ser estendido para 16 vezes essa quantidade.
Mapas desse tamanho são possíveis porque as skyboxes 3D são criadas no Hammer Editor em uma escala de 1/16 da escala dos mapas padrão. Em tempo de execução, o mecanismo as dimensiona novamente para corresponder à escala do restante do mapa. Isso não apenas economiza espaço nas exibições do editor, mas também é muito mais econômico para compilar e renderizar.
Devido à sua escala, os skyboxes 3D têm uma resolução de mapa de luz e textura muito menor. Isso torna a geometria de skybox 3D menos dispendiosa em termos de desempenho do que a geometria padrão do mundo.
As skyboxes 3D podem ser usadas para superar as limitações de distância de desenho, se você criar uma skybox com poucos detalhes idêntica à do mapa principal. Uma equipe de mods que queira fazer isso teria que desenvolver um código para facilitar a transição entre as versões do mapa.
Características básicas
As Skyboxes 3D têm as seguintes características:
- São construídos (por padrão) em escala 1/16 no editor Hammer e, em seguida, renderizados em tamanho 16 vezes maior no mecanismo para corresponder à geometria do mundo.
- Suporte a materiais com efeitos de sombreamento, como mapeamento normal, água, mapeamento de ambiente, proxies, etc.
- Não são interativos - os jogadores e outras entidades do mundo não podem entrar nas skyboxes 3D. A skybox 3D é apenas uma extensão visual das extensões do mapa.
- Pode ser construído com pincéis, deslocamentos, adereços estáticos e dinâmicos, luzes, entidades de pincel e entidades de ponto (como
env_sprite
). - Todos os modelos que forem colocados na skybox 3D devem ser criados em escala 1/16. Os modelos padrão (props ) não são dimensionados adequadamente para o skybox 3D. Devem ser usadas versões especiais em escala 1/16. Para Half-Life 2, esses adereços podem ser encontrados no diretório
models/props_skybox
. - Não deve conter
info_player_start
, NPCs ou monstros. - Têm menor resolução de lightmap e textura devido à escala em que são criados.
- Devem ter suas próprias fontes de iluminação, embora um
light_environment
na seção sem skybox também seja usado para a iluminação do skybox 3D. - Use a entidade
sky_camera
para controlar como elas se alinham com a geometria do mundo sem skybox. - As skyboxes 3D têm seus próprios parâmetros de neblina, ajustáveis na entidade
sky_camera
. - A geometria na skybox 3D não é ocluída ou eliminada como o restante da geometria do nível. Se você adicionar muitos modelos ou geometrias de pincel detalhadas à skybox 3D, especialmente com materiais translúcidos, o desempenho poderá ser seriamente afetado.
- Um mapa deve ter um
light_environment
nele, caso contrário os modelos na skybox 3D serão iluminados incorretamente. Umlight_environment
na parte não skybox do mapa elimina a necessidade de um na skybox 3D.
Construção de skyboxes 3D
- Uma observação sobre a entidade
sky_camera
: as entidades de ponto não diminuem a escala.
A maneira mais eficiente de criar um skybox 3D que combine ou “se alinhe” com o mapa atual é usar parte da geometria na parte principal do nível. Siga estas etapas depois que você tiver criado a geometria do nível principal:
- Adicione uma entidade
sky_camera
na origem do mundo (coordenadas 0, 0, 0), o centro da grade do mapa. Asky_camera
é um ponto de referência usado pelo renderizador para alinhar a skybox 3D com a parte principal do mapa. Em outras palavras, ele funciona como um marcador que informa ao renderizador como a origem da skybox 3D e a origem do mundo se relacionam entre si. Você pode pensar nesse processo como sendo semelhante à seleção de toda a geometria do skybox 3D e, em seguida, alinhar a entidadesky_camera
nessa seleção com a origem do mundo (0,0,0). A geometria é “traduzida” de volta para essa posição no mundo. Esse é o mesmo conceito usado quando o skybox é renderizado no mecanismo. - Selecione algumas partes distintas do nível que você possa usar como diretriz para escala e posição na skybox 3D. Os elementos comuns a serem selecionados para essa finalidade seriam algumas das estruturas maiores, bem como paredes, penhascos, colinas etc. que definem as bordas do mapa. Certifique-se de que a
sky_camera
que você criou também esteja selecionada. {É importante que você “não” selecione nenhuma entidade de modelo, apenas pincéis. Os modelos não podem ser usados como geometria de referência, poisprop_static
não pode ser reduzido no editor Hammer (em {csgobranch)|prefix=except}}.}} - Escolha Copy (Copiar) no menu Edit (Editar) ou pressione CTRL-C.
- Selecione Paste Special no menu Edit. Defina o Number of copies to paste (Número de cópias a serem coladas) como 1 e todos os outros valores como 0. Clique em OK. Isso cria uma duplicata da geometria que você havia selecionado.
- Ative o Scaling Texture Lock na barra de ferramentas, se ainda não estiver ativado. Seu ícone se assemelha a <tl>. Isso reduzirá as texturas junto com a geometria.
- Deixando a geometria selecionada, escolha Transform no menu Tools'. Selecione o botão de opção ao lado de Scale. Digite um valor de .0625 para X, Y e Z. Esse é o equivalente decimal a 1/16 - a escala da skybox 3D. Clique em OK. Nota:Se você quiser que as texturas na geometria sejam dimensionadas de acordo, certifique-se de que o bloqueio de textura de dimensionamento esteja ativado.
- Agora você tem uma versão em escala 1/16 da sua geometria de referência. Agora, arraste-a (mova-a) para outra parte do mapa onde você deseja construir o skybox 3D. Não importa onde ela esteja, desde que não esteja tocando nenhuma parte da área de geometria do nível principal.
- Exclua a entidade
sky_camera
da área normal do mapa do mundo em que você começou. Importante: somente a entidadesky_camera
no skybox 3D deve permanecer no mapa. No L4D2 (e possivelmente em outros jogos da Source), se você esquecer essa etapa (tendo várias sky_cameras no mapa), todas as áreas de navegação serão bloqueadas. - Você pode criar sua geometria de skybox 3D em torno da geometria de referência, usando-a como guia. Você pode criar uma geometria de skybox que atenda perfeitamente à geometria de referência. Você pode usar pincel e geometria de deslocamento. Você também pode colocar modelos, mas como a skybox 3D está em escala 1/16, todos os modelos também devem estar em escala 1/16. O modelo
hl2\models\props_skybox\coast01.mdl
é um modelo de amostra em escala 1/16. Tente posicionar a câmera de visualização 3D perto da altura do jogador. Isso dará a você uma boa ideia de como a skybox 3D ficará quando for renderizada no mecanismo. - Adicione um cubo oco de pincéis ao redor de sua geometria de referência e atribua o material
tools\toolsskybox
a ele. O skybox cúbico 2D padrão aparecerá nessas superfícies. A área do skybox 3D deve ser selada com esses pincéis. - Quando você terminar, exclua ou oculte toda a geometria de referência, “exceto” a entidade
sky_camera
. Talvez você ache melhor adicionar a geometria de referência ao seu próprio visgroup para que ela possa ser ativada e desativada ou recolocada. Apenas certifique-se de desativá-la antes de salvar e compilar o nível, ou ela será compilada no skybox 3D. - Se você tiver pincéis dentro da skybox 3D que não sejam a geometria de referência, transforme todos esses brushes em brushes
func_detail
.Nota:A única exceção a isso são os displacements. Por motivos óbvios, não vincule os displacements a uma entidade. - Seu mapa original ainda precisa do material
tools\toolsskybox
onde quer que você queira ver o céu, mas agora ele mostrará o skybox 3D e também o skybox 2D (que era o que fazia anteriormente). - Se você quiser que uma parte do seu mapa mostre apenas a skybox 2D e não a geometria da skybox 3D, use a textura tools\toolsskybox2d, que desenha apenas a skybox 2D. Não há restrições para essa textura e ela pode ser usada junto com a textura normal do skybox sem problemas. Esse recurso é útil quando você tem, por exemplo, uma janela e deseja ver apenas o céu a partir dela, como se você estivesse em um prédio muito alto.
Testando
Se você selou adequadamente seu skybox 3D e seu mapa não tem um vazamento , agora você pode compilar o mapa e verificar seu novo skybox 3D no mecanismo.
Exemplos
- Veja
sdk_content\hl2\mapsrc\sdk_3d_skybox.vmf
para um exemplo de uma skybox 3D - Um exemplo de extensão das distâncias de desenho com skyboxes 3D. (comentado)
- Tutorial em vídeo da Skybox 3D
- VMF de amostra do HL2 para água/mundo 3D Skybox
Como criar um Skybox 3D no 3ds Max
Você também pode criar seu Skybox 3D de uma maneira muito mais simples do que o método Hammer tradicional se construir seu nível dentro do 3ds Max com Wall Worm Model Tools . O Wall Worm permite que você crie o 3D Skybox na escala do mapa e evita a necessidade de reduzir o skybox.
Para fazer isso, basta “marcar” a geometria do skybox com as funções Tag nas ferramentas Anvil que acompanham o Wall Worm.
Veja uma demonstração e faça o download de uma cena de amostra aqui.
Veja também
Environment articles: | |
---|---|
Skies and environment maps | Skybox (2D) • Skybox (3D) • HDR Skies • Skybox with Terragen • Skybox with Terragen - Advanced • List of skies |
Terrain and displacement mapping | Displacements • Creating Holes in Displacements • Digital Elevation Models • Creating custom terrain with Worldmachine |