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 rialesj · Apr 02, 2014 at 04:12 AM · materialstexturescombinemergingcombined skinned mesh renderer

How to combine materials at runtime?

Hi! I've been having a lot of fun making a tile generation system for my game, and for the most part it's worked out pretty well. That is until I got to getting materials mapped. At this point I now have all the meshes merged, and all the materials synched onto it as well. BUT! They're all separate on the newly formed mesh. They are all of the same texture, but at different offsets on that texture. In the name of my draw calls, please, someone suggest a solution, or point to a document I didn't read and make me feel stupid. x) thanks.

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

1 Reply

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

Answer by Bunny83 · Apr 02, 2014 at 04:44 AM

You can't "merge" materials. You just have to use the same material. You can't use the materials offset / scale property to select the tile since that changes the texture matrix of that material. If all tiles should use the same material you don't want to modify the scale / offset at all.

What you actually have to do is map the texture the "normal" way by changing the uv coordinates of your tiles. So instead of using

 (0, 0)
 (0, 1)
 (1, 0)
 (1, 1)

you would change the uvs of a tile to match it's part on the texture. For example on a 4x4 texture atlas you might have something like

 (0.25, 0.5 )
 (0.25, 0.75)
 (0.5,  0.5 )
 (0.5,  0.75)

To calculate the uvs you just need to do something like this:

 // C#
 float u = 1.0f / xTiling;
 float v = 1.0f / yTiling;
 
 uv[0] = new Vector2(u*xTileIndex   , v*yTileIndex    ); // 0,0
 uv[1] = new Vector2(u*xTileIndex   , v*yTileIndex +v ); // 0,1
 uv[2] = new Vector2(u*xTileIndex +u, v*yTileIndex    ); // 1,0
 uv[3] = new Vector2(u*xTileIndex +u, v*yTileIndex +v ); // 1,1

Of course it depends on how your tile-mesh actually looks like and where the vertices are, so you might need to swap some uvs to match your mesh. This you need to calculate for each tile.

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

21 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

Related Questions

Hownto apply textures to materials in unity 5? 4 Answers

Texturing a large surface 2 Answers

Transparency Drawing issues 0 Answers

3d model editing and multiple textures per material 0 Answers

Skinned Mesh Renderer Material 1 Answer


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