Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
1

Tutorial: Create Realistic Planetary Rings in AE

Community Expert ,
Jun 23, 2025 Jun 23, 2025

Tutorial showing how to take advantage of the Advanced 3D Renderer to add a ring to world. You’ll learn how to:

  • Build a procedural ring using Fractal Noise and Polar Coordinates
  • Add fake shadows and lighting that respond to your scene (older versions of AE, not needed for the latest release)
  • Use CC Particle World to simulate rock-filled space rings
  • Create realistic shadow interactions between your ring and planet (older versions of AE, not needed for the latest release)

 

This video builds on my earlier tutorial, where I showed how to create your own planets directly in After Effects, building up the textures and exporting them to use with a 3D wavefront OBJ file. Following on from that project, we now get to take advantage of the planet being in 3D space by adding a 2.5D comp of a ring system and have it loop around our sphere. But if you want to go further and depict the rocks that make up the rings, then I also demonstrate how to use the included CC Particle World to create hundreds of particles of rock images and have them surround the planet. But because that doesn't loop correctly, I have also made and shared a hemisphere you can use to create a 3D Luma Matte for the particles so that they appear to go behind the planet.

CC Particle World Code:
Position X:
--- CODE START ---
x=thisComp.layer("Emitter").transform.position[0]-thisComp.width/2;
x/thisComp.width;
--- CODE END ---

Position Y:
--- CODE START ---
y=thisComp.layer("Emitter").transform.position[1]-thisComp.height/2;
y/thisComp.width;
--- CODE END ---

Position Z:
--- CODE START ---
z=thisComp.layer("Emitter").transform.position[2];
z/thisComp.width;
--- CODE END ---


Angle the ring shadow away from the Sun (add to Z rotation):
--- CODE START ---
var light = thisComp.layer("Sun").toWorld([0, 0, 0]) // name of your light layer
var planet = thisComp.layer("Planet NULL").toWorld(thisComp.layer("Planet NULL").anchorPoint);
var dir = light - planet; 
radiansToDegrees(Math.atan2(dir[0], dir[2])) + 180;
--- CODE END ---

Random frame expression:
--- CODE START ---
random(0,4)/30
--- CODE END ---

Emitter expression:
--- CODE START ---
var L = thisComp.layer("Emitter position");
L.toWorld([0,0,0])
--- CODE END ---

 

 

 

TOPICS
How to
77
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Jun 23, 2025 Jun 23, 2025
LATEST

Thanks for your ongoing contributions, @ShiveringCactus. I look forward to seeing more helpful tutorials like this.


Thanks,
Nishu

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines