Point Light Problem (I'm guessing simple)

I’ve just started with Unity, and am having issues with something that seems like it should just work. I have a scene with two cubes next to each other, and a single point light. I’d expect that the point light would be able to shade the two cubes correctly (the light would be bright in one spot, then slowly fade the further it gets from the light). Instead the two cubes have their own light based on where the point light is that doesn’t make sense (the light has faded on cube 1, and yet is bright again on cube 2 despite being further away).

I’ve looked around for information on getting this working and have found nothing, and have tried to change a bunch of settings myself (the picture attached is with everything default as far as I know). This seems like it shouldn’t even be an issue… Any thoughts?

Looks like your cubes are using smooth shading instead of sharp. Have a look in the mesh import settings and change it to calculate hard edges or whatever it’s called.

Where are your cubes coming from? Are they imported from a 3D package? Or did you use the GameObject menu to create them? Are you using the Vertex Lit Rendering Path?

I couldn’t replicate your results using native Unity GameObject cubes. So Zomby may be right in that it’s an import setting. Try the same experiment using native (non-imported) cubes and see if you get different results. If you do, it’s an import problem. If you get the same results, it is something else. That will at least narrow the problem down for you.

And welcome to Unity.

Yup. It was the models. I usually use 3dsmax, but switched to Blender since it’s free. I tried my 3dsmax models and they work fine. Seems some setting in Blender is messing things up. I worked out how to fix it in Unity now by messing with the Normals Tangents model import settings, but I’d like them to import properly without me messing with them in Unity. Hopefully it won’t be too hard to find that setting.

For anyone that stumbles in here with the same issue, here are the two ways I’ve found to fix the problem:

Blender:
Go to Edit Mode, select the model’s edges (press A for all, or just select the ones that need to be sharp), press Ctrl-E to get edit options, and do Edge Split. It should work fine in Unity then.

or

Unity:
Click on the imported asset, change to Model in the Import Settings and change Normals to Calculate. Messing with the Smoothing Angle can also change the results, but anything under 90 seems to look the same on a cube (and anything over 90 is messed up).

Cool, glad you got it figured out.

I’m not a Blender person (I spend my time in Maya), but there ought to be a way to tell Blender which edges ought to be sharp and which edges ought to be continuous and have it handle it automatically, so that you don’t have to manually set every edge. A 90 degree angle should definitely always be a sharp edge, you really shouldn’t have to tell Blender that it is split.

In Maya, that setting is under Normals->Set Normal Angle. I have mine currently set at 33 degrees, so any two sides with angles less than 33 would be smooth, and greater than that would be split automatically. There must be something analogous in Blender.