Strumpy shader editor

Zerouks - 09/09/2014 18:35
Buenas gente. En Prehistory ([URL]http://www.juegoprehistoria.com/[/URL]) estamos tratando de buscar un sistema de Shader parecido al de Unreal para Unity, puesto que los materiales que trae la versión free del motor son muy básicos. Dimos con este script Strumpy Shader Editor que te permite crearlos conectando nodos al igual que se haría con unreal.

El problema qué se nos presenta es que estamos tratando de mezclar dos Normal Maps (normal map + detail normal map) y he probado a conectar los nodos tal como lo haría en Unreal y no da el resultado esperado:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #197985



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #197986



Al hacer las mismas conexiones en Unity el detail normal map apenas se ve en las zonas señaladas:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #197987



El mask de Unity está en el eje Z, he usado float 4 porque no tiene el 3 (en teoría el 4 hace la misma función). Tampoco trae Constant Bias Scale, que es la parte que he sustituido por el último add+multiply (en Unreal funciona así).

Estaremos muy agradecidos de leer cualquier posible solución. Un saludo.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #197985



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #197986



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #197987

Thrawn - 11/09/2014 16:49
Hola, el Strumpy Shader me suena qué se paró el desarrollo no? Algo de que lo/s habían fichado los de Unity, aunque aún se le puede sacar punta y es gratis. No te se resolver la duda, pero también podéis barajar Shader Forge, aunque es de pago, es muy potente. Saludos y suerte.
Zerouks - 11/09/2014 16:58
Pues no se nada de que este para él proyecto. El shaderforge lo estuve ojeando, pero como bien dices, es de pago, de momento no entra dentro de las posibilidades. Por cierto ¿Sabes si los shaders de ShaderForge se pueden usar en terrenos? Gracias por la respuesta, saludos.
Thrawn - 11/09/2014 17:34
Hola de nuevo, pues imagino que sí se podrá usar en Terrains (Ahí no lo he usado) ya que es muy reciente, tiene cosas nuevas. He llegado a usar tanto Strumpy como el Shader Forge y éste último está mejor optimizado, incluso me ahorraba nodos. En cuanto al tema de los normal map has repasado el hilo kilométrico oficial a ver si alguien dice algo?
Un saludo.
Zerouks - 12/09/2014 00:21
No he llegado a mirar el hilo, lo que si busque por Google y no llegue a encontrar nada. Lo que sí encontré es otra alternativa, Shader Fusion, tendré que probarlo a ver qué tal va. Saludos.
Zerouks - 14/09/2014 16:11

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198182



Lo logré. Con ShaderFusion.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198182

Thrawn - 16/09/2014 09:53
Estupendo. Al final si no es por un camino por otro. Puedes, por favor, comentarme por qué es tan complejo añadir el detail normal map? Vamos que ha priori pensaría en mezclar 2 Normal Maps a pelo, pero veo que hay que tener más cosas en cuenta como veo en los nodos de la captura del UDK. Gracias y un saludo.
Fiz3d - 16/09/2014 22:46
Esa función de Unreal no es correcta, el bias escale no es más que un sumar multiplicar, los valores correctos son sumas 1 multiplicas por 0.5 y tu sumas y multiplicas por 0.5, solo tienes sumar 1 en vez de 0.5.

A ver, creo que es eso, por otro lado, no creo que Unity y Unreal traten de igual forma los normal, prueba también a invertir el canal verde. Saludos.-.
Fiz3d - 18/09/2014 00:30

Estupendo. Al final si no es por un camino por otro. Puedes, por favor, comentarme por qué es tan complejo añadir el detail normal map? Vamos que ha priori pensaría en mezclar 2 Normal Maps a pelo, pero veo que hay que tener más cosas en cuenta como veo en los nodos de la captura del UDK.[.

Un normal no es una imagen, por eso no es tan simple modificarlos sin que salgan guarradas en el modelo, es un conjunto de vectores que crean nuevas normales en una cara, normalmente solo hay una normal por cara, el normal por así decirlo crea una normal por píxel, como la normal define hacia donde mira la cara con respecto, por ejemplo, a una luz si creas más normales en la misma cara la variaciones de luz de esa cara aumentan y también el detalle. Saludos.
Thrawn - 18/09/2014 09:01
Hola, gracias por la explicación Fiz3D, me a ayudado a entender mejor los detail. Aún se me escapan esos nodos vector3 pero poco a poco voy buscando más información para entender el funcionamiento.

Por cierto, que he buscado en el Shader forge y hay un nodo que hace lo siguiente:
Normal Blend (Tiene 2 conexiones base y detail)
Combines two normal directions, where the base normal is perturbed by the detail normal.

En cuanto saque tiempo ocioso me pongo a nodear a ver qué sale. Saludos.
Thrawn - 18/09/2014 09:09
Hola de nuevo, he encontrado un mensaje interesante, en este caso del ShaderForge, sobre la conexión de esos nodos, el resultado está al final del post.
[url]http://forum, Unity3d.com/threads/shader-rendering-object-normals-as-colors-usable-as-a-rendertextured-normal-map.248902/[/url]. Saludos.
Fiz3d - 19/09/2014 01:03
Los normal tienen sus cosas, pero es bueno saber cómo funcionan para usarlos correctamente.

Desgraciadamente de Unity no tengo mucha idea, yo soy más de unreal.
Thrawn - 19/09/2014 08:45
[QUOTE=Fiz3d;914552].

Desgraciadamente de Unity no tengo mucha idea, yo soy más de unreal.[/QUOTE]Me pirlan vuestros reflejos.
Zerouks - 19/09/2014 17:30
Ostras, acabo de ver las respuestas.

Fiz, acabo de mirar lo que comentas en Unreal y fíjate en las siguientes capturas:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198335



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198336



El normal aplicado en el modelo se ve exactamente igual de una forma qué de la otra.

En Unity así es como lo he hecho y todo parece funcionar correctamente:
Shader que trae Unity:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198337



Shader hecho por mi:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198338



En la imagen que puse la otra vez, el canal verde del normal si estaba invertido, por eso se nota la seam, pero no era ese el problema.

Por cierto, creo que Unity no te gustaría tanto como unreal. Por lo menos la versión free en cuanto a shaders está pelá pelá. No sé porque se usa en juegos indies si hace falta saber más código que con Unreal para hacer cosas que en Unreal son sencillas.

Por cierto Thrawn el Normal Blend ese que comentas seguramente sea la misma función que he puesto aquí, que es la qué trae Unreal también La verdad es que shaderforge tiene muy buena pinta. Saludos.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198335



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198336



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198337



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198338

Zerouks - 19/09/2014 19:24
Joder perdón, ese normal es el que tiene el canal verde invertido. Me equivocó al cogerlo. Este es el que está bien.

Shader Unity.


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198341



Shader por mí.


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198342



-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198341



🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #198342