[HowTo?] Planetary Rings [Complex]

What is the best way to achieve this in Unity3D?

I would say a particle system, but be careful… it could get GPU intensive very quickly.

I did it with objects once, but it does have a lot of overhead. Granted, they were all objects that were rotating with rigidbodies. I’m thinking, with some LOD to manage poly counts and making them all children of one object that is rotated, you might get decent performance.

Unity3 now supports batching. Use only a few different meshes of the rocks – change their sizes – also use only a few textures. Throw on some sphere colliders for collision. And as aforementioned, make the rocks a child of an empty gameobject – put a transform.Roate(x,y,z) script on it, and you’re good to go. (Also use LOD, since I believe batching only affects draw calls – not poly or vert count.) :smile:

how does LoD work in Unity? how would one use it?

you just make a distance check and if the distance is larger than what you define, you switch the mesh with an other which has less vertices, but in your case, you would use plain objects for every asteroid and you switch to larger plains (less in total amount) with more asteroid textures on them depending on distance.

Hey. As I was about to suggest that LOD be put on a list to be added as a standard feature, it occurred to me that I haven’t read any Summer of Code announcement. Did I miss it, or will there not be one this year?