Cubemaps
Muchos material es reflectantes deben combinarse con datos externos para que el motor de Source puedan generar correctamente su apariencia. Estos datos se almacenan como Cubemap (Mapa de cubos), una textura que representa una representación tridimensional de un area. El motor Source usa entidades env_cubemap como puntos de muestra para generar estas texturas, y guardar los cubemaps dentro del archivo .bsp de cada mapa. Al procesar materiales especulares y cartografiados por el entorno, los utiliza para generar entornos con mayor precisión. En otras palabras, un cubemap crea las texturas que reflejará una superficie reflectante.
Construir cubemaps
Una vez que un mapa ha sido compilado e iluminado por VBSP y VRAD (respectivamente), se pueden construir los cubemaps. Después de que se cargue el mapa, usa el comando buildcubemaps
en la consola para comenzar a construir los cubemaps para el nivel. Aquí podrá ver cada faceta del renderizado de cubemap (seis por cubemap) y esto puede demorar unos segundos o minutos, según la configuración de su sistema. Una vez terminado, el mapa o el juego deben reiniciarse para que los cubemaps se apliquen correctamente a todas las superficies.
mat_specular
a 0 antes de colocar buildcubemaps
o tendra reflejos incorrectosbuildcubemaps
antes de renombrar y empaquetar el BSP.buildcubemaps
dos veces, por lo que sus superficies reflectantes en las reflexiones también tendrán reflejos de la primera construcción.HDR
Si el mapa se ha compilado con la opción de iluminación HDR habilitada en VRAD , los cubemaps deben estar integrados en los modos HDR y LDR (no HDR). Construir cubemaps en un solo modo significará que los cubemaps no estarán presentes en el otro modo. Para obtener información sobre cómo crear cubemaps en HDR, vease HDR Lighting Basics .
los Cubemaps que deben ser construido para los mapas LDR y HDR. Suponiendo que ya está en el modo HDR y que su mapa se haya cargado desde la compilación (VRAD debe tener el parámetro '-both
' activado). Ve a la consola y ejecuta los siguientes comandos:
buildcubemaps mat_hdr_level 0 (Para ir a LDR) restart (Para recargar el mapa) buildcubemaps mat_hdr_level 2 (Para volver a HDR) restart (Para recargar el mapa)
Team Fortress 2 / Juegos Source 2012+
Team Fortress 2 no tiene un cubemap predeterminado aplicado a superficies reflectantes. (También hay problemas similares con algunas instalaciones de Portal 2 , excepto que los cubemaps no se muestran.) Todo lo brillante brillará con una textura a cuadros rosa y negro. Si tuviera que construir cubemaps ahora y uno de sus cubemap puede ver una gran superficie brillante; El cubemap lo registrará en sus 6 imágenes. Eso significa que algunos objetos podrían brillar como si hubiera algo que brillara a su lado con la textura rosa y negra. Para resolver esto, necesita construir los cubemaps con especular desactivado. Para construir cubemaps para su mapa TF2, vaya a la consola y ejecute los siguientes comandos:
Construyendo Cubemaps para LDR o HDR solamente::
sv_cheats
antes de cargar el mapa; se ejecutará automáticamente mat_reloadallmaterials
justo después de que el mapa se haya cargado y hará que el menú se congele por un momento.mat_specular
a "0" bantes de cargar un mapa, por lo que se tarda mucho menos en completar que hacer mientras o despues de que se haya cargado un mapa.mat_specular 0 map <su mapa> sv_cheats 1 buildcubemaps disconnect sv_cheats 0
La creación de cubemaps para HDR requiere que repita estos pasos después de cargar su mapa mientras el HDR está habilitado.
sv_cheats 1
) antes de ejecutar el comando buildcubemaps
.Cubemaps después de la actualización de SteamPipe
Debido a la actualización de SteamPipe, un problema reconocido podría ser la creación de los cubemaps sin resultados efectivos. Según una discucion thread, este problema se puede solucionar siguiendo estos pasos:
- Coloca entidades env_cubemap en ubicaciones validas en su mapa, y compilelo. Importante: el nombre debe ser mas corto que 30 caracteres (incluido la extension .BSP), o el archivo .BSP no sera escribible. tambien, no cambie el nombre del mapa despues de compilarlo, o los cubemaps no funcionaran.
- Use un pakfile editor al .BSP (Por ejemplo: Vide o Pakrat. Usar esas herramientas no estan incluidos en este tutorial.), e inicia tu .BSP
- Elimina todos los archivos de tipo como "Texture" o "Texture (HDR). (No los archivos "Material", solo los .VTF)
- Guarda el archivo editado .BSP
- Copia tu mapa devuelta a tu carpeta de mapas de tu juego.
- Abre la consola y escribe: "map -Nombre del mapa-". (Ejemplo: "map ttt_mars_colony_cubemap".)
- Una vez en juego, abre la consola denuevo y escribe esto: "mat_specular 0" y "buildcubemaps".
- Espera a que se construyan los cubemaps, y despues re-habilita el "specular mapping" con "mat_specular 1" y recarga todos los materiales con "mat_reloadallmaterials"
Nota: Si desea empaquetar el contenido personalizado en su mapa, hágalo después de crear los cubemaps.
Source Filmmaker
La construcción de Cubemaps en Source Filmmaker actualmente está dañada y solo mostrará una única cara de un solo cubemap. Para crear mapas de Source Filmmaker correctamente, copie el archivo de mapa y los recursos utilizados por el mapa (texturas, modelos, etc.) en Alien Swarm . Como la versión de rama del motor es muy similar, no es necesario volver a compilar mapas o modelos por separado, bastará con copiar los archivos. Una vez que se hayan renderizado las caras, su mapa ahora contendrá cubemaps y podrá copiarse nuevamente en Source Filmmaker. Esto solo funcionará con la versión más nueva de la rama del mapa, ya que los mapas de TF2 o Garry's Mod bloquearán el juego al cargarse.
La versión 'sin copia' adicional para Hammer y construir está usando una configuración de modificación adicional en Alien Swarm con parches de búsqueda 'alienígenas' (relativos) al contenido de sfm. todo: pathes absolutos.
Ejemplo para la ubicación 'común':
"SearchPaths" { "Game" "|gameinfo_path|." "Game" "swarm" "Game" ".\..\SourceFilmmaker\game\tf_movies" "Game" ".\..\SourceFilmmaker\game\tf" "Game" ".\..\SourceFilmmaker\game\usermod" "Game" ".\..\SourceFilmmaker\game\hl2" "Game" "swarm_base" "Game" "platform" }
Portal 2
Cuando quiera crear cubemaps para un mapa que se encuentra en "Portal 2/portal2/maps" (Hammer copia los mapas allí de manera predeterminada) Portal 2 se bloqueará porque espera que el mapa se encuentre en "portal2_dlc2/maps". Entonces, si desea arreglar el bloqueo, simplemente copie su mapa en "Portal 2/portal2_dlc2/maps" (o la carpeta de mapas de su mod personalizado) vuelva a cargarlo y vuelva a construir los cubemaps. Debería de funcionar ahora.
Left 4 Dead 1/2
Para crear cubemaps en Left 4 Dead 2, la configuración del sombreador debe establecerse en media. Si cambia la configuración del sombreador mientras se carga un mapa, es posible que tenga que volver a cargarlo, ya que algunas veces las superposiciones (overlays) terminan con una iluminación interrumpida, lo que hace que aparezcan unlit . Una vez que se construyen los cubemaps para un mapa, debes reiniciar el juego para probarlos. A veces debes reiniciar el juego para construir cubemaps en un segundo mapa también.
Pruebas
Los cubemaps se prueban mejor usando el comando impulse 81
en la consola. A continuación, escriba give
weapon_cubemap en la consola.
impulse 81 ; give weapon_cubemap
Esto reemplaza el modelo de arma actual con el "cubemap weapon "; Un conjunto de esferas, cada una con diferentes superficies reflectantes. Al moverse alrededor del nivel, es posible ver qué los cubemaps se está aplicando en esa posición en el espacio en un momento dado, así como si ese cubemaps describe con precisión la iluminación y el color del área
Performance
La entidad env_cubemap
permite al usuario definir qué tan grande es la resolución de textura del cubemaps de destino. Si bien una resolución de textura más grande proporcionará resultados más precisos y nítidos cuando se muestra, también incurre en un costo en la memoria de textura. La mayoría de los cubemaps solo deben usar la configuración predeterminada en la entidad env_cubemap
para su resolución de textura (32x32 píxeles para cada superficie). Esto es generalmente aceptable en condiciones normales. Algunas excepciones pueden ser necesarias para áreas de alta reflectividad o detalle, tales como piezas para actuar.
Debido a que las superficies deben aproximarse a sus alrededores a través de cubemaps, el uso de demasiados cubemaps en un área pequeña puede causar discontinuidades visuales notables al moverse. Para áreas de alta reflectividad, generalmente es más correcto colocar un mapa de cubos en el centro de la superficie y no más. Esto evita costuras o saltos a medida que cambia la vista.
Para determinar el costo de los cubemaps en cualquier área, primero observe la categoría World Rendering usando el comando +showbudget
de la consola. Si esta categoría está registrando un costo inusualmente alto, puede deberse al uso de demasiados mapas en un área. Una solución simple para verificar este escenario es usar Hammer para ocultar todos los cubemaps en el mapa, y luego compilar y ejecutar el mapa nuevamente. Si el rendimiento es notablemente mejor, es posible que deba reducirse la densidad del mapa de cubos o la resolución. Eventualmente, esto también se puede verificar apagando los cubemaps, usando mat_specular 0
para deshabilitarlos, sin embargo, esto necesita confirmación.