Cubemaps
As a courtesy, please do not edit this while this message is displayed.
If this page has not been edited for at least several hours to a few days, please remove this template. This message is intended to help reduce edit conflicts; please remove it between editing sessions to allow others to edit the page.
The person who added this notice will be listed in its edit history should you wish to contact them.
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.
Um cubemap é uma textura que representa uma representação tridimensional de uma área. 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 no translation ) 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.
- PARA PESSOAS COM EPILEPSIA: A criação de cubemaps em jogos executados em Vulkan, como 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, 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 (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 oepisodic/maps
() 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
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)
- 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)Nota: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, adicione
-autocubemap
à sua linha de comando em Hammer. O jogo criará automaticamente cubemaps - O Slammin' VBSP apresenta o comando
-nodefaultcubemap
, que ignora a geração automática de cubemaps skybox na compilação do mapa
.
LDR
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:
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 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 |
Building cubemaps in specific games
Black Mesa: Source
To build cubemaps in Black Mesa maps, the game has to be launched with these parameters: -oldgameui -dev -console +r_4way_use_fast_normals 0 +mat_specular 0
Then, load the map and submit the buildcubemaps
command into the console.
Half-Life: Source
maps
folder of a game in the same engine branch (such as Half-Life 2), build its cubemaps in that game, then move the file back into Half-Life: Source's folder.Half-Life 2 (20th Anniversary Update)
episodic/maps
), instead of hl2/maps
, preventing the cubemaps from embedded into the map file.
You may also see this error message generated on the console:
vtex failed to compile cubemap! Unable to remove \steamapps\common\half-life 2\episodic\materials\maps\<map name>\<cubemap location>.vtf
-game hl2
command line argument. For Episodes, launch the game through Steam > Tools (or using -game episodic
or -game ep2
).Portal 2
dlc2
by default).
Portal 2: Community Edition
buildcubemaps 2
) doesn't currently work in Portal 2: Community Edition.
buildcubemaps
command, reload the map, then run the command again. Successively repeat these steps if necessary.
Source Filmmaker
maps
folder, build its cubemaps in that game, then move the file back into Source Filmmaker's folder.- Nota:Alien Swarm's "gameinfo.txt" file needs to be modified for this procedure so that the game can have access to assets used by other games' maps not to build cubemaps with missing textures or models. The file's "SearchPaths" section should look like this:
"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" }
- Gambiarra:Another option is to manually remove the sphere map (face #7) from the existing HDR cubemap textures. See Creating a custom static cubemap texture for more info.
Alternatively, deleting the affected HDR cubemap texture files will cause the LDR versions to be used, which do not suffer from this bug.
Deleting cubemaps
Several tools make it possible to delete unnecessary or outdated cubemaps; BSPZIP is one official, command-line tool which is usually the preferred option for this procedure, allowing for an usage unlikely of corrupting the map file due to misuse. To delete cubemaps, execute the following command within the maps
folder:
..\..\bin\bspzip -deletecubemaps map_name.bsp
Extracting cubemaps
In cases where a map has to be recompiled with minor changes (and its built cubemaps vanish as a result), extracting them beforehand will make it not necessary to go through the whole cubemap-building process again. To extract cubemaps with BSPZIP, create a folder that will contain the extracted cubemaps inside the maps
one, then execute the following command:
..\..\bin\bspzip -extractcubemaps map_name.bsp "foldername"
Embedding cubemaps
For BSPZIP to make a map use extracted cubemaps, create a text file inside the maps
folder. The file's content should look like this:
materials/maps/map_name/c-128_384_64.hdr.vtf foldername\materials\maps\map_name\c-128_384_64.hdr.vtf materials/maps/map_name/c-128_384_64.vtf foldername\materials\maps\map_name\c-128_384_64.vtf materials/maps/map_name/c448_-256_64.hdr.vtf foldername\materials\maps\map_name\c448_-256_64.hdr.vtf materials/maps/map_name/c448_-256_64.vtf foldername\materials\maps\map_name\c448_-256_64.vtf materials/maps/map_name/cubemapdefault.vtf foldername\materials\maps\map_name\cubemapdefault.vtf
A file requires two dedicated lines (paths): the first line represents the path it will use within the map file, whereas the second one is the actual location of the file to embed into the map file. Relative location paths were used for the example, but they can also be Absolute. Once the text file is ready, execute the following command:
..\..\bin\bspzip -addlist map_name.bsp textfile.txt newmap_name.bsp
Renaming a map
For built cubemaps to work, they must be located in a folder that is named after the map; this folder is automatically created within the map file during the building process. Renaming the map file will not also rename said folder, and therefore cubemaps will not be accessed. Some third-party apps allow renaming the folder, though it is not advisable to do so as it may corrupt the file. Instead, either delete and then rebuild the cubemaps, or revert the map to its original name.
See also
- env_cubemap
- $envmap
- parallax_obb - For Parallax Corrected Cubemaps.