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
1
Question by Cilantro · Oct 11, 2012 at 04:04 AM · texturemeshrealtimedecalpaint

Change texture of individual triangle on a mesh?

I need to know if there is a way to change the texture of an individual triangle on a mesh, rather than the entire mesh itself. And, if so, how could this be done? I have tried a few different techniques, and do not want to use SetPixels() because I don't want to change the original texture. Any ideas?

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 Fattie · Oct 11, 2012 at 06:39 AM 0
Share

there is almost certainly a much, much easier way to do what you are trying to achieve.

why not explain what your goal is here?

3 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by Eric5h5 · Oct 11, 2012 at 04:46 AM

Change the appropriate UVs in the mesh that correspond to the triangle you want to change. Keep in mind that no vertices for any triangles can be shared if you want that method to work (i.e., all vertices must be unique).

As for SetPixels, you don't need to change the original texture if you use that; just instantiate the texture first and change the instance.

Comment
Add comment · 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
1

Answer by karl_ · Oct 11, 2012 at 05:04 AM

You could use `SetTriangles()` to create a subMesh for that triangle, allowing it to have a separate material.

Comment
Add comment · 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
1

Answer by aldonaletto · Oct 11, 2012 at 05:12 AM

Maybe you could do this with some UV tricks. You could for instance make a kind of atlas - a texture divided in two, where the lower part is the regular image, and the upper part is the alternative texture; make the UV map entirely in the lower part (y between 0 and 0.5), and simply add 0.5 to the y coordinate of each UV pair of the desired triangle when you want to change its texture to the alternate image. For this to work, the triangles should have individual vertices (shared vertices like those used in Unity's primitives would produce horrible images in the adjacent triangles!)
Another possibility is to use some specialized shader that mixes two (or more) textures according to a mask, like the terrain splat shader - you should modify the mask to control which texture appears on a given area.

Comment
Add comment · 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

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

13 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

Related Questions

Painting on objects at runtime/in editor 1 Answer

How to get uvCordinat of raycast hit without mesh collider 1 Answer

How can I "generate a mesh" for a projected image or decal? 0 Answers

Real time vertex paint (or similar solution) possible? 2 Answers

Dynamic Runtime Decals 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