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 alebasco · Feb 13, 2015 at 01:32 AM · shaderterraingrassadvanced

Accessing the Terrain detail material

I need to access the terrain detail material, to send a value to the shader using material.SetTexture("TestTexture", texture)

(I replaced the default grass shader with my own which will utilize this, by adding a file with the same name/path, but I cannot find anyway of accessing the instance of the shader at runtime..)

The closest thing I can think of is to access terrain.terrainData.detailPrototypes[0].prototypeTexture, and force additional data into that texture. This would work, assuming that it is a live link, not just set on initialization (which is probably the case), but is super hacky, when all I need is a reference to the material that Unity is using for the details. I'd then have to rewrite how it read from the texture for basic albedo color.

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

2 Replies

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

Answer by alebasco · Feb 13, 2015 at 03:20 AM

I ended up going with Shader.SetGlobalTexture()

This isn't the most natural, but it seemed to be the only sane way of doing it.

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 HowlingMoonSoftware · Apr 01, 2017 at 08:11 AM

If you name your shader the same as the one Unity uses, yours will override it.

For example: "Hidden/TerrainEngine/Details/Vertexlit"

Source: https://forum.unity3d.com/threads/terrain-detail-mesh-normal-map.176806/

Comment
Add comment · Show 1 · 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 alebasco · Apr 08, 2017 at 03:46 PM 0
Share

In the original post "(I replaced the default grass shader with my own which will utilize this, by adding a file with the same name/path, but I cannot find anyway of accessing the instance of the shader at runtime..)"

I already used my own replacement shader, the question from 2 years ago was how to access the material it was actually using, not how to overwrite a shader.

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

20 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

Related Questions

Disable grass fade 1 Answer

Problem shader graph on terrain detail mesh don't show correctly 0 Answers

Alpha channeled grass 0 Answers

Unity Terrain Grass - Make space for player 0 Answers

How do I make the default grass billboard shader opaque? (URP) 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