Reflection Issue

   9982   12   1
User Avatar
Member
18 posts
Joined: July 2005
Offline
Hello

I'm using Houdini 6 Apprentice Edition, and when I try to create reflections off of a planar surface, the reflections are only appearing in a circular area on the surface, even though the entire surface is illuminated by one light, and the object only has one shader applied to it.

In addition, the reflections seen in the circular area appear distorted, like in a fisheye lens. I appreciate any help I can get. Thanks!

phoenix1606
User Avatar
Member
941 posts
Joined: July 2005
Offline
Are these reflections traced, or mapped?
What shader is being applied? One you wrote? Or one of the shipped ones?
And why do you mention the light? Is this a Light shader?

If it's a mapped reflection, then everything depends on how the reflection vector gets calculated… but then, for a flat surface, that gives you a single lookup direction (one color)…

Need more details…
Mario Marengo
Senior Developer at Folks VFX [folksvfx.com] in Toronto, Canada.
User Avatar
Member
18 posts
Joined: July 2005
Offline
I created my own shader in VOPs by wiring the Color output from a woodPlank shader into the diff input of a Blinn lighting model, which is wired out to the Surface Color (Cf) input of the Output VOP.

There are no lighting shaders, so I guess the lighting is irrelevant. I hope this is enough information…

phoenix1606
User Avatar
Member
4256 posts
Joined: July 2005
Offline
The default woodplank VOP already has a lighting model (VEX Specular)built into it so you don't need to connect it to a another lighting model. Just connect the woodplank's color to Cf.

If you want to change it to Blinn then select the woodplank VOP and hit enter. This will take you inside the woodPlank network. Go to the “lighting1” VOP and change the Lighting model from VEX Specular to Blinn.

This might fix your problem.

jim.
if(coffees<2,round(float),float)
User Avatar
Member
18 posts
Joined: July 2005
Offline
I'm still getting the same problem. The reflection is only showing in a circular area in the center of the planar surface, and it's distorting around the circle. No idea what it is…

phoenix1606
User Avatar
Member
4256 posts
Joined: July 2005
Offline
Can you post a sample file?

jim.
if(coffees<2,round(float),float)
User Avatar
Member
941 posts
Joined: July 2005
Offline
Phoenix,

Could it be that by “reflection” you actually mean the specular spot? – a bright white “circle” in the middle of your grid?
A circle that “distorts” as you change the viewing direction?
Mario Marengo
Senior Developer at Folks VFX [folksvfx.com] in Toronto, Canada.
User Avatar
Member
18 posts
Joined: July 2005
Offline
Here's a sample image. Can you see the strange reflection on the floor?



phoenix1606
User Avatar
Member
4256 posts
Joined: July 2005
Offline
I just did a similar setup using the woodplank VOP and it looks fine. What version of Houdini? Can you post a .hipnc file?

jim.
if(coffees<2,round(float),float)
User Avatar
Member
18 posts
Joined: July 2005
Offline
here's the file…I hope this helps.

http://www.illusionmedia.net/houdini6RoomRebuilt2.hipnc [illusionmedia.net]

phoenix1606
User Avatar
Member
4256 posts
Joined: July 2005
Offline
Under “box1” of your “Floor” Object turn off “Consolidate Corner Points”. This was causing your normals to interpolate funny.

jim.
if(coffees<2,round(float),float)
User Avatar
Member
4256 posts
Joined: July 2005
Offline
To see what was happening enter your “Floor” SOP network and append a Point SOP to box1. Set it to “Add Normals”. Turn on display normals to view the normals. Turn on “consolidate points” and you will see the normals being averaged over 3 directions. During the render those corner normals were being smoothly interpolated across the surface causing the funny reflection. With “consolidate points” off the normals at the corners point in the correct direction and during rendering are correct.

Alternatively you could have left on “Consolidate Points” and in your VOP networked created a Inline VOP. For your code you would put something like.

$Nn = computenormal(P);


Then connect Nn to the N input of woodplanks. This will cause a normal to be computed using the derivatives at the current point being shaded which ignores the normals at the corners.

I hope this helps.

jim.
if(coffees<2,round(float),float)
User Avatar
Member
18 posts
Joined: July 2005
Offline
Yes, this resolved the issue. Thank you very much!

phoenix1606
  • Quick Links