Curso de Unreal para Aximmetry. Sesión 4 (parte 1) - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Materiales y texturas
Hoy lo que vamos a hacer básicamente es rematar ya la parte de iluminación baqueada, que es la más difícil, la otra ya visteis que simplemente es ir tirando luces y tocando intensidades, tampoco tiene mucho más, pero esta sí que tiene un poquito más de chicha, entonces hoy terminaremos la parte de iluminación baqueada y nos meteremos con materiales, la parte de shaders, o sea, cómo decirle a nuestras texturas, a nuestros objetos, cómo se tienen que comportar con respecto a la luz,
00:00:01
Y al ángulo de cámara. Entonces, por hacer un repasito. Ayer, iluminación baqueada, bucket light. Entonces, había como cuatro elementos que teníamos que tocar para que esto funcionase bien, ¿vale?
00:00:31
Por un lado, lo que ya habíamos tocado en Lumen previamente, que era la intensidad directa y la intensidad indirecta de las luces, ¿vale?
00:00:58
Que estos eran parámetros del actor, si os acordáis. Aparecen en el panel de detalles.
00:01:06
Luego, había que tocar también la resolución de los lightmaps.
00:01:12
¿Os acordáis que ayer seleccionamos todas las geometrías y filtramos entre los detalles que tenía y pusimos lightmap
00:01:17
y nos aparecía un parámetro que se llamaba overridden lightmap resolution, ¿vale?
00:01:25
Eso realmente, así realmente no es como se hace, eso es como la forma rápida, porque si os dais cuenta,
00:01:31
nos lo está diciendo el nombre, es un sobreescribir, estamos sobreescribiendo, overridden, la resolución del objeto.
00:01:35
La forma buena de hacerlo, os la voy a contar ahora, que es entrar dentro de la malla, mirar cómo están las UVs
00:01:45
Y si están mal, redistribuirlas y luego asignarle la resolución, ¿vale? Pero bueno, en definitiva, el resultado final es parecido.
00:01:51
Diego, perdona, buen día. Es que no sabía la pieza de las preguntas. Es que es el UV, es que he dicho que es lo del UV, perdona, que será un idiota.
00:02:01
En algún momento os habéis comido el típico conejo
00:02:11
de chocolate
00:02:20
Imaginaros este conejo de chocolate como si fuese
00:02:22
un modelo tridimensional, que lo es
00:02:38
¿vale? cuando le quitas el
00:02:40
cuando le quitas el papel
00:02:42
si no lo rompes, si no eres un salvaje
00:02:43
porque estás con el ansia de chocolate
00:02:46
el papel al final
00:02:48
es así ¿verdad? más o menos
00:02:50
¿no? cuando tú
00:02:55
lo desenvuelves se te queda
00:02:57
como un cuadradito, vale pues
00:02:59
esto es lo que pasa en 3D con todos los
00:03:00
objetos, que los objetos tienen
00:03:02
la geometría y la geometría es como una especie de piel
00:03:04
¿no? entonces
00:03:07
esa piel le tienes que hacer
00:03:08
una serie de cortes
00:03:10
una serie de cortes para poder desplegarlo en un espacio bidimensional, ¿vale? Entonces, ese espacio bidimensional tiene dos ejes, el eje X y el eje Y, lo que pasa que aquí, en lugar de llamarse X e Y, se llama U y V, ¿vale?
00:03:12
Entonces todos estos trocitos yo los despliego y los estiro. ¿Para qué? Porque yo al final las texturas que le tengo que poner a este objeto no son tridimensionales, son bidimensionales. Es una textura que tiene eje X y eje Y.
00:03:33
Es un cuadrado. Como si fuera una especie de fascia digital de la movida.
00:03:48
Claro, eso es. Si nos vamos a la parte fisiológica del ser humano, la fascia, que es como esa telilla que recubre los músculos, pues esto es algo parecido.
00:03:54
Lo que pasa es que, claro, normalmente las geometrías no se pueden desplegar del tirón, necesita marcarle una serie de cortes por los que desplegar.
00:04:06
Esos cortes se llaman costuras o seams en inglés y lo que pasa es que cuando tú haces una serie de cortes, pues lo que haces es partir la geometría en islas.
00:04:15
Esas islas de las que yo hablo en clase son estos trocitos de la geometría 3D cuando la paso al espacio 2D.
00:04:29
¿Vale? Entonces, estas son las uves. ¿Y qué pasa? Que si yo esta isla la solapo encima de esta, si yo esta isla la pongo encima de esta y él tiene que calcular la luz, claro, no sabe a qué parte de la geometría asignar la luz, a una o a otra, entonces la pinta de negro.
00:04:36
Y eso es un error. Por eso os decía que nosotros en ocasiones cuando preparamos un modelo 3D para asignarle texturas, podemos tirar de este tipo de recursos para ahorrar resolución de textura.
00:04:53
Porque a lo mejor estas dos partes son simétricas, o sea, a efectos de geometría son iguales, pero a efectos de luz no. A efectos de luz puede tener sombra por un lado y luz por otro, ¿no? ¿Se entiende? Entonces tiene que estar separado.
00:05:07
¿vale? ¿Ha entendido más o menos
00:05:23
qué son las UVs?
00:05:27
Lo del chocolate no falla nunca.
00:05:29
Sí, pero también se suele poner, por ejemplo,
00:05:32
la esfera de la Tierra. Al desplegarla
00:05:33
en un mapa bidimensional
00:05:35
sufre tensión.
00:05:36
Y ahí sale la Tierra, que es más grande de lo que debería.
00:05:39
Para pasar la Tierra
00:05:41
a un formato rectangular, tienes que
00:05:43
partirla por algún sitio y estirarla.
00:05:45
Pues es lo mismo. Lo que pasa es que aquí
00:05:47
normalmente suele ser...
00:05:49
Esto lo pongo yo de ejemplo de imagen
00:05:51
equirectangular.
00:05:53
porque es muy parecido, es como que se deforma
00:05:53
por los polos pero la parte central
00:05:56
se queda
00:05:58
con las mismas proporciones
00:05:59
pero es parecido, al final es darle
00:06:02
un corte y desplegarlo
00:06:04
para poder representarlo en un
00:06:07
sistema bidimensional
00:06:09
y lo de las V no os liéis
00:06:10
es simplemente por esto
00:06:13
es porque el eje horizontal es la U
00:06:14
y el eje vertical de la textura es la V
00:06:16
Solo un comentario ya que nos hemos salido
00:06:18
del tema, como el otro día salió la duda de que eran
00:06:22
las texturas tileables, tileable
00:06:24
en inglés se dice simples, es decir, sin costura.
00:06:26
¿Y cuál es el problema? Bueno, digo
00:06:29
ahora seguramente lo explica mejor, pero el problema es que
00:06:30
muchas veces hay texturas que no,
00:06:32
por ejemplo, todo un suelo de madera
00:06:34
y después me cojo una textura que si lo
00:06:36
apunto por un lado y por otro no se ve la
00:06:38
costura, por eso es simples, entonces
00:06:40
no es una textura cubriendo todo el cuerpo
00:06:42
en suelo, sino que es
00:06:44
una baldosa, una tile, se llama,
00:06:46
repetida muchas veces.
00:06:49
¿Qué pasa? Que eso, para generar las V,
00:06:50
El baqueo de luces no nos vale porque necesita una textura grande, un light map. ¿Correcto?
00:06:52
Eso es. Al final, en 3D normalmente la primera división que se hace entre tipos de objetos son objetos que van a llevar texturas tileables o texturas que se pueden repetir.
00:06:58
Yo las puedo hacer más grandes o más pequeñas. Esto de todas maneras lo vamos a entender mejor cuando lo hagamos, que lo vamos a hacer hoy.
00:07:11
Y luego objetos únicos, o sea, objetos cuyas islas han sido distribuidas en el espacio V de una determinada manera, que si yo cambio el tileado de esto ya no me valen.
00:07:15
Eso lo prefiero contaroslo cuando lo veamos con un objeto porque va a ser mucho más gráfico, ¿vale?
00:07:30
Pero en definitiva, la conclusión es que nosotros como estamos trabajando con texturas, tanto para los materiales como para la luz,
00:07:36
se puede dar la circunstancia de que lo que tengamos para la textura no nos valga para la luz y eso hay que solucionar, ¿vale?
00:07:48
Y eso es lo que vamos a hacer aquí.
00:07:54
Bueno, entonces, sigamos. Voy a borrarme al conejito. Al final lo vais a enganchar con el 3D. Aquí hay mucho a renegar, pero verás tú. Al final el Jorge lo deja todo y se pone a hacer 3D.
00:07:55
Bueno, entonces, decíamos que teníamos que tocar de las luces, perdón, que teníamos que tocar de las luces su intensidad directa y su intensidad indirecta, la de rebote.
00:08:20
De los objetos, de los actores, teníamos que tocar la resolución del lightmap.
00:08:41
Para tener cuanta más resolución tengo del lightmap, mejor se pinta la luz.
00:08:48
¿Os acordáis que ayer en las pruebas que hicimos de iluminación, cuando teníamos resoluciones de 64x64,
00:08:53
claro, en objetos grandes, como no tenía suficiente resolución de textura para pintar la luz, se veían los píxeles.
00:08:59
Sobre todo cuando tenemos líneas diagonales.
00:09:05
cuando son líneas horizontales o verticales lo que hace la luz no se ve tanto
00:09:07
pero al final como la luz se representa en texturas y las texturas se componen de píxeles
00:09:11
son matrices de píxeles, pues si el píxel es muy grande se ve como un dentado
00:09:16
ese dentado en 3D se llama aliasing, que seguro que en imagen real también pasa en algún momento
00:09:20
entonces para evitar eso pues la solución que tenemos a nivel de lightmap es subir la resolución
00:09:27
Nosotros pasamos de 64x64 a 256x256 y ya vimos que el resultado era bastante mejor. Luego dijimos que había un botoncito dentro de Build, arriba, en el panel de arriba, dentro de Build, que era al botón que le dábamos para construir la luz, que se llamaba Lighting Quality.
00:09:34
Y aquí teníamos varios niveles. El nivel preview, el nivel medium, el nivel high y el nivel production. Entonces, decíamos que esto lo que hacía era incrementar, aparte del número de fotones, otra serie de parámetros que nosotros no vemos por detrás que hacen que la luz se calcule con más calidad.
00:09:58
¿Vale? Yo os decía que lo ideal es arrancar siempre en Medium porque Preview es demasiado poco, da resultados tan malos que te pueden llevar a error. Al principio yo partiría siempre del primer cálculo de iluminación con Medium y cuando ya en Medium más o menos se ve bien, pues yo lo que hago es subir a High.
00:10:34
Y muy raras veces me voy a production, porque production tarda mucho en comparación con el beneficio de calidad que nos da en términos de iluminación, ¿vale? Entonces yo arrancaría con medium, haría muchas pruebas con medium y las últimas pruebas las haría con high, ¿vale?
00:10:52
¿Por qué? Porque cada vez que yo voy subiendo en esta escala, los tiempos de cálculo de iluminación suben. Igual que cuando yo voy subiendo en esta escala. Cuando yo voy subiendo la resolución de los lightmaps, como las texturas que tiene que pintar son más grandes, tienen más resolución, pues tarda más tiempo.
00:11:08
Esto eran tres de los factores, pero luego había un cuarto...
00:11:29
Disculpa, Diego. Disculpa, yo tenía una duda con esto que ayer me quedé con ella todavía. Esto es solamente para hacer una previsualización, ¿verdad? Porque luego el escenario se va a calcular siempre alta calidad, entiendo, ¿no? Cuando lo integremos dentro de Aximetry, esto ya no juega a baza, ¿o sí?
00:11:32
No, sí, sí, o sea, de hecho
00:11:52
nosotros tenemos que conseguir
00:11:54
en esta fase la máxima calidad posible
00:11:57
porque eso es lo que luego
00:11:59
se va a ver en Aximeter
00:12:01
Vale, o sea que sí que tenemos que hacer el render
00:12:02
tenemos que terminar haciendo como un render o algo así
00:12:05
¿no? En la calidad
00:12:07
de luz, es una especie
00:12:09
de render de luz, por eso os decía que esta es la única
00:12:11
fase en la que Unreal no es real time
00:12:13
Ah, vale, vale, vale, vale, vale, entendido
00:12:15
me había perdido eso, vale
00:12:17
Eso es. Vale, vale, gracias
00:12:18
O sea, estamos haciendo todo esto para que se vea muy bien y que tengamos mucho rendimiento disponible, porque normalmente no solemos tener una RTX 4090 de tarjeta gráfica disponible todos los días. Entonces, si queremos trabajar con ordenadores de gama media, tenemos que saber hacer esto, si no, los escenarios no van a tirar.
00:12:21
sobre todo si vamos a ir a Ximetry
00:12:40
al final, pensad que lo que estamos haciendo en Ximetry
00:12:45
es hacer una captura del visor
00:12:48
no estamos haciendo un render, yo aquí os voy a enseñar
00:12:49
a hacer un render tradicional
00:12:51
de vídeo, pero eso tarda más tiempo
00:12:53
que lo que estamos viendo en tiempo real
00:12:56
sin embargo en Ximetry no, en Ximetry es
00:12:57
lo que se ve en el visor es lo que renderizas
00:12:59
pero porque tienes ya la renderización hecha
00:13:01
dijéramos esta
00:13:03
has hecho este pre-render de iluminación
00:13:04
que es el que te permite luego
00:13:08
y sobrado de rendimiento
00:13:09
vale, vale, vale, fenomenal, gracias
00:13:11
entonces
00:13:13
el último parámetro que había que
00:13:15
tocar para controlar la iluminación baqueada
00:13:17
eran los parámetros de world settings
00:13:19
estos eran los parámetros del mundo
00:13:22
y dentro de los world settings
00:13:23
teníamos que venir a
00:13:25
el apartado que se llama
00:13:27
light mass
00:13:29
settings
00:13:30
os decía ayer
00:13:32
que light mass
00:13:35
Es masa de luz, es la forma que tiene Unreal de llamar al cálculo de iluminación. Pues te lanza una masa de fotones y la calcula. Y aquí teníamos una serie de parámetros importantes.
00:13:37
Teníamos el... Siempre se me olvidan, es que tienen nombres muy raros. Un momento. Teníamos el Static Lighting Level Scale. Esto yo normalmente los escribo así con las iniciales. Static Lighting Level Scale.
00:13:49
que os decía que yo normalmente empiezo poniéndolo en 0.5 y como mucho llego a 0.3.
00:14:09
Os voy a dejar aquí ya escrita la escala para cuando lo tengáis que hacer para que lo tengáis claro.
00:14:17
Este lo que hacía era controlar el número de muestras en escena que utilizaba el motor de render
00:14:23
para establecer qué partes están en sombra, qué partes están en luz, qué partes están en penumbra,
00:14:31
para establecer los degradados de luz entre entre la parte de sombra y la parte de luz o sea lo que
00:14:36
hace andreal es tirar muestras ahora de hecho las voy a enseñar las muestras para que las veáis es
00:14:43
muy curioso porque claro es todo tridimensional tiene que hacer como una especie de matriz de
00:14:48
puntos para medir en esos puntos es como sensos son como sensores que determinan cómo es la luz
00:14:53
en cada parte de la escena y con eso pinta los light maps en plan de aquí estoy viendo que la
00:15:00
luz viene de izquierda a derecha con tanta intensidad y con tanto color vale pues eso
00:15:05
lo pinto en la textura vale entonces ese es el primero el segundo es el number of indirect
00:15:09
lighting bounces que este era number of indirect lighting bounces que este lo que controlaba era
00:15:19
Es un multiplicador general de la iluminación indirecta, ¿vale? O sea, controla este parámetro, pero en lugar de controlarlo por luz, lo controla por escena, por nivel.
00:15:28
Entonces este os decía que siempre vamos cortos de rebotes porque nuestra capacidad de procesamiento es limitada. Entonces como este valor no incrementaba mucho el tiempo de render pero sí que me daba mucha más calidad en términos de iluminación, yo siempre lo ponía en 10 desde el principio.
00:15:43
luego
00:16:04
teníamos uno que era muy parecido
00:16:06
que era el number of indirect
00:16:09
siempre se me olvida
00:16:10
number of skylight
00:16:13
bounces
00:16:15
este es lo mismo que el de arriba pero solo con el
00:16:16
skylight, el anterior es
00:16:19
todas las luces menos el skylight
00:16:21
y este es solo el skylight
00:16:23
number of
00:16:25
indirect skylight bounces
00:16:27
y con este pasaba lo mismo
00:16:29
le pongo un 10
00:16:31
Si mi escena no tiene skylight, por lo que sea, imaginaros que hago un callejón oscuro de Nueva York, pues ahí no me hace falta skylight. A lo mejor con unas luces, simplemente con el rebote de esas luces ya consigo ese mood que necesito.
00:16:32
Si estoy haciendo una escena exterior o una escena de una casa que le tiene que entrar luz de fuera, pues sí me hace falta un skylight. Cada proyecto es diferente.
00:16:45
¿Vale? Entonces este igual, como no me repercute mucho en los tiempos de render, pues yo siempre lo pongo en 10. ¿Veis que son nombres muy raros pero luego son números muy fijos? Tampoco tenemos que darle muchas vueltas a esto. Empezamos a hacer pruebas con 0.5 y cuando ya tenemos todo más o menos fino pasamos a 0.3. ¿Vale?
00:16:53
Luego, teníamos uno que era muy importante, que era el indirect lighting quality. Lighting quality, este como su propio nombre indica, es la calidad de la luz indirecta, de la luz de rebote. En términos técnicos lo que hace es remuestrear, o sea, coge todas las muestras que hemos establecido con el primer parámetro y las relee, las analiza más veces para tener una información más fiable.
00:17:15
Y os decía también que entre el primero y el último siempre tiene que haber una relación a 1.
00:17:45
O sea, si este es el primero y este es el segundo, 1 por 2 tiene que ser igual a 1.
00:17:54
A ver, no, esto como me digan por ahí, no es que 1 por 2 tenga que ser igual a 1,
00:18:05
que este parámetro cuando lo multiplique por este, el resultado tiene que ser igual a 1 o más de 1.
00:18:12
Igual o mayor, ¿vale? Entonces, si estoy en 0,5, tendría que ponerlo en 2. Uy, en 2. Si estoy en 0,3, pues tendría que hacer la cuenta. O sea, 0,3, 1 partido 0,3, 3,33.
00:18:16
aquí yo le pondría 3,5
00:18:44
por ejemplo
00:18:46
¿vale? 3,5
00:18:47
si luego en el 3,5 le pongo 5
00:18:50
pues va a ser más de 1
00:18:52
el resultado, pero la calidad de la luz indirecta
00:18:54
va a ser mayor, ¿se entiende, no?
00:18:56
siempre tengo que
00:19:01
tender a que cuando yo multiplique este por este
00:19:02
sea 1 o más de 1, entonces
00:19:04
para 0,5, 2, para 0,3
00:19:06
3,5, a lo mejor
00:19:08
puedo bajar a 0,2 y ya me voy
00:19:10
a 10, claro, el salto
00:19:12
entre 2 y 10 en términos de calidad es muy grande, pero en términos de tiempo de render también lo va a ser. Cuidado con los números estos que pueden hacer que nuestros tiempos de render
00:19:14
para calcular la luz sean muy altos y luego el resultado final no sea tan apreciable. Perfecto. Y aquí había un parámetro más que no os conté ayer, que es un parámetro que afecta
00:19:25
directamente a los elementos movibles en la escena, o sea a los elementos que no se van a calcular en términos de luz y ese parámetro es este, es uno que se llama volumetric light map detail cell size,
00:19:39
¿Veis que aquí ya lo mismo? El valor que viene es un valor de 200. 200 unidades en Unreal son 2 metros. Significa que este parámetro, que es el volumetric lightmap, que os lo voy a enseñar para que lo veáis, porque es muy visual, fijaros.
00:19:56
esto es el volumetric light
00:20:19
veis que son bolitas
00:20:22
que son bolitas
00:20:29
que lo que hacen es
00:20:32
recibir, tener información de color
00:20:35
de luz
00:20:37
de intensidad
00:20:38
de las luces que hay en la arcena
00:20:40
esto es lo que os decía
00:20:43
esa matriz
00:20:46
y esa matriz os dais cuenta que es más densa
00:20:46
en la parte del light más important volume
00:20:49
que en el resto
00:20:51
vale
00:20:52
Pues, básicamente, ahora mismo, en la zona interior del light
00:20:55
más important volume, estas bolitas están a 2 metros,
00:20:59
que es este parámetro.
00:21:02
Claro, si yo quiero mover un objeto por la escena que sea
00:21:03
movible y que tenga una iluminación más coherente,
00:21:06
tengo que decirle a este valor que sea menor, ¿no?
00:21:09
Que las bolitas estén más juntas.
00:21:11
Entonces, yo diría que pongamos este valor, por ejemplo,
00:21:13
en 15 centímetros, ¿vale?
00:21:18
este se llama volumetric lightmap
00:21:21
detail cell size
00:21:24
volumetric
00:21:26
lightmap
00:21:31
detail cell size
00:21:32
vaya nombrecitos
00:21:35
en que
00:21:36
elemento estás del outliner
00:21:38
tocando estos world settings
00:21:41
o no
00:21:43
estoy en world settings
00:21:44
si no tenéis world settings
00:21:46
lo tengo
00:21:47
pero que no está vinculado
00:21:49
con
00:21:51
No, no, estos son parámetros del nivel
00:21:52
o sea, es independiente
00:21:57
de la online
00:21:59
Si puedes, cuando vayas al menú de estos, haz un con la lupa
00:22:00
porque aquí no se llegan a distinguir
00:22:03
las flechas
00:22:05
Maravilloso
00:22:05
¿Y cómo has sacado
00:22:07
el visor de las bolichas?
00:22:11
En el viewport
00:22:13
El visor de las bolichas tenemos que venir aquí arriba
00:22:14
a show
00:22:17
a la parte de abajo
00:22:19
donde pone Visualize
00:22:21
y abajo del todo
00:22:22
tenemos un
00:22:25
un checkbox
00:22:28
que nos permite ver
00:22:30
lo que es el volumetric lightmap
00:22:31
digo yo al cambiarle esto
00:22:33
y ponerlo en 15 como has hecho tú
00:22:39
dijéramos que la matriz
00:22:41
no la veo distinta
00:22:43
no me hace cambio
00:22:45
yo tampoco porque esto se
00:22:46
calcula cada vez que construyo la luz
00:22:48
ahora tengo que darle a build para que esto cambie
00:22:51
vale vale vale
00:22:53
Yo la cambio y la sigo teniendo a dos metros. Entonces, eso y además otra cosa. Si queréis tener iluminaciones muy finas, también es interesante quitar este checkbox de World Settings que se llama Compress Lightmaps. Esto lo que va a hacer es que no se compriman los lightmaps y que las texturas sean de más calidad.
00:22:57
¿Qué va a pasar con esto? Que van a ocupar más espacio en memoria de gráfica. Entonces, en función de cómo sea mi proyecto, si tengo muchos lightmaps y no están comprimidos, pues se puede llegar a llenar la tarjeta, la capacidad de la gráfica.
00:23:20
Cuando os compréis una gráfica y os dicen, tiene 12 gigas de VRAM o de tarjeta de vídeo. Pues esos 12 gigas son los que se van llenando con los lightmaps, con las texturas de los shaders y con las esferas de reflejo. Por ejemplo, que las esferas de reflejo, si os acordáis, también generaban una textura de 1024. Pues eso.
00:23:35
Yo normalmente cuando hacía info arquitectura siempre quitaba el compres lightmaps porque hace que cualquier artefacto raro que aparezca en la textura desaparezca, pero hay veces que es inapreciable según como sea el proyecto, entonces eso ya ahí os lo dejo a vuestra elección, yo lo voy a quitar, compres lightmaps porque yo tengo 24 gigas y voy sobradísimo, pero ya depende un poco de la máquina de cada uno, ¿vale?
00:23:58
entonces os lo dejo aquí apuntadito también para que lo tengáis
00:24:24
el compress lightmaps
00:24:28
le hacemos pan check
00:24:33
¿vale?
00:24:37
entonces si nosotros somos capaces de encontrar el equilibrio
00:24:41
entre estos cuatro factores
00:24:44
nosotros seremos capaces de tener buenas iluminaciones baqueadas
00:24:46
para nuestras escenas
00:24:54
¿vale?
00:24:56
este es un poco el rollo
00:24:58
Entonces, ¿qué voy a hacer yo? Como ya hicimos ayer un cálculo de iluminación con estos parámetros, voy a subírselos.
00:25:03
Además le he quitado el checkbox de compres lightmaps, con lo cual probablemente aquí me salgan más, más lightmaps.
00:25:11
¿Os acordáis que aquí podíamos comprobar cómo estaban mis lightmaps? Para la escena que tenía, para un máximo de 1024, estos contenedores,
00:25:18
O sea, lo último que vimos en clase ayer era que él iba metiendo los objetos como en contenedores, ¿no? En el canal rojo, en el canal verde, en el canal azul y en el alfa. ¿No? Todos estos. Vale, pues a mí para la escena que tengo aquí, el número de actores que tengo y su resolución me dice que ha necesitado 66 texturas de 1024. ¿Vale? Me lo dice aquí. Esto suele estar así, comprimido. ¿Vale? Vale, pues vamos a ver ahora, quitándole el compress lightmaps.
00:25:29
le voy a subir los valores un poquito, le voy a poner esto en 0.3 como decíamos antes, voy a acercarlo un poquito, en el static lighting level scale le vamos a poner aquí 0.3 y en el indirect lighting quality le vamos a poner aquí 3.5, vale, y ya está, teníamos build settings en medium,
00:25:59
yo creo que lo voy a dejar en medium todavía, y le habíamos subido la distancia de los volumetric lightmaps de 2 metros, o nos la habíamos bajado, de 2 metros a 15 centímetros, vale, entonces, vamos a hacer un cálculo de iluminación, build, build all levels, vale, build, build all levels,
00:26:29
Y esto os decía que lo que hacía era abrir un programita que aparece en la parte del desplegable del reloj de Windows que se llama Swarm Agent. Este es el que se encarga realmente de hacer el cálculo de fotones y de rebotes y de todo, de sombras, de luces y de pintarlo todo en texturas.
00:26:59
Utiliza este programa externo, veis que aquí abajo va subiendo la barrita
00:27:25
Todas estas líneas que se ven aquí son los hilos de mi procesador
00:27:29
Cada núcleo son dos hilos
00:27:34
Entonces si yo tengo 12 núcleos, tengo 24 hilos
00:27:35
Y eso hace que este cálculo se realiza por CPU
00:27:39
No es gráfica, este depende de nuestro procesador
00:27:45
Perfecto, fijaros, ya está calculado
00:27:51
Fijaros la densidad que tengo de bolas ahora. Se ve, ¿no? La densidad de bolas que tengo ahora. Y donde más denso es, es en la zona donde tengo el light más importante, volume. ¿Vale? ¿Se entiende, no? Con esto lo que tengo es un degradado más fino cuando yo mueva objetos que sean movibles.
00:27:57
Vamos a comprobarlo. Voy a quitar estas bolas para que no me molesten. Me vengo a Show, Visualize, Volumetric Lightmap. Pero veis que ya el cálculo de iluminación es bastante bueno.
00:28:21
ya los degradadores de la luz
00:28:45
se ven bastante bien
00:28:49
las sombras de contacto
00:28:50
más o menos funcionan
00:28:53
están bien
00:28:54
pero fijaros lo que pasa
00:28:56
chicos, claro esto es iluminación baqueada
00:28:58
si yo cojo este objeto
00:29:01
y lo muevo
00:29:03
veis lo que ha pasado
00:29:04
que se me quedan las sombras
00:29:06
pegadas, es lógico
00:29:09
es iluminación estática, la estoy pintando
00:29:10
en texturas, no es dinámica
00:29:13
se entiende, ¿no?
00:29:14
El por qué, vale, pues como yo sé, me voy a cargar este elemento que no lo quiero para nada, me voy a cargar este elemento que no lo quiero para nada y yo sé que aquí tengo una serie de elementos que van a ser movibles, este objeto, este objeto que es la pantalla y el ticker.
00:29:17
Pues estos tres los voy a seleccionar y en el panel de detalles, en lugar de ponerlos como estático, lo voy a poner como movible. Porque yo quiero que esta pantalla suba y baje. Y quiero que este ticker esté por aquí arriba y de repente aparezca.
00:29:37
vale
00:29:57
entonces fijaros que curioso
00:29:58
bueno claro cuando yo hago estas
00:30:01
cosas tengo que volver a calcular iluminación
00:30:04
porque si no se me quedarían
00:30:06
estas mierdecitas por aquí colgando
00:30:07
pero fijaros
00:30:10
como yo tengo esa malla
00:30:12
como yo tengo
00:30:14
esa malla
00:30:16
de bolitas cuando yo
00:30:16
ahora muevo
00:30:21
uy claro
00:30:23
esto ahora tengo que volver a
00:30:27
Tengo que volver a calcular la iluminación para que pierda el lightmap. Lo que pasa es que tiene la iluminación que tenía cuando estaba situada en ese punto. Voy a ponerlo por aquí. Vamos a dejarlo por ahí. Esto es nuevo. Qué curioso.
00:30:28
voy a probar con
00:30:48
un cilindrito
00:30:52
me ha sacado un cilindrito
00:30:54
aquí
00:30:57
este cilindrito
00:30:57
lo voy a hacer un poco más estrecho
00:30:59
para que se aprecie mejor lo que yo quiero
00:31:03
contaros
00:31:06
lo voy a poner en movible
00:31:07
veis que los objetos también tienen movilidad
00:31:09
estático, estacionario, movible
00:31:13
es porque si yo necesito
00:31:15
mover un objeto tengo que decirle
00:31:17
que sea movible
00:31:20
¿Vale? Si lo voy a calcular de manera estática lo pongo en estático. ¿Veis que el objeto ahora cambia en función de la zona del escenario en la que lo pongo? Porque tiene esa información de volumetric lightmaps.
00:31:21
si no tuviéramos esa malla
00:31:38
no podríamos
00:31:41
tener objetos movibles en la escena
00:31:44
y que se vieran coherentemente, vale
00:31:46
ese es un poco el sentido
00:31:47
del volumetric lightmap
00:31:49
vale, perfecto
00:31:51
pues entonces
00:31:54
esta parte más o menos la tenemos
00:31:55
controlada, mira fijaros aquí
00:31:58
en esta parte del techo veis que le falta
00:31:59
resolución de lightmap
00:32:02
veis que se me ven mucho los
00:32:03
se me ven mucho los píxeles
00:32:05
aquí tendría que coger esto
00:32:08
el techo lo tengo partido en cuatro
00:32:14
si os dais cuenta
00:32:18
son cuatro partes
00:32:20
uno, dos, tres y cuatro
00:32:22
¿por qué?
00:32:24
porque yo ya sé que al techo
00:32:25
le cuesta recibir iluminación
00:32:26
normalmente el techo
00:32:28
es lo que más oscuro se queda
00:32:29
entonces yo ya lo he partido
00:32:30
en cuatro partes
00:32:32
para que cada una de estas partes
00:32:33
pueda tener su lightmap independiente
00:32:35
y luego no tener problemas
00:32:37
¿vale?
00:32:38
entonces por ejemplo
00:32:40
en esta parte del techo
00:32:41
yo le puedo decir que en lugar
00:32:43
de 256
00:32:45
escribo lightmap
00:32:46
ponlo en grande por si
00:32:52
el Diego
00:32:54
overridden
00:32:55
lightmap resolution
00:32:59
aquí os acordáis que la habíamos cambiado a todas las geometrías
00:33:00
a 256, vale
00:33:03
pues en concreto a estas le voy
00:33:04
a poner 512
00:33:06
y fijaros lo que pasa
00:33:07
cuando le cambio la resolución pierde
00:33:10
el lightmap, vale
00:33:12
ha perdido la información, bueno no pasa nada porque lo voy a tener que calcular otra vez, el resto más o menos lo veo bien, a lo mejor a los suelos, a estos cuatro suelos que tengo aquí le voy a hacer lo mismo,
00:33:13
Le voy a decir que el lightmap resolution en lugar de ser 256 sea 512, ¿vale? Y veis que en el momento que hago eso pasan a ser objetos movibles y lo que yo estoy viendo aquí es la iluminación que me darían las bolitas, ¿vale? Eso para un elemento grande no es suficiente.
00:33:32
Además veis que aquí arriba me aparece un mensajito que pone Lighting needs to be revealed.
00:33:56
Vale, pues eso lo voy a tener que volver a calcular.
00:34:01
Digamos que yo lo que he hecho es, es un proceso iterativo, si os dais cuenta.
00:34:05
Vamos haciendo pruebas con valores bajitos y luego vamos subiendo para que esa luz se vaya refinando.
00:34:11
¿Vale? Una vez que ya tenemos un punto intermedio, lo que tenemos que analizar también es qué objetos han tenido problemas y yo me estaba dando cuenta que en estos objetos de aquí yo había tenido problemas de iluminación y además estos eran los que me daban los mensajitos esos cuando yo calculaba iluminación que me decía tiene overlapping UVs, o sea, probablemente estos objetos tengan islas solapadas.
00:34:17
Vamos a ver cómo se soluciona eso. Esto no puede pasar con cualquier objeto y si encima trabajamos con objetos de biblioteca, hay veces que esos objetos de biblioteca no están bien mapeados, no tienen unas buenas UVs y nos dan estos problemas.
00:34:46
Entonces, dentro de Unreal tenemos un módulo que se llama el módulo de modelado, que no sé si está activo, de base no está activo, vale, pues vamos a activarlo, nos tenemos que venir a Edit, Plugins y dentro de Plugins tenemos que escribir aquí Modeling, Modeling y es este de aquí, Modeling Tools, no, sí, Modeling Tools, Editor Model, esto es.
00:35:01
este de aquí, Modeling Tools Editor Mode, ¿vale?
00:35:36
Y esto me obliga a reiniciar.
00:35:44
Y como he hecho cambios en el nivel,
00:35:47
veis que me está diciendo que tengo que guardar el nivel main
00:35:49
y además el asset main barra baja build data.
00:35:52
Build data son los datos del cálculo de iluminación.
00:35:56
Como he vuelto a calcular, los tengo que guardar.
00:35:59
Este es el archivo que os decía que según lo grande que sea la escena
00:36:01
puede llegar a pesar bastante.
00:36:05
Gigas.
00:36:08
muy bien perfecto ya está entonces cuando yo activo eso aquí arriba a la izquierda tengo
00:36:14
un desplegable que todavía no habíamos tocado en el que pone selection mode entonces yo solo
00:36:28
despliego y ahora tengo aquí un modo nuevo que se llama modeling aquí tengo muchas cosas pero
00:36:35
no me quiero meter con todo esto porque os vuelo la cabeza pero aquí es donde puedo hacer terrenos
00:36:41
enormes de muchos kilómetros tengo una herramienta para repartir vegetación de manera de manera
00:36:48
random tengo una herramienta también para pintar los vértices de una malla tengo una herramienta
00:36:54
que me permite fracturar geometrías y hacer simulaciones de físicas tengo un módulo de
00:37:01
animación tiene muchas cosas al real pero nosotros ahora mismo lo que vamos a utilizar en la que
00:37:05
acabamos de habilitar, que es la de
00:37:10
Modeling Tools.
00:37:12
Pero esto sería, digamos,
00:37:14
esto sería
00:37:17
o 3D Studio o Blender,
00:37:18
¿no? Esto que hemos
00:37:20
activado, ¿no?
00:37:22
Sería el equivalente, pero
00:37:24
muy simplificado.
00:37:26
Claro, por eso digo, pero que no es
00:37:28
que volvemos al principio de lo que nos decías
00:37:30
en la primera clase, ¿no? Que en este
00:37:32
no es el sitio a priori para hacerlo,
00:37:34
sino todo lo español.
00:37:37
Para mí estas herramientas
00:37:39
Son muy útiles para hacer cosas puntuales sencillas, pero no para modelarte un proyecto entero.
00:37:40
O sea, si yo detecto que un objeto tiene el pivote en un sitio muy malo, con estas herramientas le pongo el pivote donde yo quiero.
00:37:46
Por ejemplo, o si veo que tiene un mal mapeado, puedo intentar hacer uso de las herramientas de mapeado automático que trae Unreal para solucionarlo.
00:37:53
Pero se puede dar el caso de que no lo consiga y tenga que ir a Blender a arreglarlo.
00:38:01
Eso también pasa.
00:38:06
Entonces, vamos a intentar apañar esto y si no pudiéramos, tendríamos que ir a Blender y hacer un mapeado tradicional. Hacerlo bien, vamos. Esto, bajo mi punto de vista, son apaños, básicamente, ¿vale?
00:38:07
Entonces, vamos a seleccionar, por ejemplo, este actor, ¿vale?
00:38:25
Una vez que lo seleccionamos, aquí tenemos una serie de herramientas.
00:38:29
Veis que en el panel de la izquierda tenemos los grupos y luego cada grupo tiene una serie de herramientas propias, ¿vale?
00:38:35
Entonces, vamos a venir al de UVs, ¿vale?
00:38:41
Porque lo que queremos tocar son las UVs.
00:38:44
Bueno, antes de nada, me voy a meter dentro de la malla para ver cómo están las UVs.
00:38:47
Si yo selecciono el actor y me vengo a sus detalles, veis que hay un slot que se llama static mesh y aquí tengo la malla de content browser a la que está apuntando. Si yo hago doble clic, este es el editor de malla. Esto me está mostrando solo esa malla.
00:38:52
este editor no lo conocíamos todavía
00:39:11
pero este editor se utiliza bastante
00:39:17
entonces, ¿qué es lo que quiero comprobar yo en este editor?
00:39:19
las UVs, y veis que yo aquí arriba
00:39:23
a la izquierda, tengo un botoncito que pone UVs
00:39:26
perfecto, lo despliego y veis que tengo
00:39:29
canal 0, canal 1 y canal 2
00:39:32
vamos a ver cómo está el canal 0
00:39:36
¿Veis el canal 0? Si nuestras uv son este cuadradito, lo que me está diciendo el canal 0 es que toda la geometría sobrepasa, eso, pero bueno, el canal 0 es el canal que utiliza Unreal para las texturas, no para el lightmap, ¿os acordáis que para el lightmap generábamos un canal extra?
00:39:37
entonces vamos a ver que tenemos en el resto de canales
00:39:58
bueno, aquí tenemos
00:40:02
fijaros, estos sí que nos podría llegar a valer
00:40:06
porque todas las islas están dentro del espacio V
00:40:10
pero lo que yo veo aquí es que están como muy partidas
00:40:13
en trocitos muy pequeños y muy separadas
00:40:17
vale, voy a mirar el tercero
00:40:20
el canal 2
00:40:23
este está peor todavía
00:40:24
fijaros, trocitos muy pequeños
00:40:27
y muy separados, que es lo que está pasando aquí, que cuando pinta la textura deja muchos píxeles entre medias, entonces está desperdiciando mucha textura para pintar, vale, vamos a hacer una prueba, si yo me vengo al canal 1, esto que voy a hacer es un poco, es un poco curioso, pero espero que lo entendáis, vale,
00:40:30
dentro del editor de malla estática tenemos aquí unos detalles unos parámetros entonces lo que yo tengo que tocar ahora para intentar apañar este desaguisado
00:40:52
es la parte de build settings veis que hay un grupo que se llama lot 0 bueno en este panel o en este editor es donde se controlan los lots
00:41:03
eso que comentábamos el primer día de que la malla va cambiando de geometría en función de la distancia cámara se gestiona aquí pero bueno nosotros ahora mismo
00:41:14
no estamos trabajando con LODs. Todas las mallas que tenemos tienen una sola geometría, solamente. Entonces, si venimos al panel LOD 0, en la parte de Build Settings,
00:41:21
claro, os acordáis, ¿no? Build Settings son los parámetros de cálculo de iluminación. Vale, vamos bien. Lo abro y dentro de todos estos parámetros,
00:41:37
tengo aquí tres parámetros que son importantes. El MinLightMapResolution, el SourceLightMapIndex y el DestinationLightMapIndex.
00:41:49
A ver cómo os explico esto para que lo entendáis. El MinLightMapResolution es la resolución para la cual Unreal está calculando el padding.
00:42:02
¿Sabéis lo que es el padding? Me vuelo que no. El padding es la distancia entre islas. Es espacio que deja entre isla e isla. Es como una especie de umbral que establece entre las islas.
00:42:19
Vale, claro, entonces, imaginaros que esta textura es de 64 por 64. Como tengo tan poquitos píxeles, necesito separar mucho las islas para que no se solape, ¿no? Si tuviese una textura de 1024 por 1024 podría acercar más las islas, ¿no? Porque dispongo de más píxeles en esa textura.
00:42:35
¿Eso se entiende? No sé si hay una pregunta por ahí o algo. No, no, vale. Sigo, sigo. Vale, entonces, lo que yo tengo... ¿Sí? Sí, sí. Nada. Nada, nada, perdona, perdona.
00:42:57
nada ok entonces como yo como este es un objeto bastante grande en tamaño yo le voy a asignar un
00:43:20
line map grande yo prevé o asignarle un line map de 1024 por 1024 entonces yo qué es lo que suelo
00:43:28
hacer yo suelo re empaquetar todo esto para una textura más grande para que para aprovechar mejor
00:43:33
la textura para que las islas estén más juntas entre ellas entonces como lo hago este canal en
00:43:40
el que estoy es el canal 1 vale entonces yo lo que voy a hacer es como creo que esta distribución
00:43:48
de islas es mejor que la del canal 2 esta no me gusta como está voy a coger el canal 1 y voy a
00:43:55
proyectar en el canal 2 el empaquetado para una textura más grande entonces fijaros lo que voy
00:44:03
a hacer le voy a decir vale cálculame el padding para una textura de 1024 no de 512
00:44:10
Y le voy a decir que el source lightmap index, en lugar de ser el 0, sea el 1, ¿vale?
00:44:19
Coge el canal 1, que me gusta, más o menos, como base, como fuente, como source,
00:44:26
y me lo proyectas en el destination lightmap index, que es el 2,
00:44:33
pero para una textura de 512, y le doy al botón aplicar cambios, ¿vale?
00:44:37
Entonces, ¿ahora qué ha pasado? Pues que el 1 permanece como estaba,
00:44:46
pero el 2, fijaros como está ahora, ha cogido la información del 1 y con las mismas islas me las ha apretado más porque está estimando que la textura que yo voy a utilizar va a ser mucho más grande, voy a disponer de muchos más píxeles, entonces lo puedo apretar más y aprovechar más la textura, se entiende que las piezas son más grandes y que están más apretaditas,
00:44:49
es que esto es muy jorobao de entender
00:45:12
entonces tampoco hace falta que lo tengáis al 100%
00:45:15
simplemente quiero que lo aprendáis a nivel teórico
00:45:19
porque esto es lo que le va a pasar a los de 3D
00:45:21
o sea esto es lo que van a tener que hacer los de 3D
00:45:24
para apañar los objetos que estén con manchas negras
00:45:28
en iluminación ¿vale?
00:45:32
entonces una vez que ya tengo un canal que me gusta
00:45:34
que es el 2 me tengo que bajar aquí abajo a la parte de general settings y decirle vale pues que quiero que el lightmap que utilices sea de 1024 y además en la parte de parámetros avanzados me tengo que asegurar de que el lightmap coordinate index sea el 2.
00:45:38
¿Por qué? Porque se puede dar el caso de que yo prepare el canal 2 perfectamente para el cálculo de lightmap pero que luego aquí venga establecido el 1, entonces me va a seguir pintando la luz en el canal que estaba mal, ¿entendéis?
00:46:02
Entonces, en resumen, primero tengo que establecer mi resolución objetivo, luego le tengo que decir qué canal tiene que coger y a qué canal nos vamos a dirigir, aplicar los cambios y cuando yo ya tengo una distribución que me gusta, me vengo abajo y le digo, vale, pues ahora, yo sé que el padding es para 512, pero la resolución final va a ser para 1024.
00:46:15
¿Por qué? Porque de esta manera estoy del lado de la seguridad. O sea, le estoy dando una separación de las islas un poco mayor que la que necesitaría si la resolución fuese 1024. ¿Vale? Y luego me aseguro en los parámetros avanzados del grupo General Settings, me aseguro de que el canal real en el que se va a pintar la textura es el que yo he modificado. ¿Vale? Esto lo tendría que hacer en todos. Voy a hacerlo en todos.
00:46:42
¿Veis? Cuando hago cambios de UVs, pierde la iluminación el objeto, lógicamente, porque ya no es lo mismo. Es otro tipo de configuración de UVs la que tiene ahora. Entonces, con este voy a hacer lo mismo, doble clic, vamos a comprobar, vamos a comprobar cómo están las UVs, le va a pasar algo parecido, ¿veis?
00:47:13
este es el canal 1 y este es el canal 2, vale, pues voy a coger el canal 1 y lo voy a empaquetar para una resolución mayor en el canal 2, me vengo a la parte de load 0, en la parte de build settings y le toco mid light map resolution, le voy a hacer lo mismo porque los tamaños son parecidos, 512 y que coja el canal 1 de fuente y me lo pinte en el canal 2,
00:47:37
O sea, me lo reempaquete en el canal 2 y aplico cambios. Si no aplicamos cambios, no voy a hacer nada. Y ahora compruebo. El 1 está igual, pero el 2 debería de estar empaquetadito. Fijaros que aquí, por la distribución de islas que tiene, me está dejando huecos.
00:48:05
¿Veis? Me está dejando estos huecos aquí que no me los va a aprovechar para pintar
00:48:22
Esto se produce porque hay islas que son muy largas
00:48:28
Como esta de aquí
00:48:31
Bueno, no pasa nada
00:48:33
O sea, no es la situación ideal
00:48:35
Lo ideal es que ocupe toda la textura perfectamente
00:48:38
Pero hay veces que pasan estas cosas
00:48:41
Para cambiar estas cosas ya sí que tendría que ir a las herramientas de modelado
00:48:42
Y cambiar el mapeado original o a Blender
00:48:47
Y cambiar el mapeado original
00:48:49
¿Vale?
00:48:51
Pero bueno vamos a probar así a ver qué tal funciona. Entonces ahora bajo la parte de abajo en lugar de 64 le digo 1024 y me aseguro de que el lightmap coordinate index sea el que yo he modificado que es este. Estoy en el 2. Este es el que quiero utilizar. Perfecto. Salvamos.
00:48:52
y ahora voy a hacer lo mismo con este de aquí
00:49:14
si esto me pasara en algún elemento
00:49:17
de mi
00:49:23
de mi set virtual tendría que hacer lo mismo
00:49:24
¿vale? lo estoy haciendo con esto porque
00:49:27
es muy evidente
00:49:29
pero cualquier objeto puede tener este problema
00:49:29
en términos de iluminación ¿vale?
00:49:33
vale, aquí le pasa algo muy parecido
00:49:38
porque además estos son simétricos
00:49:40
con el primero que he hecho
00:49:41
entonces le voy a decir aquí
00:49:43
lo mismo, calculame el padding para
00:49:45
512, cógeme
00:49:47
el canal 1 como fuente y el 2 como destination. Aplico cambios y compruebo. Vale, ¿veis? Este está bastante bien empaquetado. Ahora, entonces me bajo abajo y le digo General Settings,
00:49:49
Lightmap Resolution 1024 y el Lightmap Coordinate Index el 2, perfecto, ya lo tengo, ¿vale? ¿Qué va a pasar ahora? Pues que cuando yo le dé a construir la luz va a tardar bastante más porque antes tenía texturas de 256 si os acordáis, pero ahora he modificado las del techo y las del suelo a 512 y todas estas a 1024, como tiene que pintar muchas más texturas, o sea, no, muchas más no, pero
00:50:08
texturas mucho más grandes, el proceso de construcción de la luz va a ser un poquito más largo, ¿vale? Entonces, ya lo tenemos, no he utilizado para nada las modeling tools, si con esto me vale, no las toco, porque si me pongo a tocar eso voy a liar más que creo, vamos a ver que tal se ve, salvamos y hacemos un build, build, build all levels, lo de siempre, ya os digo,
00:50:40
Lo lógico es que ahora tardará bastante más. Voy a abrir el Swarm Agent y fijaros, esto es un programa del Pleistoceno, o sea, esto tiene más años que la Tana, pero es muy efectivo, muy, muy efectivo, funciona muy bien.
00:51:12
¿Vale? Veis que va como por fases, primero importa los resultados, luego empieza a recolectar fotones, luego emite fotones.
00:51:34
Digamos que tiene, estos colores que se ven aquí corresponden con fases del proceso de iluminación.
00:51:43
¿Ves? Aquí no es tan rápido, vamos por el 48%, 54, pero tampoco se tarda muchísimo, o sea, no es una locura.
00:51:52
Ya estamos en el 99%, debería de estar a punto de terminar.
00:52:12
¿Veis? Me sigue diciendo que estos elementos, los elementos que se llaman valencia, valencia edificios, tienen un poquito, un poquito de overlapping, pero claro, un 2%, un 1%, un 1% muy poco, ¿no?
00:52:16
Esto no debería de ser un problema. Y aún así, fijaros, hay algunas cositas que no se terminan de ver bien. ¿Ves? Estas manchas que aparecen aquí negras son problemas de mapeado. Estos son solapamientos.
00:52:38
vale
00:52:59
bueno, lo que vamos a hacer en esta fase
00:53:01
es decir, vale
00:53:03
en función de la distancia
00:53:06
a la que yo vaya a ver esto
00:53:09
cuando le aplique la textura
00:53:10
a lo mejor ni lo noto
00:53:12
vale
00:53:13
si cuando le aplique la textura
00:53:13
y calcula iluminación
00:53:16
lo sigo notando
00:53:17
busco alternativas
00:53:18
vale
00:53:19
lo único que quería que vierais
00:53:20
era el proceso este
00:53:23
de reempaquetar las UVs
00:53:24
para volver a calcular la luz
00:53:26
¿Eso más o menos ha quedado claro? Perfecto. Pues venga, digamos que llegados a este punto, yo ya tengo una visión general de cómo se puede calcular la iluminación en una escena de manera estática.
00:53:28
O sea, sé vaquear iluminación, que decir eso no es poco. Entonces, ¿qué es lo siguiente que tengo que hacer? Aprender a hacer materiales. O sea, tengo que aprender a crear los shaders, o sea, esos assets que le dicen a la geometría cómo se tiene que comportar con respecto a la luz para que mi imagen sea realista, para que mi escenario ya empiece a verse realista.
00:53:44
Ahora mismo lo único que estoy haciendo es jugar con la luz y con un material gris medio, pero yo necesito ya empezar a meterle detalle a mi arcena.
00:54:10
Entonces, ¿cómo le metemos detalle a esta arcena? A lo loco. Pues vamos a empezar con materiales.
00:54:18
Antes de empezar con materiales, voy a hacer una pequeña introducción teórica.
00:54:25
Entonces, os voy a contar un poco de qué van los materiales, que seguro que muchos de vosotros, si sois de 3D, pues ya lo sabéis.
00:54:33
Pero bueno, para los que no sean de 3D es interesante que lo hablemos porque si no os vais a perder. Lo que hacemos en 3D para representar los materiales de un objeto es una aproximación, ¿vale? Necesitamos dividir la realidad en diferentes pases, ¿vale? Se llaman pases, materiales o shaders, materiales.
00:54:42
Y pongo entre paréntesis shaders. Shader al final en inglés es como el sombreador o algo así. ¿Vale? Materiales o shaders. ¿Cuáles son los diferentes pases en los que yo divido el material para poder representarlo?
00:55:15
Unreal utiliza un sistema de representación de materiales que se llama PBR. Esto significa Physical PBR. No me acuerdo. Los materiales PBR, ¿los sabéis vosotros? Los de 3D. Son como materiales físicamente correctos.
00:55:37
¿Veis? Físicamente basado en las físicas.
00:56:03
correctos los resultados deberían de ser físicamente correctos vale veis que todo encamina un poco a lo mismo vale entonces cómo conseguimos esto pues para eso necesitamos establecer una serie de canales de información que hagan que mis objetos se vean como yo quiero que se vean físicamente correctos vale entonces cuáles son los canales principales cuando hablo de canales hablo de texturas vale yo a mi objeto le voy a meter una serie de texturas de
00:56:35
diferente forma para lograr que se vea como se debería de ver en la realidad, ¿vale? Entonces,
00:57:06
el primer canal y el más importante es el albedo. El albedo lo que tiene es toda la
00:57:12
información de color del objeto, pero cuando hablo de color, hablo sólo de color. Esta textura no
00:57:19
puede llevar ni sombras ni reflejos, porque si tiene sombras o reflejos ya no es sólo color,
00:57:27
Ya es otra cosa, ¿vale? Siguiente canal, el roughness. Claro, roughness en inglés es como rugosidad, ¿no? Entonces, roughness lo que me da es la información de reflejos, reflejos.
00:57:33
Al final son como las micro imperfecciones de la superficie que hacen que se vea más pulido o más mate, ¿vale? El normal, el normal o normal bump me da el relieve del objeto.
00:58:00
Este relieve es un efecto óptico, ¿vale? No es relieve real, o sea, no estoy desplazando los vértices para que parezca que tengo un relieve, estoy creando un efecto que me ayuda a que el objeto se vea más realista, pero que realmente es una deformación de la geometría en términos visuales.
00:58:19
Ahora lo vemos, ¿vale? Muchas veces cuando yo cuento esto digo que si la superficie, o sea una superficie por ejemplo plana, una superficie plana, si tiene muchas micro imperfecciones, muchos rayajitos, se acaba viendo mate.
00:58:46
Si no tiene mucha imperfección, se ve pulido, ¿no? Pulido. Sin embargo, el relieve es o plano o no plano, o con relieve.
00:59:06
Entonces, ¿qué pasa?
00:59:26
Que al final todo esto son valores matemáticos, ¿vale?
00:59:35
Yo voy a utilizar o texturas o números para establecer todo esto,
00:59:38
para establecer estos valores.
00:59:43
En términos de color, yo voy a tener mis canales RGB
00:59:45
que van a ir desde 0, que es negro, a 1, que es blanco, ¿vale?
00:59:51
0, 1, 0, 1, ¿vale? Entonces, todas las posibles combinaciones entre RGB de 0 a 1, de negro a blanco, es la que me da la rueda cromática, ¿vale? Eso en términos de color, ¿vale?
00:59:59
Y aquí voy a estar trabajando en espacio estándar RGB, ¿vale?
01:00:15
Son imágenes que ya hay que establecer que tienen una compresión, ¿vale?
01:00:22
Del espacio de color.
01:00:29
Sin embargo, el resto de canales, de aquí para abajo, es información matemática.
01:00:31
Ya no necesitan estar comprimidos en estándar RGB, ya son lineales, ¿vale?
01:00:37
estas imágenes tienen que estar en modo lineal vale entonces cuando hablábamos de reflejos
01:00:43
también son valores de 0 a 1 qué significa que 0 es totalmente pulido y 1 es totalmente mate
01:00:53
entonces si yo lo meto en formato matemático 0 me va a dar una superficie perfectamente lisa
01:01:03
pulida que refleja el 100% de lo que le lleva y 1 me va a dar una superficie totalmente mate
01:01:11
que no refleja absolutamente nada, ¿vale?
01:01:17
Y en términos de normal, el mapa de normal es un mapa curioso
01:01:20
que también utiliza los tres canales, R, G y B.
01:01:25
Esto ahora os lo enseño con la textura porque es bastante flipante.
01:01:32
No sé si la gente de 3D sabe cómo funciona un mapa de normales,
01:01:35
pero tiene bastante chicha.
01:01:38
Lo que me da el canal rojo es el relieve o la rugosidad
01:01:40
de izquierda
01:01:47
a derecha
01:01:49
la G me da
01:01:50
la rugosidad o el relieve
01:01:53
de arriba a abajo
01:01:54
y el
01:01:57
y el azul me da
01:02:00
el relieve o la rugosidad
01:02:02
de
01:02:05
de frente
01:02:07
ahora lo enseño
01:02:09
con una textura de normal
01:02:11
pero en definitiva la combinación
01:02:13
de estos tres me da
01:02:15
el relieve del objeto
01:02:16
¿Vale? O sea, yo para que lo entendáis mejor, estos son como, el RAFNES son microimperfecciones y el NORMAL es macroimperfecciones, ¿vale? De la geometría, más o menos. ¿Vale? ¿Esto se entiende? ¿Bien?
01:02:18
O sea, ¿esto que os digo suena de algo a los que no soy de 3D? No, ¿verdad? Entiendo que no. Vale, ahora lo vemos. Tiene sentido, ¿no? Al final nosotros lo que necesitamos es, mediante texturas o valores numéricos, replicar lo que está pasando en el mundo real, de alguna manera.
01:02:36
¿Vale? Existen más canales. Existe el mapa de Ambient Occlusion, el AO. Este lo que me da es las sombras de contacto del objeto. En función de las concavidades y de las convexidades que tenga la geometría, las partes que son convex, cóncavas, tienen una sombra de contacto.
01:02:56
¿Vale? Este mapa realmente es un canal que se utiliza para complementar el render.
01:03:20
Cuando mi motor de render no es capaz de generar todas las posibles sombras, el Ambient Occlusion lo que me da es un extra de detalle.
01:03:27
Porque como os decía, Unreal no tiene la capacidad infinita de calcular toda la iluminación como si fuese el mundo real.
01:03:36
Entonces este canal le da mucha información.
01:03:43
Estos son sombras, se llaman sombras de oclusión ambiental. Sombras en las concavidades. Luego también hay canales, hay un canal de desplazamiento.
01:03:45
Si quisiéramos, mediante una textura de blancos y negros, podríamos desplazar los vértices de una geometría.
01:04:03
Desplazar vértices de la geometría.
01:04:13
Pero estos son menos importantes, o sea, los importantes de verdad son estos tres, bueno, incluso estos cuatro.
01:04:21
¿Vale? Albedo, Raffnes, Normal y AO.
01:04:29
Luego, pues también podemos tener un mapa de emisivos que le diga a la geometría que ciertas partes de la geometría emitan luz o toda la geometría. Emisivo, que es la geo, emita luz y alguno más, que ahora veremos. Pero bueno, los importantes, ya os digo, información de color, información de reflejos, información de relieve y sombras de oclusión ambiental, ¿vale?
01:04:31
Vamos a ver cómo se hace esto.
01:05:04
Vamos a ver cómo lo hacemos.
01:05:06
Vale.
01:05:12
Entonces, me vengo a mi Content Browser y en la parte de
01:05:12
materiales, me voy a crear un material nuevo.
01:05:16
Botón derecho, material.
01:05:20
Y lo llamo M, mayúscula, barra baja, test.
01:05:23
Perfecto.
01:05:32
Uy, voy muy rápido.
01:05:32
Va.
01:05:38
Perfecto.
01:05:40
y lo abro. Cuando lo abro, entro en el editor de materiales. Entonces, si os dais cuenta, aquí tengo ya ciertos valores.
01:05:47
Hay un canal que no os he contado, que se me había olvidado. Es el canal de Metallic. El canal Metallic es igual de importante que todos estos de aquí arriba.
01:05:57
metal, también es un valor
01:06:07
que se mete
01:06:11
en valores numéricos
01:06:13
que establece si un objeto es
01:06:14
metálico, es uno
01:06:17
o dieléctrico
01:06:22
se llama, o no metálico
01:06:24
que es cero
01:06:26
entonces los metálicos son los metales
01:06:30
y los dieléctricos pues son todos los demás
01:06:33
las gomas, las maderas
01:06:34
la
01:06:36
el
01:06:37
todo lo que no es un metal
01:06:39
¿vale?
01:06:42
perfecto, entonces si os dais cuenta
01:06:43
yo los tengo aquí, todos esos canales, este es el
01:06:48
nodo principal del material que tiene una serie
01:06:51
de parámetros aquí, estos parámetros sirven
01:06:54
para configurar la base del material
01:06:57
y luego yo les tengo que ir metiendo en estos inputs, en estos
01:07:00
pines redonditos que veis aquí, la información
01:07:03
que necesita, ¿vale? Luego tenemos
01:07:06
además aquí un preview que podemos rotar
01:07:09
¿vale? Para ver cómo se va creando este
01:07:11
material y luego ya una vez que aquí esté bien lo podemos aplicar, ¿vale? Vamos a empezar a hacer pruebas. Vamos a ver, esto es un sistema de nodos, ¿vale? Es un sistema
01:07:15
nodal, como Nuke o como cualquier otra aplicación de este estilo. Entonces hay una serie de nodos que son los que nos ayudan a ir creando nuestro material.
01:07:25
Digamos que en Unreal no tenemos una serie de materiales creados. Tenemos que crearlos todos desde cero, ¿vale? En función de nuestras necesidades. Y pensaréis, pues, ¿qué rollo, no? O sea, no me lo han hecho, me lo tengo que hacer yo. Bueno, no os preocupéis porque yo os voy a dar un paquete de materiales que ya funcionan.
01:07:39
pero me interesa que sepáis cómo funcionan o cómo se crean
01:07:59
para que podáis modificarlos a posteriori, ¿vale?
01:08:03
Entonces, por ejemplo, los nodos más habituales que tenemos
01:08:07
en el editor de materiales.
01:08:12
Os voy a ir diciendo los atajos de teclado.
01:08:14
Uno y clic izquierdo.
01:08:17
Dos y clic izquierdo.
01:08:21
Tres y clic izquierdo.
01:08:24
Fijaros, ¿qué tenemos aquí?
01:08:27
Esto se llaman vectores. Este es un vector de un solo valor, este es un vector de dos valores y este es un vector de tres valores. El primero es un número, un valor de coma flotante que se llama un float. En Unreal se llama float. Son valores con decimales, positivos y negativos.
01:08:29
Me parece que pueden llegar a tener hasta seis decimales, una cosa así. El siguiente es un vector de dos constantes que se llama. En definitiva es una especie de vector xy. Y si os acordáis, xy como que se relaciona mucho con uv entre este valor.
01:08:50
Pues es un nodo que nos puede ayudar a tocar el mapeado de un objeto. Y luego, una constante de tres valores es un RGB. Es un color. Si os dais cuenta, si yo hago clic, aquí me sale la rueda de color. Yo puedo establecer cualquier color que yo quiera.
01:09:11
¿Vale? Entonces estos son los normales, yo este lo utilizo muy poco o casi nada ¿Vale?
01:09:32
Los que más utilizo son los valores escalares que llaman o valores, o sea, vectores de una sola constante o los vectores de tres constantes, los RGB ¿Vale?
01:09:41
¿Por qué? Porque uno me sirve para introducir valores en escala de grises y el otro me sirve para meter valores de color, ¿vale? Entonces, lógicamente, fijaros, como esto es un RGB, yo tengo la primera bolita, que es un, es un, ¿cómo se llaman esto?
01:09:54
Ay, no me acuerdo ya de cómo se llaman las bolitas.
01:10:20
Bueno, cada una de estas bolitas saca información y cada una de estas bolitas recibe información.
01:10:22
O sea, cuando la bolita está a la izquierda del nodo, es el receptor de la info
01:10:29
y cuando está a la derecha es el que saca información, ¿vale?
01:10:33
Entonces, si yo hago clic y pongo un color, el que yo quiera, un morado, por ejemplo,
01:10:36
y le doy OK, este es el color que está establecido en el nodo.
01:10:42
Entonces, si yo tiro de la bolita blanca, que es R más G más B, y se lo pongo en el base color, ¿veis? La información de color del material cambia, lógicamente, ¿no?
01:10:49
Si yo ahora cojo y establezco en el escalar de un solo valor un 1, y ese 1 se lo conecto al metálico, ¿qué hemos dicho antes? ¿Qué va a pasar si el valor de metálico es 1?
01:11:05
pregunta, alguien
01:11:21
que me lo diga, alguien que desmute
01:11:26
¿no?
01:11:28
¿quién me lo dice?
01:11:34
¿alguien que no sea de 3D?
01:11:35
que va a ser todo lo metálico
01:11:38
que puede ser
01:11:40
que va a ser 100% metálico
01:11:40
efectivamente
01:11:43
ya tenemos una bola metálica y rosa
01:11:48
pero no es muy pulida
01:11:51
¿no? está como mate
01:11:54
¿no?
01:11:55
nos da la impresión como de que es una bola mate
01:11:57
metálica, ¿qué tendría que hacer?
01:12:00
para que se viera
01:12:01
totalmente pulida, como una bola cromada.
01:12:03
Venga, tiraros a la piscina, hombre.
01:12:10
¿Y el especular?
01:12:12
El especular
01:12:15
no lo hemos comentado todavía. Habíamos
01:12:16
hablado de uno que tocaba el reflejo, pero
01:12:18
no era el especular. ¿Cómo se llamaba?
01:12:19
Ravnes.
01:12:22
El Ravnes. ¿Y qué valor de Ravnes tendría
01:12:23
que poner para que se viera totalmente
01:12:25
pulido? Cero.
01:12:28
Cero. Muy bien.
01:12:30
Me voy a crear con
01:12:32
uno y clic izquierdo
01:12:33
otro escalar de un solo valor, lo dejo en cero, que es como viene por defecto, y se lo coloco en el RAPNES.
01:12:35
Y fijaros, tengo una bola rosa, metálica, perfectamente pulida.
01:12:43
¿Se entiende esto, no? ¿Se entiende o no se entiende?
01:12:48
Sí, sí.
01:12:55
Perfecto. Entonces, si cambiamos valores, y me lo llevo azul y doy OK, pues ahora mi bola metálica es azul.
01:12:56
Si yo quiero que sea en lugar de metálico, dieléctrico, pues cambio el valor, cambio el valor aquí o aquí, veis que se puede cambiar en los dos sitios o en el propio nodo o en los detalles del nodo, si lo pongo en cero, esto es un plástico azul, ¿no?
01:13:04
porque ya no es metálico, ahora es 100%
01:13:25
dieléctrico, 0
01:13:27
es dieléctrico, 1 es
01:13:29
metálico
01:13:31
y en el RAFNES, si yo quiero que este
01:13:32
plástico sea 100%
01:13:35
mate, pues lo pongo en 1
01:13:37
y ahora tengo, veis, un plástico
01:13:39
azul mate
01:13:41
Digo, perdona, una pregunta
01:13:42
¿Cómo rompes una conexión que ya
01:13:46
esté hecha? Con alt
01:13:49
y clic
01:13:51
Vale, gracias
01:13:52
Alt y clic. Cuando se ilumina, ponemos el cursor encima primero y cuando se ilumina, alt y clic. Vale. Entonces tenemos base color, tenemos metallic y tenemos roughness. Vale. Perfecto.
01:13:54
Entonces, ahora, claro, si yo quisiese un valor que no fuese ni totalmente mate ni totalmente pulido, le puedo dar un 0,5 al roughness, ¿vale? Y estoy a la mitad de camino o le puedo dar a lo mejor un 0,2, ¿vale?
01:14:19
y el 0,2 es bastante pulido pero veis que el especular se rompe bastante, no es un punto, si lo pongo en 0, veis que el sol se transforma en un puntito, ¿por qué? porque está totalmente definido el reflejo, ¿vale? perfecto, pues esto es la base de los materiales, o sea, si nosotros configuramos el base color, el metallic y el roughness, ya tenemos algo que es físicamente correcto,
01:14:39
Todavía no hemos metido nada de relieve. Vale, perfecto. Llegados a este punto, os voy a decir que os descarguéis una carpeta y la grabéis en el proyecto.
01:15:08
A ver, en el drive que os he dejado, en el drive que os he dejado, esto está en el Garci, en el Garci, en el Garci, tenéis una carpetita que se llama plugins, pues os voy a pedir que hagáis esto, botón derecho, descargar, entonces se os va a descargar una carpetita.
01:15:26
No hace falta que lo hagáis ahora, ¿vale? Porque ahora es parte de explicación teórica. Entonces, yo esta carpeta ya la tengo. Bueno, no la tengo aquí, pero me la voy a traer.
01:16:03
Es tan sencillo como copiarlo en el proyecto a la altura de la carpeta content. Entonces, selecciono la carpeta content, botón derecho, show in explorer.
01:16:16
esto me abre la ubicación
01:16:28
del content, entonces me voy una carpeta
01:16:31
hacia atrás, vale, me voy
01:16:32
hacia atrás
01:16:34
y yo me tengo que crear, os acordáis que esta era como
01:16:35
la jerarquía
01:16:38
de carpetas base del proyecto
01:16:40
pues yo a esta altura
01:16:42
me tengo que grabar
01:16:44
la carpeta plugins
01:16:46
esos son dos plugins que yo he creado
01:16:48
uno con materiales y otro con
01:16:50
blueprints, el de los blueprints todavía
01:16:52
no os lo he enseñado, o sea no os he contado nada
01:16:54
de ello, pero que sepáis que también está ahí.
01:16:56
Entonces, me imagino que esto no se habrá descargado todavía,
01:17:00
se está comprimiendo, pero yo esto lo tengo por ahí en otro
01:17:04
archivo.
01:17:07
Entonces, lo voy a coger de otro,
01:17:08
lo voy a coger de Star Wars, por ejemplo, ¿veis?
01:17:10
La carpeta, plugins, control C, Darcy, control V.
01:17:13
Me la he grabado aquí, ¿vale?
01:17:26
Y dentro de esta, veis que hay dos plugins,
01:17:28
uno que se llama Base Materials y otro que se llama Blueprints.
01:17:30
vale, perfecto, para que esto funcione, tenemos que reiniciar el proyecto, vale, entonces, salvo, cierro, no os preocupéis que ahora en el descanso os grabo mi proyecto,
01:17:32
y ya irá con los plugins, ¿vale? Pero bueno, a ver, reinicio, entonces este, ahí estamos, veis que ahora ya, además de content, me aparece una carpetita que se llama plugins
01:17:51
y tenemos base materials y blueprints, ¿vale? Por dentro de base materials yo aquí tengo un mapa, o sea, tengo un nivel creado que es como un nivel de demostración de los materiales
01:18:19
Que luego lo vemos. Y tengo también materiales y texturas. Y tengo algunas mallas. Pues tengo aquí un dragón para hacer unas pruebas. Tengo una alfombra. Tengo una lavadora vieja. ¿Vale? ¿Veis? Tengo una lavadora vieja.
01:18:31
Porque lo utilizo como de ejemplo. Tengo también una butaquita y unas cortinas, ¿vale? Esto lo veremos al final, ¿vale? Os haré una explicación de cómo utilizar el plugin este de materiales, pero a mí lo que me interesa del plugin es que viene con un montón de texturas que me valen a mí para explicar esta parte del curso, ¿vale?
01:18:52
¿Veis? En la parte de texturas tengo texturas base, que son como unos checkers, unas texturas de ejemplo, blancos, negros. Tengo texturas de tela, tengo texturas de noise, ¿vale? Tengo aquí una serie de texturas que tienen como ruido, ¿vale? Para que entendáis bien el tema este de los relieves que hablábamos.
01:19:14
Tenemos texturas de desplazamiento
01:19:35
¿Veis? Esto es un mapa de normales
01:19:39
Por ejemplo
01:19:40
Entiendo que los de 3D estaréis aburridos
01:19:41
De verlo, pero para los que no sois
01:19:44
De 3D, este es como el relieve
01:19:46
De una textura de piedras
01:19:49
¿Vale?
01:19:50
Entonces lo que os decía antes de los canales
01:19:52
Fijaros que curioso
01:19:55
Yo aquí cuando hago doble clic
01:19:57
En una textura
01:19:58
Cuando hago doble clic se me abre el editor
01:19:59
De texturas
01:20:03
veis que en Unreal todo funciona igual, yo tengo un asset, hago doble clic y tengo un editor para cada tipología de asset, pues en este caso
01:20:03
estas son las texturas, las texturas yo puedo tocarlas a nivel de brillo, de saturación, de contraste, tengo aquí una serie de valores
01:20:11
pero eso normalmente no se toca y luego además aquí tengo los canales de la textura, puedo encenderlos o apagarlos, en esta parte de aquí
01:20:18
RGB puedo encender o apagar los canales, entonces fijaros que curioso como funciona una textura de normal, si yo apago el G y el B, a ver si me deja, este es el B, vale, porque está bloqueado, cerrar, vale, este es el canal azul,
01:20:28
Se supone que el canal azul del normal es como si yo estuviese desde arriba enfocando a la textura de rocas y esta iluminación, veis, tiene las partes de arriba iluminadas y se van haciendo sombritas hacia los bordes, ¿vale?
01:20:55
La G, ¿por qué no me deja? Qué curioso. No me está dejando. Bueno, miraré por qué es. Bueno, la historia es que esta información de sombras que se ve aquí en el canal azul es como si le estuviera dando con un foco desde arriba a las piedras y luego el G es como si le estuviera dando con una luz de arriba a abajo.
01:21:11
Veis que esta parte está en sombra y esta parte está en luz y el rojo es como si le estuviera dando con un foco de izquierda a derecha. Veis que esta parte se queda en sombra y esta parte se queda en luz. La suma de los tres, o sea, la interpolación entre el relieve de izquierda a derecha, el relieve de arriba a abajo y el relieve de frente, tiene toda la información disponible de relieve de la pieza.
01:21:38
No sé si he conseguido que se entienda algo con esto. O sea, es como una especie de interpolación entre tres direcciones, el normal, a nivel de relieve. Entonces, cuando yo cojo esta textura y me la llevo, por ejemplo, al material que estaba haciendo, que estaba en materiales, se llamaba test, ¿vale?
01:22:03
Es este. Me lo voy a desanclar y lo voy a hacer aquí pequeñito para que pueda ver las texturas también. Vale. Voy a coger, por ejemplo, esta textura. La pincho y lo arrastro. ¿Vale? La pincho y lo arrastro.
01:22:27
Entonces fijaros, yo ahora tengo aquí una textura de normal, si yo cojo del canal, veis que yo tengo aquí disponibles todos los canales, tengo RGB, RGB, el alfa y una unión de los cuatro, RGB alfa, vale, yo lo que quiero ahora es el RGB y lo pincho en el normal.
01:22:51
fijaros que ahora mismo
01:23:13
tengo el relieve de una piedra
01:23:15
pero si yo miro en la silueta
01:23:16
las piedras no salen hacia afuera
01:23:19
es por lo que os decía
01:23:21
esto es un efecto visual
01:23:22
esto es como una textura que le añade detalle
01:23:24
sin desplazar los vértices
01:23:27
¿vale?
01:23:29
¿se entiende?
01:23:31
está bien ¿no?
01:23:33
tiene bastante detalle
01:23:36
muy bien
01:23:37
entonces
01:23:40
esto me sirve
01:23:42
Para contaros lo que es una textura tileable. Una textura tileable no es ni más ni menos que una textura que está preparada para que cuando yo corto por aquí, si yo la repitiera en este sentido, esta piedra continúa por aquí.
01:23:46
¿Vale? Esta piedra de aquí, lo que le falta a la piedra por aquí, está por aquí.
01:24:06
Eso significa que si yo la hago más grande o más pequeña y la repito más veces, no se va a ver el corte.
01:24:12
¿Vale? Y eso pasa tanto en horizontal como en vertical.
01:24:18
¿Veis? La piedrecita de aquí arriba, lo que le falta a esta piedra es este trozo de aquí.
01:24:22
Entonces, cuando yo haga eso más grande o más pequeño,
01:24:28
Cuando lo repita más veces o menos veces dentro de mi geometría no se va a ver el corte de cuando termina una textura y cuando empieza la otra, ¿vale? Por eso lo que decía Álvaro, estas texturas se llaman simples, sin costuras, ¿vale?
01:24:30
Entonces, vamos a traernos también la información de Ravnes y la información de color. O sea, fijaros, la información de color, le voy a quitar el alfa para que se vea bien, ¿veis? Tiene que ser información que no tenga ningún tipo de reflejo ni de sombra, ¿vale? Todo esto es solo información de color.
01:24:44
y luego la información de rafnes que es este fijaros cuando yo aplique este canal de rafnes lo que va a pasar es que en la parte de arriba de las piedras
01:25:14
en la que los valores tienden a 1 que es blanco las piedras van a ser más mate y en la parte que está entre las piedras que es donde se acumula la humedad
01:25:30
donde está la tierrecilla, van a tender a cero, a negro y por eso esas partes van a estar más brillantes, ¿vale? Entonces vamos a montarlo, a ver cómo se ve, me traigo el color y el roughness,
01:25:40
La selecciono los dos, pincho y arrastro y lo que pasa aquí es que tengo, voy a sustituir el color por el albedo y voy a sustituir el valor de Ravnes numérico por el RGB de la textura, vale y fijaros tengo unas rocas bastante realistas, perfecto, vale y está metálico en cero.
01:25:59
Hay veces que si la textura tiene partes metálicas y partes dieléctricas, en lugar de meter un valor fijo en metálico, yo necesito una textura de metálico que establezca en blanco las partes metálicas y en negro las partes dieléctricas.
01:26:34
vale perfecto entonces voy a borrar el color y voy a borrar los dos nodos numéricos que había creado perfecto vale aplicamos entonces fijaros chicos atención vamos a aplicar este material como se aplica este material pues así por ejemplo
01:26:47
¿Vale? Lo pincho y lo arrastro. ¿Veis lo que está pasando? Yo no sé dónde está el corte de la piedra, ¿no? No se ve. ¿Por qué? Porque son texturas tileables y son tileables en todos los canales. En el de color, en el de roughness y en el de normal.
01:27:24
¿Vale? Pero claro, si a mí me parece que esta piedra es muy pequeña o muy grande, ¿cómo lo cambio? Vale, pues para eso me tengo que crear un controlador de tileado, que se llama, ¿vale? Entonces, para hacer ese controlador de tileado necesito sacar un nodo que no conozco todavía, botón derecho y escribo, bueno, veis que cuando yo doy botón derecho me salen aquí todos los posibles nodos, ¿vale?
01:27:43
Entonces yo normalmente no me los aprendo, yo simplemente me suena el nombre y con el buscador lo saco. Este que voy a sacar se llama texture coordinate. Vale, entonces el texture coordinate me permite controlar el tileado de las texturas, pero claro, así por defecto no puedo hacer nada.
01:28:10
yo necesito hacer una serie
01:28:34
de operaciones matemáticas entre medias
01:28:36
que me permitan controlar
01:28:38
el tamaño de la textura
01:28:40
entonces yo que es lo que voy a hacer
01:28:42
voy a coger las
01:28:44
Vs del objeto, ese cuadradito
01:28:46
que veíamos donde se ubica la textura
01:28:49
y lo que voy a hacer
01:28:50
es multiplicarlo por
01:28:52
números, por encima de uno
01:28:54
o por debajo de uno, para que se haga
01:28:56
más grande o más pequeño, eso se hace
01:28:58
con un nodo que se llama Multiply
01:29:00
Todo lo que vamos a hacer aquí son operaciones matemáticas, en el fondo, ya habéis visto que desde el principio cuando os he explicado los canales estaba hablando de ceros y unos, de valores entre cero y uno, todo el rato, ¿vale?
01:29:04
entonces saco el multiply que también tiene un atajo de teclado m clic izquierdo vale y fijaros si yo ahora el resultado de este multiply lo conecto al input que se llama v claro si os dais cuenta tiene que ser el mismo en los tres casos porque si no cambiaría el tamaño del color pero no del normal vale en los tres casos tiene que tener el mismo tamaño
01:29:15
perfecto entonces qué va a pasar si multiplico por ejemplo por dos el
01:29:51
tamaño de las texturas que me lo dice y obviamente serán más pequeñitas
01:29:59
a ver álvaro que no se esté oyendo y que es más pequeñitas porque donde antes había
01:30:10
una apertura de los lados eso es si yo le pongo por ejemplo aquí un 2 y aplico
01:30:18
las piedras son la mitad
01:30:24
sin embargo
01:30:27
si lo multiplico por 0,5
01:30:29
y aplico
01:30:31
serán el doble ¿no?
01:30:33
y como son
01:30:36
texturas tileables yo no veo
01:30:37
donde está el corte
01:30:39
¿vale?
01:30:40
¿se entiende no?
01:30:42
vale pero esto es un rollo ¿no?
01:30:44
esto de que yo tenga que meter un valor y aplicar
01:30:46
para que se cambien las cosas no es muy tiempo real ¿no?
01:30:48
la gracia de Unreal es que todo sea tiempo real
01:30:51
vale, pues para que
01:30:54
la gestión de materiales
01:30:56
sea tiempo
01:30:58
¿cómo has unido el Multiply
01:30:59
a los otros?
01:31:02
si es que todavía
01:31:05
no tenemos aquí las texturas
01:31:06
ahora cuando las carguemos
01:31:07
ah, pero ya las texturas vienen entradas entonces
01:31:09
cuando sacas una textura
01:31:11
ya tiene input
01:31:14
vale, vale, perdona
01:31:15
porque
01:31:16
me he quedado la carpeta de plugins directamente en content
01:31:17
¿no?
01:31:21
tal cual
01:31:21
no, no, no, la he metido
01:31:23
a la altura de content, o sea, está al mismo
01:31:25
nivel que content
01:31:28
vale, es que yo la he metido
01:31:28
pero no me la reconoce al abrirlo
01:31:31
claro, porque tienes que apagar
01:31:33
o sea, una vez que lo metes
01:31:35
tienes que cerrar y arrancar otra vez
01:31:37
sí, sí, lo he hecho, lo he hecho, vale
01:31:39
me seguiré peleando, pero ya lo tengo
01:31:41
ya, perdón
01:31:43
vale, entonces
01:31:44
Diego, disculpa, hay otra, perdona
01:31:47
cómo haces para meter el material directamente a la escena para meter el material a la escena
01:31:49
hay varias maneras la más sencilla es pinchar el material y arrastrarlo sobre la geometría
01:31:59
aquí tengo los slots de material entonces yo podría pinchar y traérmelo aquí también si quiero
01:32:05
Vale, todas las geometrías tienen slots de material. Entonces, lo puedo arrastrar directamente aquí también, ¿vale?
01:32:19
Gracias.
01:32:29
Vale, entonces, por ejemplo, podría coger y hacer, vale, aquí lo mismo. Piedras. En estos dos de aquí, lo mismo. Piedras y piedras.
01:32:31
Y veis que curioso, ¿no? Las piedras no se nota el corte de la textura porque son texturas tileables, ¿vale? Esa es la gracia de todo esto. Muy bien, entonces lo que os decía, pero a mí esto no me gusta, esto de hacer el material y que cada vez que haga un cambio tenga que darle a aplicar y salvar y todo el tinglao no es directo.
01:32:46
Entonces, ¿qué estructura tiene Unreal para trabajar con materiales? Vale, pues os lo explico. La estructura, es una forma de optimización también, aparte de que sea más práctico, es una forma de optimización.
01:33:10
Voy a borrar esto. Digamos que nosotros la estructura dura de shaders que utiliza Unreal es la siguiente.
01:33:27
Yo me hago un material master que se llama, este material master es el que tiene los nodos y los parámetros creados, yo me voy a crear una serie de parámetros que yo voy a poder controlar desde fuera.
01:33:52
Y luego una vez que tengo el material master yo me voy aquí sacando instancias, materiales instanciados o instancias, ¿vale? Instancia 01, instancia 02, instancia 03, 03.
01:34:11
Esto podría ser, por ejemplo, metal 1, plástico 1 y plástico 2, por ejemplo, o madera o lo que fuera, ¿no? En función de las texturas que esté utilizando.
01:34:37
Plástico 2, ¿vale? Podría ser. Entonces, los materiales que yo aplico en la escena no son los masters, que es lo que yo he hecho ahora.
01:34:55
lo que yo he hecho ahora no está bien, los que hay que aplicar son los instanciados, estos son los que yo aplico a la geometría, ¿vale?
01:35:05
Porque estos me permiten hacer cambios en tiempo real de los parámetros que yo haya expuesto en el material master, ¿vale?
01:35:14
O sea, si yo por ejemplo quiero cambiar el tileado en tiempo real, no lo voy a hacer con el material master, lo voy a hacer con los instanciados,
01:35:25
Vamos a hacerlo. ¿Cómo se crea un material instanciado? Fijaros, botón derecho, create material instance, hay que hacerlo sobre un material master, ¿vale?
01:35:33
Veis que los materiales tienen un ribete verde. Botón derecho, create material instance, ¿vale? Este es el que tengo que aplicar, no este.
01:35:48
entonces selecciono los cuatro trozos de suelo que veis que tienen esos parámetros comunes y el que aplico es el distanciado vale aparentemente no ha cambiado nada
01:35:59
porque es una instancia del material master pero fijaros si yo vengo al master otra vez y aquí en lugar de cambiar el valor del tileado numéricamente
01:36:13
En lugar de cambiar el 0,5 o el 2 que cambiamos antes del multiply, lo que hago es crearme un nodo numérico, un escalar, 1 y clic izquierdo y además a ese nodo le digo que sea un parámetro, botón derecho, convert to parameter y lo llamo escala o scale, ¿vale?
01:36:26
Y lo conecto aquí y le digo que sea uno de primeras, ¿vale? Para que se vea y aplico. Una vez que aplico, yo podría abrir el material instanciado y lo que voy a ver en el material instanciado es un editor diferente.
01:36:50
Es un editor en el que solo voy a tener disponibles los nodos que yo haya transformado en parámetros, ¿vale? Entonces activo la escala y fijaros, ahora es mucho más fácil porque yo ahora puedo subir o bajar el tileado y lo estoy viendo en tiempo real, ¿vale?
01:37:13
¿Se entiende? Y esto es igual para cambiar el color, para cambiar el roughness, para cambiar el metallic, yo lo que tengo que hacer es parametrizarlo en el master para tener esos parámetros expuestos en el instanciado, esto es muy potente, ¿por qué?
01:37:36
Porque me permite crear una instancia base y luego muchas variantes de esa instancia. ¿Entendéis? Podemos tener una madera base y luego muchas tonalidades de madera o maderas más pulidas y maderas más mate con la misma base.
01:37:54
Y cuando cambio la primera, cambian todas las demás porque están enlazadas. ¿Se entiende esto que he dicho? Bueno, pues esto es como la base de los materiales de Unreal.
01:38:12
Primero, tener claros cómo funcionan los canales de la textura, o sea, cómo funciona el albedo, cómo funciona el metálico, cómo funciona el roughness, cómo funciona el normal y luego saber que Unreal funciona con materiales master, que son los que tienen los nodos y luego de esos materiales master sacamos instancias que nos permiten operar los parámetros en tiempo real.
01:38:27
Esa es un poco la filosofía de los shaders.
01:38:52
vale entonces vamos a hacer vamos a empezar a hacer como un material master o sea un material que tenga un poco todos los parámetros que yo puedo llegar a necesitar
01:38:56
no lo vamos a hacer entero porque os lo voy a dar hecho en el plugin este pero si que quiero que empecemos a hacerlo para que para que sepáis como modificar un shader en un momento dado vale
01:39:08
entonces fijaros que curioso en este material test yo podría decirle que además de texturas yo quiero que estas texturas sean parámetros
01:39:18
o sea que yo pueda cambiar la textura desde fuera arrastrando otra textura cambiar el tipo de material
01:39:35
¿Cómo hacemos eso? Seleccionamos el texture sample, que es el nodo que es capaz de albergar texturas y le damos botón derecho, convert to parameter y le digo que esto va a ser el bc base color text.
01:39:42
¿vale? aparentemente no ha pasado nada pero luego en el instanciado lo que va a pasar es que voy a tener un slot de base color text disponible para poder cambiarlo en tiempo real ¿vale?
01:40:02
Voy a hacer lo mismo con el normal, botón derecho convert to parameter, normal barra baja text y lo mismo con el roughness, botón derecho convert to parameter rough text, perfecto.
01:40:15
Entonces, ¿qué pasa ahora? Que cuando yo aplique en mi material instanciado, además del controlador de tileado, tengo disponibles los parámetros de textura, ¿vale?
01:40:40
Tengo aquí disponibles los parámetros de textura, con lo cual yo podría venirme a las texturas que tengo en el plugin, por ejemplo, vamos a ver si tengo alguna por aquí,
01:40:53
esta, por ejemplo, tengo unas texturas de roca, aquí, a ver si me deja, me lo traigo un poquito para acá, para que se vea, vale, tengo una textura de roca, aquí, roca 1 barra baja C, barra baja D, barra baja N y barra baja R, vale, todas estas nomenclaturas dependen un poco ya de cómo trabajemos cada uno, vale,
01:41:11
Pero la C suele ser color, la D suele ser desplazamiento, la N suele ser normal y la R suele ser roughness.
01:41:40
Entonces, en este caso, como yo solo tengo color normal y roughness, pues voy a hacer color normal y roughness, ¿vale?
01:41:46
Y fijaros, ya tengo aquí una textura de roca.
01:41:59
Si saco una luz, por ejemplo, fijaros como, voy a darle un poco de caña a la luz, de intensidad, un poco más, un poco menos, una cosa así, fijaros como por el hecho de tener el canal de roughness y el canal de normal, esta textura ya está reaccionando como si fuese una roca real.
01:42:04
De manera, esto es PBR ya, esto es físicamente correcto. Y realmente no estoy desplazando los vértices, pero parece que tiene relieve. Porque es un efecto visual. Ya habéis visto que ahora ya mi material distanciado no tiene por qué ser solo de roca.
01:42:37
Podría ser de cualquier material, el que yo quisiera, ¿por qué? Porque le he expuesto los canales de la textura que yo necesito y además tengo disponible el tileado y como mis texturas son tileables, son simples, pues no se ven los cortes.
01:42:57
Se entiende, ¿no? Perfecto. Pues nada, pues vamos a hacer una cosa. Quedan cinco minutos para las doce, pero como lo que os tengo que explicar ahora ya es un bloque un poco más largo, vamos a hacer el descanso ahora y cuando volvamos nos ponemos a saco a hacer el material máster, el material definitivo.
01:43:10
antes de irnos al descanso
01:43:39
vuelvo otra vez a lo mismo
01:43:41
seguro me entendéis
01:43:44
en la estructura de carpetas
01:43:45
porque no sé cuántos hemos cargado
01:43:48
los plugins, creo que solo uno
01:43:49
vale
01:43:52
porque es que te juro que
01:43:53
sí, sí
01:43:55
es que ahí he cargado
01:43:58
copiar y pegar, sin más
01:43:59
pues no me aparece
01:44:01
en el proyecto, no sé si alguien más
01:44:04
vale, vale, vale, una cosa
01:44:06
Una cosa, una cosa. Aseguraros de que en el Content Browser, aquí tenéis activo Show Plugin Content. A lo mejor es por eso.
01:44:07
a ver si va a ser eso
01:44:22
vale, te lo digo porque
01:44:24
ahora aquí ya, porque más o menos
01:44:27
hemos ido siguiendo, más o menos
01:44:28
si eso, nos vamos a tomar un descanso
01:44:30
por supuesto
01:44:33
pero si eso, a la vuelta tenemos 5
01:44:33
10 minutitos para ya con el plugin
01:44:37
cargado, nada, repasad incluso
01:44:39
tal vez a ellos que practiquen
01:44:41
porque esta interfaz es prácticamente igual que
01:44:43
el de Razer Unity, con lo cual
01:44:44
es igual, es lo mismo
01:44:46
así que si les dejamos que toquen y hagan
01:44:47
material a su gusto, en 5-10 minutos
01:44:50
yo les echo una mano aquí
01:44:53
y ya lo tienen cogido
01:44:54
Perfecto, me parece bien
01:44:56
Estupendo
01:44:58
Para los que, ¿dónde has sacado
01:45:00
ese visor, perdona, último
01:45:02
el que decías
01:45:05
Vale, settings
01:45:06
Está en el panel
01:45:08
de Content Browser, arriba a la derecha
01:45:10
el de la ruedecita
01:45:12
Vale, y dentro de este has pinchado
01:45:13
Show plugins content
01:45:16
Vale, ahí está
01:45:17
Y si no tenéis activo Show Engine Content
01:45:19
También, activad los dos
01:45:21
Ajá, hecho
01:45:23
Vale, hecho
01:45:25
Y con esto se os debería de ver esta carpetita
01:45:27
Ya
01:45:30
Yo ya la veía de todas, todas, eh, no sé
01:45:30
A lo mejor lo, vale
01:45:33
Pero no lo tenía pinchado
01:45:35
De todas maneras lo que voy a hacer es
01:45:37
Subiros este proyecto ahora tal y como
01:45:39
Lo tengo a Drive también, vale
01:45:42
Vale, terminal, gracias
01:45:43
Venga, pues nada
01:45:45
Pues volvimos ahora en 15 minutillos
01:45:47
Si os parece
01:45:50
Voy a dejar la pantalla con los controladores
01:45:50
¿Con qué?
01:45:53
Perdón
01:45:55
Con los controladores, con los nodos
01:45:56
El panel de nodos, sí, de material
01:45:59
Claro
01:46:01
Que me lo vais a copiar
01:46:02
De forma infame
01:46:05
Muy bien
01:46:06
Ahí está, os lo dejo por aquí
01:46:07
Ahí, vale
01:46:10
Muy bien
01:46:16
- Idioma/s:
- Autor/es:
- Diego Hernández
- Subido por:
- Alvaro H.
- Licencia:
- Reconocimiento - No comercial - Sin obra derivada
- Visualizaciones:
- 8
- Fecha:
- 26 de abril de 2024 - 22:22
- Visibilidad:
- Clave
- Centro:
- CFP JOSÉ LUIS GARCI
- Duración:
- 1h′ 46′ 21″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 1.19