How to determine if SceneKit can produce sufficiently 3D graphics like Minecraft? Inspired by Minecraft and LEGOs, we created an app to promote creativity on smartphones. Many people like being creative but find a blank canvas daunting. "Recipes" inside the app let users create like the most talented individuals -- similar to how a cooking recipe lets anyone cook like Thomas Keller.

The problem so far is users say the app doesn't look "3D" enough.

Here's the relevant code that creates the scene and creates blocks: https://gist.github.com/panabee/dca88a591f94a3904023dacabd020ad9.

What they mean is they expect the app to look more like apps like this:







With encouragement from one of the admins, these screenshots from our app illustrate the disparity in "3Dness":


  


  


We're using SceneKit on iOS, but are having trouble identifying what is needed to make the app look more like the images above. We played with lighting and textures, but are new to 3D graphics as well as SceneKit and are unsure what to do.

We have tried to find consultants on StackOverflow, LinkedIn, Github, but this expertise appears not so common.

A few questions:

1) For iOS, is SceneKit capable of producing the images above, or do we need to use something like Metal?

2) If SceneKit is capable, what are the key concepts to learn?

3) (Happy to strike this question if it's considered off-topic) Which websites/forums could we find people to help provide advice if we get stuck?
What is missing?

Now that we can see images from your app, the difference that stands out most to me is the lack of shadows and ambient occlusion. This gives a very flat look as the colour of a surface does not vary according to its surroundings. This makes a big difference to how much an image appears to have depth.

Another effect which may be less important is that the surfaces are crystal clear all the way up to the horizon. Adding a mist/fog effect so that objects become gradually more obscured the further they are from the camera helps to give the impression of distance.

Both these effects can be seen most obviously in the first example image in the question. The nearest building shows ambient occlusion on top of the stepped red roof, and also the grass is in partial shade near to the buildings and animals. The trees in the distance look more obviously far away due to the distance fog making them only partially visible.

Can SceneKit provide these?

I haven't used SceneKit myself, but a search online reveals that both ambient occlusion and distance fog effects are both possible using SceneKit.

Another effect not used in the example images, but that you might like to look into, is depth of field. The example images all have everything in focus at the same time, whereas photographs often have a focal distance at which everything is in clear focus, with anything nearer or farther being out of focus. It seems SceneKit can also handle this. Since your competitors don't appear to be using this, you could either view this as unimportant, or as a feature that could give you an advantage.

I'd expect narrow depth of field to make a building app awkward, as parts of the object you are building would be out of focus. You may be interested in a wide depth of field that only creates a subtle blur for objects too distant to be part of what is currently being built, if that suits your purposes.



As you guessed, asking for off site resources is off topic. However, you can ask further questions about computer graphics programming here on this site, if you run into any problems implementing these effects.