Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 Artaani · Dec 14, 2016 at 11:53 AM · shadersplanetlandscapeprocedural texturing

GPU Procedural planets: How to convert grayscale highmap to normal map and use it as normal map on the GPU?

Hello. I am working on procedural generation of full scale planets.

I am already implemented GPU Perlin Noise and use it to generate diffuse texture of surface and displacement map.

But also, I need somehow to use this generated gray-scale high-map as normal map.

Is it possible to transform gray scale map into normal map right inside the shader?

Of course I can extract height map and convert it into normal map on CPU by using simple algorithm, but CPU is too slow for this task. I need to generate it right inside shader and not sure how it is possible, because in the shader I can't check neighbors of pixel. Or I can?

Or maybe I can use gray-scale map as "bump map" without converting to normal map? As far as I understand, "bump mapping" it is simpler technique of normal mapping which use only gray scale texture (single channel, not a 3 channel like for normal map). In result, I need to achieve a bump\normal maps for mountains like on this picture from "Outerra" using GPU noise I have (I already have height in each point).

alt text

k290.jpg (239.6 kB)
Comment
Add comment · Show 2
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 Glurth · Dec 14, 2016 at 05:07 PM 0
Share

Is the height-map static? If so, why do you need to compute the normal-map at runtime? Ins$$anonymous$$d, generate/bake it once from your height-map (where you CAN exa$$anonymous$$e neighbor pixels), and use the resultant normal-map in your shader?

Also, FYI: Good article on differences between these maps- http://blog.digitaltutors.com/bump-normal-and-displacement-maps/

avatar image Artaani Glurth · Dec 21, 2016 at 05:21 PM 0
Share

Thanks for reply. Yes, seems like I understood how to calculate normal map on GPU.

If someone will encounter the same problem - write me an email.

0 Replies

· Add your reply
  • Sort: 

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

63 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

Related Questions

Unity 5 Shader problems 2 Answers

Water shader for planet with animated foam on shores 0 Answers

Water foam shader that works on planet water 2 Answers

Optimizing noise-based pixelated shader. 0 Answers

Simple planet atmosphere 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