1
\$\begingroup\$

I'm experimenting with 3D using SceneKit on iOS. I'm trying to create a galaxy but would appreciate some guidance on the following things:

  1. I'm having a hard time working out how to make the galaxy seem 'big'. I've created multiple solar system nodes in a spiral, but the distances between them are hard to get right. I want to get a sense of scale, but I'm not sure of the best approach. Do I want to put huge distances between solar systems, and make the objects in the system very large too? In this case I need to set the camera zFar to be massive. I feel like I'm missing something.

  2. I've created a cube map for the 'galaxy'. As I zoom in on a solar system, the cube map seems to come in very close, which breaks the illusion of scale. How do I make that better?

Thanks for any guidance!

\$\endgroup\$
  • 1
    \$\begingroup\$ Can you define what you mean by "seems to come in very close"? Or include a video/gif of the effect you're seeing? \$\endgroup\$ – DMGregory Jul 3 '19 at 2:29
  • \$\begingroup\$ @DMGregory Here's a link to what I'm seeing streamable.com/lwoh1. My camera is in the same node hierarchy as the solar system. The solar system is a node in the 'universe'. I'm using the built in camera controls of scene kit like this: scnView.pointOfView = cameraNode scnView.allowsCameraControl = true It feels to me like the sky box zooms in too much as I zoom in to the solar system \$\endgroup\$ – BinaryGuy Jul 3 '19 at 3:58
  • 2
    \$\begingroup\$ Looks like you're zooming by modifying the camera's angular field of view, in which case what you're seeing looks exactly correct, even for an infinitely distant starfield. Have you considered applying your zoom by moving the camera closer instead / in addition to a milder FoV change? \$\endgroup\$ – DMGregory Jul 3 '19 at 4:03
  • \$\begingroup\$ Thanks @DMGregory I didn't consider that, and I thought it was what the allowsCameraControl did naturally. I just read up on it a bit, and it seems pinching doesn't move the camera closer. I'l give your suggestion a go. \$\endgroup\$ – BinaryGuy Jul 3 '19 at 4:34
1
\$\begingroup\$

I work on something similar and wondered about that as well. I wanted giant stars and supermassive black holes to be perceived as incredibly huge (which they are). My thought was that any star would "look" and behave the same if you simply stood further away.

Meaning: A star with the diameter of 10 at a distance of 50 will look the same as a star with a diameter of 1000 at a distance of 5000. But there are two things to consider:

  1. Giant stars have a very low relative mass! Meaning while their radius is thousands of times larger than that of "normal" stars, their mass is merely a multitude of several hundreds as large. Meaning their gravitational effect is much lower, probably causing planets to revolve around them much closer - relatively. Their lifespan is therefore also much lower, because they effectively burn their mass much quicker than other stars.
  2. The speed at which stars pass by as you move in space is essential (especially FTL). If you see that normal stars pass by as visibly small objects around you, but some stars just appear to be almost static even though they are of similar size on the screen - their size is perceived as much higher.
  3. Seeing large objects already at a large distance moving much quicker than even larger objects behind them also contributes to the sense of scale. Meaning: Flying past a star and seeing a giant star behind it will cause the star in front to move relatively quickly. This clearly indicates that the giant star is indeed gigantic. This plays together with number 2.

So movement is probably the best way, and the setup of the solar system the other. One scenario I can imagine is that giant stars have plenty of planets revolving around them (their mass is still high) at much closer range. It's possible that this is not scientifically accurate, but from a visual and worldbuilding perspective, it might be feasible solution.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.