Cubemaps

From Valve Developer Community
Jump to navigation Jump to search
Info content.png
This page needs to be translated.
This page either contains information that is only partially or incorrectly translated, or there isn't a translation yet.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article tries to comply with the alternate languages guide.
English (en)Español (es)Français (fr)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)
Pendência: Precisa de informações sobre os cube maps da Source 2. Veja Draft:Cubemaps (Source 2).
Env cubemap.png
Um exemplo de reflexos especulares em alguns modelos (exagerados por causa do r_showenvcubemap).

Um cubemap é uma textura que representa uma representação tridimensional de uma área. Source Source usa entidades env_cubemap como pontos de amostragem para gerar estas texturas, que são depois integradas no arquivo do mapa. Os cubemaps, quando construídos, são refletidos em materiais que usam o parâmetro $envmap (superfícies como vidro refletor, azulejos, água, etc.) Um mapa sem entidades env_cubemap construídas ou existentes usará outros tipos de “reflexões” que não o retratam corretamente.


Construindo Cubemaps

BConstruir cubemaps é o processo de gerar texturas para usar como reflexões. Por razões técnicas, este processo não é automatizado ( Exceto em Mapbase) e cabe ao usuário fazê-lo; até lá, as entidades env_cubemap existentes permanecerão sem uso e o mapa, dependendo do jogo, mostrará uma textura genérica, preta ou texturas “ em falta” como reflexos devido a cubemaps inexistentes.

Warning.pngAtenção:
  • PARA PESSOAS COM EPILEPSIA: A criação de cubemaps em jogos executados em Vulkan, como Left 4 Dead 2 Left 4 Dead 2, faz com que a tela pisque violentamente em preto e branco. Também em sistemas com CPU/GPU mais rápida , a criação de cubemaps HDR em jogos do ramo pré-L4D, como Counter-Strike: Source Counter-Strike: Source, mesmo com Direct3D 9/DX9, também fará a tela piscar em preto e branco repetidamente.
  • Se o comando nav_show_ladder_bounds tiver sido usado antes da criação de cubemaps, as caixas verdes também serão incorporadas ao cubemap.
  • Se estiver criando cubemaps para o Half-Life 2 Half-Life 2 (exceto os episódios) após a Atualização do Aniversário de 20 anos, você deverá iniciar o jogo com -game hl2 argumento da linha de comando. Caso contrário, o jogo tentará acessar o episodic/maps (Half-Life 2: Episode One) em vez do diretório de mapas Half-Life 2, fazendo com que o jogo não salve os cubemaps criados no mapa. Da mesma forma, se estiver criando cubemaps para mapas localizados no diretório Episode One ou Episode Two, inicie o jogo com -game episodic (para EP1) ou -game ep2 (para o EP2), respectivamente (ou inicie o Episódio Um/Episódio Dois em Steam > Ferramentas).

Antes de construir

Broom icon.png
This article or section needs to be cleaned up to conform to a higher standard of quality because:
Os jogos Source modernos, nomeadamente Portal 2 e P2:CE, não precisam de todos estes parâmetros e passos complicados, pelo menos na minha experiência -Equalizer (talk) 10:56, 22 março 2024 (PDT)

Também alguns jogos Source (como o CS:S), não parecem necessitar que os cheats estejam activados para construir cubemaps. -leonidakarlach (talk) 02:50, 25 agosto 2024 (PDT)

