Equal reflections on glass in perspective view

In perspective view, I can’t achieve similarity for light reflections on two equal glass objects, whatever light source I use. If say, on one object reflection appears on the left, then on the second object it is on the top or on the right, like they’re produced by two light sources shining in different directions. Is there any trick how to achieve equally looking reflections on both (several) objects? Thanks a lot in advance.

Are you using two lights, one above each glass object? What light type (emissive object, point, sun etc)? If there is only one light and it is not a large emissive plane or sun, they can’t look similar as the light is in different relative place for each object.

A .blend file would be helpful here, as from the image itself it is hard to see what your scene setup looks like.

The scene settings are pretty easy at the moment; I’m trying to make reflections using just world texture. No I haven’t tried two lights sources above objects. I’ve already tried singular mesh emission, Sun, other lamps. With no success – reflections look differently. Only switching to orthographic view makes them equal.
The file is more than 30Mb – because of high-polygonal glass objects.
Sorry I haven’t got your point clearly - did you mean that usage of 2 light sources, one for each object - would give better results?


I guess you could bake the reflections on one of them and use the result on both? However, it does feel right that the reflections should be different due different perspectives to both objects.

Thank you, your idea about baking sounds useful.
And, you maybe right, reflections actually shouldn’t be equal…I’m really not sure now.

If baking makes stationary reflections (I don’t bake enough to know) for different camera angles, and you still want to cheat, you can make a probe (equirectangular panoramic camera) at a decent vantage point. Then use the generated image (should save as exr) as equirectangular environment map fed reflection texture coordinates. I have no idea how to fake refractions (for your glass), so it may be expensive regardless.

This is what I managed to achieve using this technique (real quick and dirty setup):



The node setup used for high IOR colored glass with varying roughness (using Skorupas blur node) which is very reflective for illustration:


For colored metallic objects with fake reflections (instant to render and preview), output only the emission and turn up color multiplier. I messed up camera, so I had to rotate my probe environment map (reflected sun position should match shadow created, right? :)). I’m also using a random generator node group which can be ignored. All objects use this single material.

Of course this is as fake as it gets. Seeing reflections of suzanne in herself or on the backside of other objects may pass the test in animation, but I wouldn’t use this for nice stills.

Edit: I discuss the randomizer stuff in this post, in case you’re interested.

Thank you for the great explanation. First of all, until now I thought that only with orthographic camera you can see reflections located physically correctly, while with perspective camera you can see them only distorted. Maybe I’m wrong? If I’m right, then there should be a way to compensate this visual distortion, and in this regard any cheat solution may have sense. So I really don’t know now which way I should go – either “trust” perspective camera or start to perform any cheat solution? Please a bit more about your scheme – could you please put a bit more in details how to create exr probe? I’ve never done anything like that.
And, do some nodes in the scheme represent groups, creating of which is explained in the linked post?

Not sure that’s true. From my understanding an orthographic camera is physically completely implausible and therefore only has very limited use cases (cross section / isometric views etc.). So why would that camera type - of all things - produce physically correct reflections?

If there is one light source, and two objects at different locations, the reflections will be different. You can’t see the exact same reflection from mirror from two different places, can you?

Guys here is the scene lighted with only Sun lamp, other sources are deactivated. If you confirm that such a difference between reflections is realistic then I’ll believe in it too.

What are your camera settings?
If you use a 24mm lens, you’ll get more differences in the reflections than if you use a 120mm lens… either way, reflections should be different in any case.

35mm, i.e. by default. Of course bigger value would give more similar reflections, at the cost of perspective effect though. The bigger the value, the more camera acts as ortho.

Can you share what you have in the scene there (light, geom, material, hdris if any)? I might have a look at it tomorrow.
You’ve been around for a while, but just to make sure; I’m guessing no flipped normals or refraction based glass on thin sheet glass? Those problems might look different though, but you never know. I don’t think I’ve ever done an orthographic render.

I thought you wanted them equal for the possible speedup. The homemade hdri I mentioned was only to speed things up. One tutorial, incl modelling the scene to be used (skip that, but note the special camera setting), is thisone.

On this example, it’s clearly seen that Sun reflections are located equally on a whole row of similar objects. That makes me believe that similarity of reflections seen with ortho camera is closer to real situation than different reflections in perspective view.

Now compare them to reflections on other rows and you see, there is nothing equal there. In your shot from fist post the objects are almost side by side, not behind each other. So better compare two windows that are next to each other, not behind, and see if you can find this equal reflection anywhere. On the left row the reflection is on the right, and on the right row there is no direct reflection at all. Must be some crazy unrealistic thing going on…

Thank you, kesonmis. I however am pretty sure that not depending on what’s the relative position of two or more objects (side by side, one behind another etc), there should be at least one real Sun position (location, angle, rotation) which would provide equal reflections for a viewer. But in Blender perspective view, such a position of Sun obviously doesn’t exist.

What is your reasoning that there MUST be at least one Sun position where reflections on arbitrarily placed objects look the same? As hard as I try, I can not find the logic behind this.

Scatter some small mirrors randomly in your room and then see if you can find a place for a lamp so that it is visible for you from all mirrors without adjusting the mirrors themselves.

The look of reflection depends on location of sun, object and viewer. Now, if all objects are in different places, they can’t look the same. There is only one special case where the reflection will not change, and it is with a uniform light source (point or sphere) and object being rotated around the axis that is formed between positions of viewer and light. Rotate the object around that axis and reflection will be the same. Obviously your windows do not satisfy this transform.

Can you reproduce such a similarity of light reflections in Blender?

With respect to what? Other than caustics based effect, I don’t see why that shouldn’t be possible.


Similar, but not the same, just as your example.

Attachments