Sytx, perdona no vi tu mensaje.
El gris de la textura para el Bump offset lo puedo coger del canal b ¿no? Vale, ahora recuerdo que en algunos tutoriales meten en el canal alfa la imagen desaturada y lo cogen de ahí, del alfa, pero bueno al final no sería mejor cogerlo del canal b? Se supone que es el eje Z, la profundidad, que es lo que interesa.
Y también cogerlo del canal b, sería lo mismo que hacer lo que dices tu de utilizar un constant 3 y bajar el b, solo que yo utilizo un constant 1, que es mejor ¿no?
No, el canal b del normal no contiene esa información, no tiene el eje Z en el normal no hay información de coordenadas XYZ tal y como las conocemos, la información que guarda el rg (rojo y verde) son vectores, con la información que te dan dos vectores sabes el ángulo de la normal, por eso el canal b no contiene esa información, tiene información, pero nunca he entendido que es, desde luego no es un desplazamiento, para ciertas cosas puede valer, pero para muy pocas.
Hace tiempo intenté hace un Shader que pasara un normal en un Parallax, aparte de perdida de tiempo por que hay mil programas que te lo hace, la cosa se complica un poco, la base era simple.
Código:
Float vx = ((float)red)/127.5 - 1;
Float vy = ((float)gren)/127.5 - 1;
Float vz = sqrt(1 - Vx*vx + vy*vy),
Slopex = vx / vz;
Slopey = vy / vz.
esto lo saque ahora de una web, porque no tengo ni idea de cómo explicar con palabras el lío del shader, pero más o menos era eso, excepto la resta que ponen que no la uso, y que el valor en vez de ser 125.7 es 127.5/256 que da 0.49, ya que en UE este valor va de 0 a 1 pero el bitmap va de 0 a 256, en el slopex a y uso un append para crear el bitmap, como me queda con solo dos canales le hago otro append para que tenga los 3 canales, esto me funcionaba en ciertas cosas, ruidos y cosas de esas, además el normal no puede tener valores muy bajos ya que se lía mucho, por eso digo que es una perdida de tiempo ya que hay software que te pasas de normal a desplazamiento.
Sobre si lo sacan del alfa, si metes el desplazamiento en ese canal, es la mejor forma de hacerlo, pero asegúrate que, el normal esta importado como Normal Map alpha, y que realmente tiene un alpha en ese canal.
Tus tres add se arreglan con un multiply por constan 3, pero ten en cuenta que multiplicamos por x píxeles con el valor de 0 a 1 si sumas muchas veces algo obtendrás un color blanco, ya expliqué antes cómo funciona esto, y un Parallax con un blanco no hace nada, en cambio si lo multiplicas tendrás más información.
De todas maneras, no sé hasta qué punto es tan importante el Parallax, porque con un buen Normal Map currado en
Adobe Photoshop he visto en algún tutorial que da también buenos resultados. Es realmente necesario para dar realismo? Lo que sí le veo al Parallax es que distorsiona bastante la textura al acercarte a ella, por mucho que ajustes los parámetros del Bump offset.
Yo parto de la base que el Parallax no está bien, es una chapuza que da el pego en ciertas cosas, ten en cuenta que se usa desde el 2001, pero no te creas que muchos juegos lo implementan.
El Parallax mapping lo que hace, como ya comenté, desplazar coordenadas de mapeado en el polígono, el cuanto y el hacia donde las desplaza depende de la vista tangencial de la cámara, o sea del jugador, y de un mapa en escala de grises que define el cuanto. Lo sé, me explico cómo el culo. Hasta luego.