Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Jesse2431 · Jan 05, 2021 at 02:25 PM · texturecolor change

Need to change color of a texture

Hello

Is it possible that I can change the color of a part of a texture with this (https://imgur.com/a/v79JxqK) texture? I want the black to be the stuff that get's changed from the original (https://imgur.com/a/v79JxqK scroll down a bit) texture. So I can only color the body part of the vehicle instead of using diffuse which colors the whole car.

If it's unclear, please tell me and I will explain it more.

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image SkandYxyz · Jan 07, 2021 at 04:11 PM 0
Share

Do you want to change the texture upfront in Photoshop or the texture in memory or handle it within a shader? It seems you want to use/create a shader that handles this? If so, which Unity version and Renderpipeline do you want to use?

2 Replies

· Add your reply
  • Sort: 
avatar image
3
Best Answer

Answer by SkandYxyz · Jan 08, 2021 at 06:57 PM

It can be done with shader coding. When you use build-in standard shaders you can write your own shaders. in this case you can simple write a surface shader like this and apply the albedo and mask texture:

 Shader "Custom/MaskShader"
 {
     Properties
     {
         _Color ("Color", Color) = (1,1,1,1)
         _MainTex ("Albedo (RGB)", 2D) = "white" {}
         _MaskTex("Maks (RGB)", 2D) = "white" {}
         _Glossiness ("Smoothness", Range(0,1)) = 0.5
         _Metallic ("Metallic", Range(0,1)) = 0.0
     }
     SubShader
     {
         Tags { "RenderType"="Opaque" }
         LOD 200
 
         CGPROGRAM
         // Physically based Standard lighting model, and enable shadows on all light types
         #pragma surface surf Standard fullforwardshadows
 
         // Use shader model 3.0 target, to get nicer looking lighting
         #pragma target 3.0
 
         sampler2D _MainTex;
         sampler2D _MaskTex;
 
         struct Input
         {
             float2 uv_MainTex;
         };
 
         half _Glossiness;
         half _Metallic;
         fixed4 _Color;
 
         // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
         // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
         // #pragma instancing_options assumeuniformscaling
         UNITY_INSTANCING_BUFFER_START(Props)
             // put more per-instance properties here
         UNITY_INSTANCING_BUFFER_END(Props)
 
         void surf (Input IN, inout SurfaceOutputStandard o)
         {
             // Albedo comes from a texture tinted by color
             fixed4 c = tex2D(_MainTex, IN.uv_MainTex)*(1-tex2D(_MaskTex, IN.uv_MainTex)) + tex2D (_MainTex, IN.uv_MainTex) * tex2D(_MaskTex, IN.uv_MainTex)*_Color;
             o.Albedo = c.rgb;
             // Metallic and smoothness come from slider variables
             o.Metallic = _Metallic;
             o.Smoothness = _Glossiness;
             o.Alpha = c.a;
         }
         ENDCG
     }
     FallBack "Diffuse"
 }
 

alt text

alt text

Here are some learningresources:

Unity manual about writing surface shaders Unitys overview of writing surface and vertex/fragment shaders

If you are using different renderpipelines like URP or HDRP there is a free visual shader programming tool from Unity called ShaderGraph.

Unity Shader Graph introduction

A good tool in current build-in renderpipeline for people with less knowledge on shader programming to understand and learn shaderprogramming might be a visual shader programming tool like Amplify Shader Editor.


screenshot.png (260.0 kB)
mask.png (1.7 kB)
Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Jesse2431 · Jan 08, 2021 at 08:10 PM 0
Share

Will try this asap, if it works I will mark it as answer

EDIT: This is fantastic!! It works!

avatar image SkandYxyz Jesse2431 · Jan 10, 2021 at 10:10 AM 0
Share

Thank you, you're welcome!

avatar image
0

Answer by Tomatotom1234 · Jan 07, 2021 at 05:17 PM

are you talking about changing the color in unity or in some art program?

Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Jesse2431 · Jan 08, 2021 at 03:34 PM 0
Share

in Unity I'm talking about.

avatar image Llama_w_2Ls Jesse2431 · Jan 08, 2021 at 05:48 PM 0
Share

You can apply the texture onto a sprite renderer and change the color of the sprite renderer, which would render the whole sprite in a new color. However, the image you showed, where parts of the texture are black but some parts are green, cannot be done just in Unity. (Correct me if I'm wrong, anyone). You might want to have two textures, made using another program, import them, and swap them when you want to modify the color of either texture. @Jesse2431

avatar image Jesse2431 Llama_w_2Ls · Jan 08, 2021 at 08:10 PM 0
Share

Need to have this on a mesh, not a Sprite.

Show more comments

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

143 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Coloring textures in Unity3d 1 Answer

Assigning UV Map to model at runtime 0 Answers

Changing color of texture with transparency efficiently 0 Answers

Terrain changes color in WebGL build 2 Answers

Making a map: How to change color of specific areas in texture? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges