Individiual Environment to Reflect for an Object in the Scene.


For 2 days now, I’ve been trying to create a reflection on an object in my scene. I don’t want other objects to reflect that environment, I want only only this particular object to do it.

I used an Env Ball Node as I read in some tutorials, but it doesn’t work. First of all the reflection from the env ball is blending incorrectly with the material’s surface color. It should be multiplied but the effect I’m getting is sorta additive. Secondly the reflection doesn’t disappear where the ground plane starts, causing a double exposure effect. Here’s the render I got…

Please help me. I’m sick of this. Please tell me how to achieve this effect & pretend that I’m a total beginner in maya, hypershade & shader networks.

& One more thing if it won’t trouble you. Could you please tell me how do you know all this stuff?
All these tricks, nodes (sample compositing nodes, all these connections).

I mean; I watched EVERY DIGITAL TUTORS video about rendering TWICE! In none of them even these simple things were mentioned, not even a little bit! In some tutorials I read online, I look at the shading network screenshots people post. I don’t have a clue about any of the nodes & connections between them. What am I missing? Can you recommend me some books? tutorials? I don’t feel myself good please help me…


Reflections aren’t “multiplied”. The result looks kind of correct, however you could turn down the Color Gain under your reflected file node so it appears a little darker and also make the reflection is fresnel. I think that’s your main issue.

Could you please tell me how do you know all this stuff?

No ones does! Just keep it simple. Only build a complicated network if it’s needed - otherwise keep it as simple as possible. IMO this is the best way to do things.


I understand. However I need an environment which only reflects on a mia_architectural material, & couldn’t find any answers for this.
You said there’s no problem in the render image I posted in my previous message. I think a big resolution render image can show the double-exposure problem better.

I connected an “Env Ball” node to the “Reflect Color” of the “mia_material” & it ended like the image above.

When I did the same thing with “Maya Blinn” material. It worked. Look at the image below.

So; the thing I want is to make the “mia_material” to be able to reflect an environment of its own. How can this be achieved?



Sounds like you want a total fake reflection there… one way would be to turn off reflectivity all together and connect an environment texture to the “Additional color” slot. A sampler info node and the facing ratio attrib. may help you to get a fresnel look.



Not exactly. I want an environment which is only be reflected in my mia_material. I want to be able to produce glossy reflections from this environment.

You should say, I want an IBL Node on a per shader basis (mia_material mostly)


Actually, you could use a triple shading switch with default mapped with your standard environment and then special env textures for specific surfaces. And the shading switch connected to the cameraShape->mental ray->Environment shader.



I’ll try it right away. Thank you Tobbe, lately you gave me quite keypoints to understand maya nodes better :slight_smile:


did it work?


Hi, my quick tests shows it working ok.


it works for reflections rays only.
U can’t for exemple use a mia_sky node to light your scene (FG) and use another map for reflections. the mia_sky will always show up in reflections no matter what.


Just use the rayswitch environment or ray switch from the production shaders.

That will total reflections, environment, eye, final gather, etc etc. Then head over to DJX’s blog for how to use it.


With mia_material if you map the reflection color it just changes the color of the reflections, even if you use an environment texture. Thats why you see what looks like a double exposure. This is different to the way blinn works.

If you want to have an environment map on a mia then you can use the camera’s environment slot, or an IBL node, but these will effect all materials (unless you use the switch method suggested by Tobbe).

Another way to get blinn like env mapping on a per shader basis when using mia, is to use mia’s advanced reflection with “Use Max Distance” and “Fade to End Color” and connect your environment map to the “End Color”. If you leave the max distance at zero, then the envrionment will appear in the reflections, behind all your objects. Set the max distance to something really small (not zero) and you will get only the envronment map reflected.

Maya’s Env Textures seem to work ok for this, but I’ve mainly only used envSphere.

The catch is that with this method the reflections of the environment map ignore mia’s glossy attribute. So if you want to blur the reflection you can insert a mia_envblur between your env texture and the mia. Glossy is still ignored, but mia_envblur has a blur attribute which you can use to fake it.

The second catch is that mia_envblur will crash maya if you use one of maya’s env textures, so you would need to use a less user-friendly mentalray texture like mib_lookup_spherical.

– David


how are you suppose to use the mip_rayswitch node ?
do you plug it to the camera’s mr env port?


There are a number of ways you can hook it up. The one that seems to give the best result is to connect the trippleShadingSwitch to the camera’s environment slot. Then you add your objects to the trippleShadingSwitch before connecting a different envTexture to each of the inputs (and one to the default color if you want something in the background and to reflect off unlisted objects). I tried both maya’s envSphere and mi’s mib_lookup_spherical. Both work, but mib_lookup_spherical seems to ignore any input other than a fileTexture.

For example you could connect the mia_physicalSky to the default color of the trippleShadingSwitch and then hook up a different reflection for some object.

– David


Thanks Sir.
This works perfectly.


Wow when I look at this now, this is quite a knowledge for me. Everything seems to be ok. But I don’t happen to understand to use the “mip_rayswitch” shader properly for this purpose.

I unhid Mental Images Production Shaders by a MEL Command.
I even watched Jeff Patton’s Max + Mental Ray Masterclass in which he used rayswitch to neutralize a very intensive Final Gather red color bleed from the floor to a white scene.

But how do we use “mip_rayswitch” as an environment binder for each reflections & refractions? Could you simply write the connections please?

mia_material —> ShadingGroup :curious:


I think you should try the trippleShadingSwitch method, which is different to mip_rayswitch.
The trippleShadingSwitch makes it quite easy to link environments to objects. I attached a simple scene file to demonstrate. Graph the camera inputs to see the connections.

There is mia_physicalsky being used as the default environment (on the middle sphere), then a checker texture reflecting of the left sphere and a ramp reflecting off the one on the right. (I put a multiply node in there to amplify the strength of the checker and the ramp so they would match the brightness of the sky.)

I hope this is helpful.
– David


Thank you so much! this explains everything I had in mind.


This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.