For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.
Icon-Important.pngImportante:Mapas para jogos Source 2013 Source 2013 e outros, como Counter-Strike: Source Counter-Strike: Source, são conhecidos por incluírem cubemaps pré-construídos e em branco depois de serem compilados (mesmo que não existam entidades env_cubemap' neles); estes devem ser apagados antes de construir novos, como detalhado aqui. Tal foi corrigido no Mapbase Mapbase
Tip.pngDica:
  • As entidades env_cubemap permitem gerar reflexos de alta ou baixa qualidade, embora a qualidade da textura do jogo também entre em jogo; considere maximizar as configurações visuais do jogo antes de criar cubemaps.
  • Para criar cubemaps, a resolução da tela do seu jogo precisa ser pelo menos 4 vezes maior do que o maior tamanho de um env_cubemap existente, caso contrário, a tentativa de criá-los falhará ou até mesmo causará o travamento do jogo.
    Por exemplo, se o maior env_cubemap tiver o tamanho 128x128, será necessária uma resolução não inferior a 512x512. (128 × 4 = 512 -> 720x576 (como uma resolução válida) ou superior)
    Note.pngNota:O jogo pode parecer congelar ou deixar de responder durante o processo, e o tempo depende de vários fatores. Para obter resultados bem-sucedidos, não se afaste do jogo até que ele seja concluído.
  • Se estiver usando o Mapbase Mapbase, adicione -autocubemap à sua linha de comando em Hammer. O jogo criará automaticamente cubemaps
  • O Slammin' Source Map Tools Slammin' VBSP apresenta o comando -nodefaultcubemap, que ignora a geração automática de cubemaps skybox na compilação do mapa

.

LDR

Note.pngNota:Esta etapa não se aplica a Left 4 Dead Left 4 Dead nem a Counter-Strike: Global Offensive Counter-Strike: Global Offensive, pois seus mapas são compilados somente no modo HDR. Embora o Portal 2 Portal 2 seja compatível com LDR, o jogo usa HDR por padrão, portanto, recomendamos a criação de cubemaps somente em HDR.

A criação de cubemaps em um mapa compilado no modo LDR (Low Dynamic Range) gerará texturas somente para esse modo, independentemente da configuração de vídeo High Dynamic Range do jogo. Para criar os cubemaps, envie os seguintes comandos para o console do jogo:

Comando Descrição
mat_specular 0 Desativa os reflexos, o que é necessário se estiver usando apenas uma iteração de buildcubemaps. Isso também significa que a desativação dos reflexos evitaria alguns casos em que as texturas ausentes ou a textura padrão do cubemap (materials/engine/defaultcubemap.vtf, também conhecida como um deserto com céu laranja ao pôr do sol), poderiam acabar refletidas no próprio cubemap.
map map_name Carrega o mapa; substitua "map_name" pelo nome real do mapa
sv_cheats 1 Habilita o uso de comandos de trapaça; necessário para criar cubemaps
Confirmar:Half-Life 2 não parece exigir trapaças para criar cubemaps, portanto esta etapa pode ser ignorada. Confirme se outros jogos também exigem trapaças para criar cubemaps.
buildcubemaps Inicia a criação de cubemaps. Opcionalmente, especifique o número de iterações (e.g.: buildcubemaps 2 (default is 1))
disconnect Descarrega o mapa e retorna ao menu principal
mat_specular 1 Ativa os reflexos.
quit (opcional) Sai do jogo. Em alguns jogos, é necessário reiniciar o jogo para exibir os cubemaps recém-construídos

LDR + HDR

A construção de cubemaps no jogo Source 2006 - Source 2013, com um mapa compilado com suporte a HDR, precisa ser executada duas vezes - uma para cada modo (HDR e LDR). Ao contrário do caso de um mapa LDR, a configuração de vídeo High Dynamic Range do seu jogo deve ser definida como “Full” para criar cubemaps HDR e como “None” para criar cubemaps LDR (ou usando o comando mat_hdr_level. Para criar os cubemaps para LDR + HDR, envie os seguintes comandos para o console do jogo:

Note.pngNota:Os mapas criados em Left 4 Dead ou posteriores (e alguns jogos Source de terceiros) não exigem a criação de cubemaps em LDR. Veja #HDR
Comando Descrição
mat_specular 0 Desativa os reflexos, o que é necessário se estiver usando apenas uma iteração de buildcubemaps. Isso também significa que a desativação dos reflexos evitaria alguns casos em que as texturas ausentes ou a textura padrão do cubemap (materials/engine/defaultcubemap.vtf, também conhecida como um deserto com céu laranja ao pôr do sol), poderiam acabar refletidas no próprio cubemap.
map map_name Carrega o mapa; substitua "map_name" pelo nome real do mapa
sv_cheats 1 Habilita o uso de comandos de trapaça; necessário para criar cubemaps
Confirmar:Half-Life 2 não parece exigir trapaças para criar cubemaps, portanto, esta etapa pode ser ignorada. Confirme se outros jogos também exigem trapaças para criar cubemaps
.
building_cubemaps 1 Define a exposição HDR em um valor consistente. Isso será redefinido automaticamente para 0 depois que os cubemaps forem criados.
buildcubemaps Começa a criar cubemaps. Opcionalmente, especifique o número de iterações (e.g.: buildcubemaps 2 (o padrão é 1))
disconnect Descarrega o mapa e retorna ao menu principal
sv_cheats 0 Desativa os comandos de trapaça; evita que o comando mat_reloadallmaterials se autoexecute desnecessariamente (o que congela o jogo por um breve período)
mat_hdr_level 0 Muda para o modo LDR (de HDR); em vez disso, envie mat_hdr_level 2 se os cubemaps LDR tiverem sido criados primeiro
map map_name Carrega o mapa novamente para criar cubemaps para o novo modo
sv_cheats 1
buildcubemaps Begins building cubemaps for the new mode
disconnect
mat_specular 1 Ativa os reflexos.
mat_hdr_level 0/1/2 Se necessário, retorna ao modo em que estava antes de ter enviado mat_hdr_level 0/2
quit (opcional) Sai do jogo. Em alguns jogos, é necessário reiniciar o jogo para exibir os cubemaps recém-construídos

HDR

Esta seção destina-se a jogos que executam Left 4 Dead engine branch Left 4 Dead engine branch e ramificações de mecanismo posteriores ou ramificações de mecanismo que suportam apenas HDR (Xengine). Para criar cubemaps apenas em HDR, envie os seguintes comandos para o console do jogo:

Comando Descrição
mat_specular 0 Desativa os reflexos, o que é necessário se estiver usando apenas uma iteração de buildcubemaps. Isso também significa que a desativação dos reflexos evitaria alguns casos em que as texturas ausentes ou a textura padrão do cubemap (materials/engine/defaultcubemap.vtf, também conhecida como um deserto com céu laranja ao pôr do sol), poderiam acabar refletidas no próprio cubemap.
map map_name Carrega o mapa; substitua "map_name" pelo nome real do mapa
sv_cheats 1 Permite o uso de comandos de trapaça; necessário para criar cubemaps
building_cubemaps 1 Define a exposição HDR em um valor consistente. Isso será redefinido automaticamente para 0 depois que os cubemaps forem criados.
buildcubemaps Inicia a criação de cubemaps. Opcionalmente, especifique o número de iterações
disconnect Descarrega o mapa e retorna ao menu principal
mat_specular 1 Ativa os reflexos.
quit (opcional) Sai do jogo. Em alguns jogos, é necessário reiniciar o jogo para exibir os cubemaps recém-construídos

Criando cubemaps em jogos específicos

Black Mesa: Source

Para criar cubemaps em mapas Black Mesa Black Mesa, o jogo deve ser iniciado com estes parâmetros: -oldgameui -dev -console +r_4way_use_fast_normals 0 +mat_specular 0
Em seguida, carregue o mapa e envie o comando buildcubemaps para o console.

Half-Life: Source

Icon-Bug.pngErro:Atualmente, não é possível criar cubemaps no Half-Life: Source Half-Life: Source, pois suas texturas, apesar de serem geradas, não são incorporadas ao arquivo de mapa posteriormente.
PlacementTip.pngGambiarra:Mova o arquivo de mapa para a pasta 🖿maps de um jogo no mesmo ramo do motor (como Half-Life 2 Half-Life 2), crie seus cubemaps nesse jogo e, em seguida, mova o arquivo de volta para a pasta Half-Life: Source's folder.
Confirmar:Corrigido em Half-Life Deathmatch: Source?
  [todo tested in ?]

Half-Life 2 (20th Anniversary Update)

Icon-Bug.pngErro:A criação de cubemaps em Half-Life 2 Half-Life 2, Half-Life 2: Episode One Half-Life 2: Episode One e Half-Life 2: Episode Two Half-Life 2: Episode Two, após a atualização do 20º aniversário, pode falhar. No caso do Half-Life 2, o jogo pode acessar o diretório errado (exemplo: episodic/maps), em vez de hl2/maps, impedindo que os cubemaps sejam incorporados ao arquivo de mapa.

Você também pode ver essa mensagem de erro gerada no console: vtex failed to compile cubemap! Unable to remove \steamapps\common\half-life 2\episodic\materials\maps\<map name>\<cubemap location>.vtf

PlacementTip.pngGambiarra:Inicie o Half-Life 2 com -game hl2 command line argument. Para episódios, inicie o jogo em Steam > Tools (ou usando -game episodic ou -game ep2).

Portal 2

Icon-Bug.pngErro:A criação de cubemaps no Portal 2 Portal 2 falhará se o arquivo de mapa não estiver na pasta DLC de número mais alto (🖿dlc2 por padrão).
PlacementTip.pngGambiarra:Mova o mapa para essa pasta antes de criar cubemaps e, se necessário, edite o caminho "Colocar mapas compilados neste diretório antes de executar o jogo" nas opções do Hammer's Build Programs para que o mapa seja gerado automaticamente lá.
  [todo tested in ?]

Portal 2: Community Edition

Icon-Bug.pngErro:A quantidade de iterações (por exemplo: buildcubemaps 2) não funciona atualmente no Portal 2: Community Edition Portal 2: Community Edition.
PlacementTip.pngGambiarra:Execute o comando buildcubemaps, recarregue o mapa e, em seguida, execute o comando novamente. Se necessário, repita essas etapas sucessivamente.
  [todo tested in ?]


Source Filmmaker

Renderização incorreta do rosto de um cubemap HDR no Source Filmmaker.
Icon-Bug.pngErro:Os cubemaps HDR com tamanho inferior a 64x64 incorporados no Team Fortress 2 Team Fortress 2 e em alguns outros jogos geralmente exibem artefatos gráficos em reflexos devido ao fato de a última face de cada cubemap não ser renderizada corretamente no Source Filmmaker Source Filmmaker. Embora a reconstrução de cubemaps nele normalmente corrija o problema, atualmente não é possível fazer isso, pois o Source Filmmaker Source Filmmaker gera texturas em branco.
PlacementTip.pngGambiarra:Se a recompilação de uma versão especial de um mapa afetado com o tamanho de 64x64 (ou superior) do env_cubemap não for uma opção, mova o arquivo do mapa para a pasta Alien Swarm Alien Swarm's 🖿maps, crie seus cubemaps nesse jogo e, em seguida, mova o arquivo de volta para a pasta Source Filmmaker Source Filmmaker's.
  [todo tested in ?]
Note.pngNota:O arquivo “gameinfo.txt” do Alien Swarm' precisa ser modificado para esse procedimento, de modo que o jogo possa ter acesso aos recursos usados pelos mapas de outros jogos para não criar cubemaps com texturas ou modelos ausentes. A seção “SearchPaths” do arquivo deve ter a seguinte aparência:
"SearchPaths"
{
	"Game"	"|gameinfo_path|."
	"Game"	"swarm_base"
	"Game"	"platform"
	"Game" "..\SourceFilmmaker\game\usermod"
	"Game" "..\SourceFilmmaker\game\tf_movies"
	"Game" "..\SourceFilmmaker\game\tf"
	"Game" "..\SourceFilmmaker\game\hl2"
}
Note.pngNota:As configurações do Team Fortress 2 Team Fortress 2 foram usadas no exemplo; considere a possibilidade de substituir as subpastas de jogos (somente aquelas dentro dos caminhos Source Filmmaker Source Filmmaker) pelas necessárias.
PlacementTip.pngGambiarra:Outra opção é remover manualmente o sphere map (face nº 7) das texturas de cubemaps HDR existentes. Consulte Criando uma textura de cubemap estática personalizada para obter mais informações.
Como alternativa, a exclusão dos arquivos de textura de cubemaps HDR afetados fará com que sejam usadas as versões LDR, que não sofrem com esse erro.

Deletando cubemaps

Várias ferramentas possibilitam a exclusão de cubemaps desnecessários ou desatualizados; o BSPZIP é uma ferramenta oficial de linha de comando que geralmente é a opção preferida para esse procedimento, permitindo um uso improvável de corromper o arquivo de mapa devido ao uso indevido. Para excluir cubemaps, execute o seguinte comando na pasta 🖿maps:

..\..\bin\bspzip -deletecubemaps nome_mapa.bsp
Note.pngNota:Substitua "nome_mapa" pelo nome real do mapa.
Warning.pngAtenção:A exclusão de cubemaps, na verdade, exclui todos os arquivos de textura (“.vtf”) atualmente incorporados ao mapa, portanto, recomenda-se não incorporar texturas personalizadas antes de excluir cubemaps.

Extraindo cubemaps

Nos casos em que um mapa tiver de ser recompilado com pequenas alterações (e seus cubemaps construídos desaparecerem como resultado), extraí-los antecipadamente fará com que não seja necessário passar por todo o processo de construção de cubemaps novamente. Para extrair cubemaps com o BSPZIP, crie uma pasta que conterá os cubemaps extraídos dentro da pasta 🖿maps e, em seguida, execute o seguinte comando:

..\..\bin\bspzip -extractcubemaps nome_mapa.bsp "nomepasta"
Note.pngNota:Substitua “‘’nome_mapa‘’” pelo nome real do mapa e “‘’nomepasta‘’” pelo nome real da pasta para a qual extrair os cubemaps.


Incorporação de cubemaps

Para que o BSPZIP faça com que um mapa use cubemaps extraídos, crie um arquivo de texto dentro da pasta 🖿maps. O conteúdo do arquivo deve ser semelhante a este:

materials/maps/nome_mapa/c-128_384_64.hdr.vtf
nomepasta\materials\maps\nome_mapa\c-128_384_64.hdr.vtf
materials/maps/nome_mapa/c-128_384_64.vtf
nomepasta\materials\maps\nome_mapa\c-128_384_64.vtf
materials/maps/nome_mapa/c448_-256_64.hdr.vtf
nomepasta\materials\maps\nome_mapa\c448_-256_64.hdr.vtf
materials/maps/nome_mapa/c448_-256_64.vtf
nomepasta\materials\maps\nome_mapa\c448_-256_64.vtf
materials/maps/nome_mapa/cubemapdefault.vtf
nomepasta\materials\maps\nome_mapa\cubemapdefault.vtf
Note.pngNota:Substitua “‘’nome_mapa‘’” pelo nome real do mapa, os nomes de arquivo dos cubemaps pelos nomes corretos e “‘’nomepasta‘’” pelo nome real da pasta que contém os cubemaps extraídos.

Um arquivo requer duas linhas dedicadas (caminhos): a primeira linha representa o caminho que será usado no arquivo de mapa, enquanto a segunda é o local real do arquivo a ser incorporado no arquivo de mapa. No exemplo, foram usados caminhos de localização relativos, mas eles também podem ser absolutos. Quando o arquivo de texto estiver pronto, execute o seguinte comando:

..\..\bin\bspzip -addlist nome_mapa.bsp texto.txt novomapa_nome.bsp
Note.pngNota:Substitua “‘’nome_mapa‘’” pelo nome real do mapa, “‘’texto‘’” pelo nome real do arquivo de texto e “‘’newmap_name‘’” pelo nome real do mapa ou por um novo nome que não substitua o arquivo original (e, em vez disso, crie um arquivo separado).

Renomeação de um mapa

Para que os cubemaps criados funcionem, eles devem estar localizados em uma pasta com o nome do mapa; essa pasta é criada automaticamente no arquivo de mapa durante o processo de criação. Renomear o arquivo de mapa não renomeará também a referida pasta e, portanto, os cubemaps não serão acessados. Alguns aplicativos de terceiros permitem renomear a pasta, embora não seja aconselhável fazê-lo, pois isso pode corromper o arquivo. Em vez disso, exclua e reconstrua os cubemaps ou reverta o mapa para seu nome original.

Veja Também