Esto es para un videojuego en el que una máscara de especularidad está en el canal alfa del mapa normal. Necesito crear una imagen en la que el valor alfa de algunos píxeles sea 0 (para indicar que no hay especularidad), pero en la que se conserven los valores de color de esos píxeles (manteniendo los datos normales).
Encontré una manera de hacer esto manualmente usando imagemagick, colocando mi canal alfa deseado en una imagen separada y luego fusionándolos. Así es cómo:
convert ground_0045_nm.tga alpha.tga -alpha off -compose copy_opacity -composite result.tga
Esto da como resultado una imagen con los canales de color de ground_0045_nm.tga y el canal alfa de alpha.tga. (No pude incrustar ejemplos, lo siento).
Lo que estoy buscando es una forma de hacer esto en GIMP.
El enfoque obvio sería pegar el canal alfa deseado en una máscara de capa y luego aplicarlo. Desafortunadamente, GIMP parece desechar los datos de color de los píxeles transparentes si hago esto. Lo que significa que si desactivo el canal alfa, veo una textura blanca en su mayoría en blanco.
También puedo abrir mi imagen correcta, producida con imagemagick, y GIMP parece desechar los datos de color en el momento de la carga.
Sin embargo, puedo verificar que mi imagen es correcta al cargarla en el motor del juego y piratear los sombreadores GLSL para mostrar el mapa normal directamente.
¿Hay alguna forma de evitar este comportamiento de GIMP? Sospecho que esto puede ser un error de GIMP.
Esta no es una opción estándar para los programas de imágenes, como descubrió. Sin embargo, GIMP, incluido GIMP 2.6 , tiene esa opción, pero para archivos .png (podrá ver la opción para "conservar información de color para píxeles transparentes" en el cuadro de diálogo exportar a .PNG).
Para un archivo TGA, sus opciones son: editar el complemento del archivo TGA en GIMP y copiar la funcionalidad desde el complemento .PNG. O use otro programa para convertir un archivo PNG a TGA que conserva la información de datos de píxeles (tal vez imagemagick lo haga).
Aparte de eso, no sé qué tecnologías está usando para su juego, pero es 2015, y usar el formato de archivo TGA solo porque es fácil obtener acceso al valor de píxel sin ninguna otra biblioteca en su código suena extraño. Las imágenes PNG son compatibles con la mayoría de los lenguajes y marcos; debe considerar seriamente cambiar el formato de archivo de imagen que está utilizando, si no fuera por otra cosa, para obtener una reducción de 5 a 50 veces en el tamaño de los archivos de imagen.
Además, debe considerar actualizar a GIMP 2.8 - 2.6 es una tecnología de más de 5 años.
GIMP 2.6.12 está desactualizado, esta podría ser la causa de su problema. Además, en general, GIMP no hace ninguna promesa con respecto a los valores de color de los píxeles completamente transparentes, pero en este caso, y con 2.8.14, no puedo reproducir su problema.
Cargar un archivo TGA y pegar el contenido de un archivo TGA diferente en una máscara de capa y luego exportar la imagen (ya sea con o sin aplicar la máscara, ya que esto no es realmente necesario) da como resultado un archivo TGA transparente con todos los colores. valores para píxeles transparentes intactos.
Entonces, la respuesta a su pregunta podría ser: actualice a GIMP 2.8.x
Max E.