PDA

View Full Version : Help! My normals won't render



tvtom
04-05-2012, 10:43 PM
It's been awhile since I've used Lightwave and I'm getting the craziest thing right now.. I've placed normals on my surface with the Normals node, I see it perfectly in the VPR but when I render... no normals. :(

What am I doing wrong?

tvtom
04-05-2012, 11:06 PM
Here's a screen grab of what I'm talking about. The larger guy on the right is the VPR and the smaller insert is the actual render. Why would the render not be using the normal map I put in there?

HolyMonkey-
04-06-2012, 12:02 AM
Here's a screen grab of what I'm talking about. The larger guy on the right is the VPR and the smaller insert is the actual render. Why would the render not be using the normal map I put in there?

Start by making a very simple normal map in an entirely new scene and see if that renders on a box or something, not the same object.

If that works, then its your scene I would try setting it up again might be a bug.

If the box doesnt show NM then you have ticked some setting that messes up the calculations.

I think D:

tvtom
04-06-2012, 12:19 AM
I found it! It's some sort of bug. The NormalMap nodes's UV properties does not work. The workaround is to plug the NormalMap node into a regular image map node (into bump) then crank the bump to like 1000% then run that back into the normal input... here's an image (worth 1000 words).

It seems that anything using UVs does not except normal map from the node because the node's UV parameters are screwed up. Strange but I fixed it.

HolyMonkey-
04-06-2012, 04:37 AM
I found it! It's some sort of bug. The NormalMap nodes's UV properties does not work. The workaround is to plug the NormalMap node into a regular image map node (into bump) then crank the bump to like 1000% then run that back into the normal input... here's an image (worth 1000 words).

It seems that anything using UVs does not except normal map from the node because the node's UV parameters are screwed up. Strange but I fixed it.

creative =) goodjob

tvtom
04-06-2012, 10:22 AM
This method does create issues.. I get a lot of crawling in the normals. Does anyone know of a better technique? It's hard to believe that this has been broken through several versions of Lightwave (I've tried 9.6 and 11).

The UV's are obviously working because we can see the normal displayed correctly in the VPR.. it's the renderer that can't seem to understand the UV from the normalmap node.

How do I submit a bug to Newtek?

Sensei
04-06-2012, 10:33 AM
That doesn't make sense..
Normals should be normalized. Which means vector length should be equal to 1.0.
And in mine LW normal is normalized. Because when I am plugging Constant > Vector > 0.1,0.1,0.1 it has exactly the same effect as plugging 1,1,1

Try getting normal from NormalMap then plug to Math > Vector > Normalize then output to Normal in Surface node.

Your setup is like using Math > Vector > Scale. Try it instead to confirm whether effect looks the same. 1000% is 10.0 scale.

Sensei
04-06-2012, 10:35 AM
How do I submit a bug to Newtek?

https://fogbugz.newtek.com/

But better attach here whole scene, so we can confirm..

tvtom
04-06-2012, 10:38 AM
You don't need my scene.. I tested it with a simple plane... normals work fine until you turn on UVs. Then nothing. Pipe it like I'm showing there and then you'll see the normal influence but it doesn't work well because it crawls from frame to frame (animation).

Try it for me.. maybe I'm completely insane but I've done it several times. Look at the VPR for reference.

Sensei
04-06-2012, 10:41 AM
When you're using bump mapping, renderer does operation:

normal_vector -= bump_vector;
normalize( normal_vector );

I am not too sure whether there is not done yet another normalization prior this.

But if you have both normal used and bump used, and there is no normalization prior this, result will be different than when both are used and there is such normalization in beginning.

That's why you can plug any bump vector, even not normalized, so it's starting dominating over normal vector.
(using Amplitude 1000% is multiplying vector by 10.0)

Sensei
04-06-2012, 10:45 AM
You don't need my scene.. I tested it with a simple plane... normals work fine until you turn on UVs. Then nothing. Pipe it like I'm showing there and then you'll see the normal influence but it doesn't work well because it crawls from frame to frame (animation).

Try it for me.. maybe I'm completely insane but I've done it several times. Look at the VPR for reference.

But our build versions of LW are different.
You're using probably official, me build 2253
So, attach your simple plane scene with image, and I will try to tell you whether it has been fixed or not in newer versions.

tvtom
04-06-2012, 10:47 AM
@Sensei
I tried that and it didn't change anything (from using NormalMap straight to Normal input). Am I suppose to be able to put numbers into the Normalize node? If so, I'm not able to.

Sensei
04-06-2012, 10:52 AM
Normalization is doing operation:

length = sqrt( x * x + y * y + z * z );
x= x / length
y= y / length
z= z / length

So after doing it length of vector == 1.0

Plugging vector to image node in bump, then using Amplitude 1000% is like doing
vector = vector * 10.0
I guess so.

tvtom
04-06-2012, 10:53 AM
I've attached the scene, the normal map I'm testing with and the simple plane object.

Look at the VPR and then hit F9.

tvtom
04-06-2012, 10:54 AM
@Sensei
Just so you know.. I have no idea what with the math stuff... I'm just an artist. If you have the solution, please take a screenshot of your nodes and settings and I'll figure it out.

...and THANK YOU!!! I really appreciate the help.

Sensei
04-06-2012, 10:59 AM
What is your Amplitude set in NormalMap node? Default 100%?

Sensei
04-06-2012, 11:02 AM
Problem is Mipmap Quality.
If I set it Off in NormalMap in your test scene, render and VPR are the same.

tvtom
04-06-2012, 11:04 AM
DUDE!!!! THANK YOU!!!

Damn that was frustrating. I owe you big time!

Sensei
04-06-2012, 11:04 AM
Mine theory is that F9 renderer is obeying Mipmap Quality settings. But VPR ignores it. That's why it's rendering differently.

tvtom
04-06-2012, 11:08 AM
Should I just turn that off for all my normals? Even the ones that are not UVed?

Sensei
04-06-2012, 11:14 AM
Mip mapping is method of rescaling image with distance from camera. It's reducing moire effect and giving better anti-aliasing.
http://en.wikipedia.org/wiki/Mipmap
Normal maps don't provide color information, but normal vectors. Blending them in rescaling process destroys them.

tvtom
04-06-2012, 11:16 AM
Ah, ok.. I'll turn that off on everything then. Thanks again man. You are a life saver!!!

Sensei
04-06-2012, 11:22 AM
You can even see how they're destroyed in VPR - switch back and forth Mipmap Quality Off/High..
With Off, it's nice and sharp.

tvtom
04-06-2012, 11:31 AM
I just hope it doesn't crawl (moire) when animated.

tvtom
04-06-2012, 05:22 PM
Ug.. they crawl like crazy. I can see what mipmaping is for now. Is there any way to soften the normal maps so they don't crawl all over the place?

Sensei
04-06-2012, 05:48 PM
Well, you can try connecting Gradient node with distance to camera to Amplitude of NormalMap node.

The question is- would it not crawl if mip mapping would work with NormalMap. Because mip mapping is for regular images, not normal vectors..

But did you check with full AA?

tvtom
04-06-2012, 07:39 PM
So why does mipmaping work when not UVed?

tvtom
04-06-2012, 10:37 PM
I had a handful that were broken (something went wanky on them and they were not pointed to the right uv). All is better now and I find that lowering the amplitude helps a ton. I have them at 75% and it's hardly crawling at all now.