Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 Thomvdm · Nov 02, 2017 at 09:20 AM · heightmapheightmaps

Heightmap to Array[256] and other way around?

My apologies if this question is illogical, I'm relatively new to heightmaps and am trying to figure out some of the ways I can work with them.


If I understand it correctly, a heightmap is a visual representation of 256 values (more if colors are used), divided evenly as a raster/grid across the image.


Is it possible to convert a heightmap to these values, so I can store them in an array of 256 values? And what about the other way, if I have an array of 256 values, can I transform this into a heightmap? This way I could manually or dynamically create specific heightmaps.


If this is not possible in Unity/C#, other methods are welcome as well :)

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 · Nov 02, 2017 at 10:18 AM

It is true that a heightmap is a grid of height values. It doesn't necessarily be 256 values. It could be a 16 bit number as well so you have 65536 steps. However this only applies to how the terrain might be stored in raw format on disk. Unity represents the heightmap with float numbers.


I also don't understand what would be the point of an array with 256 values. A heightmap is a 2 dimensional array and each array element holds the height of this point on the grid. You can get all height values in a 2d array by using GetHeights on a TerrainData object. Likewise you can use SetHeights to replace the height values of the terrain with the ones in your 2d array.


If you want to get / set all height values for a terrain the size of the 2d array depends on the size of your "grid". All information relevant to terrains is basically in the TerrainData object. If you have a terrain with a width / height or 512x512 you get a 2 dimensional array that is 512x512 in size (so it contains 262144 float values)


Dealing with heightmaps through code manually is quite complicated to get it right. They are ment to be created either with the terrain tools inside Unity or to import a heightmap from a raw heightmap file.

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 Thomvdm · Nov 02, 2017 at 01:15 PM 0
Share

Thank you, this helps a lot. SetHeights and GetHeights seems to be what I was looking for.

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

74 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

Related Questions

Heightmap is spiky, unsolvable for me 3 Answers

Unity imports heightmaps in kind of upside down order. 0 Answers

Terrains are not as seamless as their heightmaps. 0 Answers

Raw File / Heightmap Switch at Runtime 1 Answer

What makes up the binary data of a 16-bit heightmap? 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