Saltar navegación

Curso de Unreal para Aximmetry. Sesión 4 (parte 1) - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 26 de abril de 2024 por Alvaro H.

8 visualizaciones

Materiales y texturas

Descargar la transcripción

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 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
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
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:
es
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid