- Home /
Color specific sections of a texture
Hello, everyone.
I have this code, which allows the user to choose the colors of certain sections of the character's clothes. It works by taking a base color-coded texture and replacing the colors in it for the ones the player chooses, but I have a problem.
     public void Gen()
     {
         ShirtColor = MyPicker.corShirt;
         ShortsColor = MyPicker.corShort;
         SocksColor = MyPicker.corSocks;
         DetailColor = MyPicker.corDetail;
 
         int contx = 0;
         int conty = 0;
         foreach (Color32 pixel in tex1.GetPixels())
         {
             if (pixel.r < 120 && pixel.g > 100 && pixel.g < 250 && pixel.b > 230)
             {
                 Finaltex.SetPixel(contx, conty, ShirtColor);
             }
             if (pixel.r < 120 && pixel.g > 140 && pixel.b < 10)
             {
                 Finaltex.SetPixel(contx, conty, ShortsColor);
             }
             if (pixel.r < 115 && pixel.g < 115 && pixel.b > 140)
             {
                 Finaltex.SetPixel(contx, conty, SocksColor);
             }
             if (pixel.r > 130 && pixel.g < 90 && pixel.b < 90)
             {
                 Finaltex.SetPixel(contx, conty, DetailColor);
             }
             if (contx < tex1.width - 1)
             {
                 contx++;
             }
             else
             {
                 conty++;
                 contx = 0;
             }
         }
         Rp = MyPicker.R;
         Gp = MyPicker.G;
         Bp = MyPicker.B;
         Finaltex.Apply();
         gl.generated = Finaltex;
         
 
     }
It works, but it's too slow. I only call it once, when the player confirms the color they want, but still, the delay is too uncomfortable in smartphones.
Is there a better way to do this? Can a shader be used for that?(I understand nothing of shaders...) Or maybe a more efficient algorithm instead of checking each pixel?
Answer by DaveA · Feb 07, 2013 at 06:14 PM
Instead of modifying the texture, use a whole different one. Or better yet, separate out the sections that need to be changed into a different material and affect the base color.
Your answer
 
 
             Follow this Question
Related Questions
Color specific sections of a texture 1 Answer
Unity Standard Shader Detail Albedo x2 Own Colour 0 Answers
Why Does My Scene Do This? 1 Answer
Built in shaders - FX? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                