Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Planet Rendering

Sign in to follow this  


Something I've always been interested in is planet rendering.
Although it's been done a few time in Unity already, I'm having a go at it.
It's one of those complicated things that require you to be firing on all cylinders.
Well, I'm not anywhere near close to anything yet, but after playing with noise generation, custom procedural geometry and custom shaders, I have something to show. The image progression below is 3D noise applied to a custom sphere, a detail diffuse added and adjusted color ramp generated from the noise height values, then lastly the first rough pass of generating tangent space and normal maps from the noise height values.

'Kinda fun.
These images would represent the 20,000 km distance.
Now it's getting close to thinking about how to deal with landing on this sucker.


edit: added blended detail normals.
maybe sharpened it up too much...but I'm just going with it.

Sign in to follow this  


Recommended Comments

Thanks. It's a trip in that the Unity scene view is empty and everything is created in code. That was something of a transition for me. Nice in that you feel like you're working with a home brew framework but at the same time you know you've also got the lambo parked in the garage.

Share this comment

Link to comment

Looks fun, maybe you will be able to add some more channels too like specular or environment map or something, with different values for the different biomes, like having light bouncing off the ocean etc! :)

Share this comment

Link to comment
Totally want that...For sure...but it will be in the inner level of detail. (once I figure out how to get there) Right now I'm side tracked with a Rule Engine article to power my game state.

Share this comment

Link to comment
Better yet, take a look at catlikecoding. I've gone through most of these already and is what my custom implementation is based. For a bit of over kill, check out SimpleRuleEngine. I like this as a scripting style example, but the articles continue on to a neat little GameStateEngine. The last set of articles here have missing links towards the end but his site is searchable and they are there. Just handing you a few scripts doesn't tell the whole story as there is some component set up as well.

Share this comment

Link to comment

Next section is to add atmosphere, right? Some clouds on there would be the finishing touch.

Share this comment

Link to comment
Thank you for the bump. Lately in the forums (and old topics) there have been some interesting discussions on this. I've gone ahead and have chosen two books on the subject. 3D Engine Design for Virtual Globes (which arrives tomorrow) and Texturing and Modeling : A Procedural Approach. I've always liked GPU Gems 2:Atmospheric Scattering but have had problems with getting the chapter implemented. Clouds would be nice and another good use of my noise methods but far from the finishing touch. I've been trying to keep an eye on your RTS project liking what I'm seeing.

Share this comment

Link to comment
Thanks for praise. What we're looking at is pretty standard normal mapped geometry. Nothing special yet. Everything you need to make something like this is in the 'catLikeCoding' link above. I've only modified the lesson sphere cube to allow the six faces to have independent uv mapping and applied 3D noise that is also demonstrated and stitched them together for this project. Then went through the normal mapping lessons to get that extra realism. Pretty straight forward. The real trick now is working out level of detail methods to complete the illusion that there is more there than there really is. Hope to make that my next journal entry.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!