PDA

View Full Version : What's the best way to make a wood floor in LW2018?



Tim Parsons
10-05-2018, 12:52 PM
What's the best way to make a wood floor in LW2018? Standard or Principled BSDF? I'm getting half ways decent results with Standard but no so with the Principled Shader. Wood and wood flooring can have different reflection properties based on how the grain of the wood runs, so I wonder how to accomplish that. Maybe some kind of spec/gloss map but I'm finding the spec to be really strong. Has anyone had some really good results with native 2018?

Here is a cool sample I found on the web.
143005

Kryslin
10-05-2018, 12:59 PM
I've used carpaint for varnished wood floors before, with a bump map applied for the grain.

prometheus
10-05-2018, 01:03 PM
Only suspecting..
I would guess you would have arroways textures?
https://www.arroway-textures.ch/en/products/wood-flooring-1

Reflection maps are there, so maybe just a matter of of feeding the maps in to the principled shader properly, using standard materials in 2015 is the way to go for 2015, but the materials such as PBR are designed to work with 2018 obviously and itīs lights, and I suspect standard materials isnīt the best choice for that reason.

RPSchmidt
10-05-2018, 01:07 PM
You definitely need a specular map; if the floor actually has texture (as opposed to non-textured laminate flooring) when you combine a good specular and normal map together in BSDF, you should get some excellent results.

I haven't done it with wood, but I have done it with metals and it worked very well.

Axis3d
10-05-2018, 01:09 PM
What's the best way to make a wood floor in LW2018? Standard or Principled BSDF? I'm getting half ways decent results with Standard but no so with the Principled Shader. Wood and wood flooring can have different reflection properties based on how the grain of the wood runs, so I wonder how to accomplish that. Maybe some kind of spec/gloss map but I'm finding the spec to be really strong. Has anyone had some really good results with native 2018?

Here is a cool sample I found on the web.
143005

I would definitely stick to the Principled Shader in 2018. But plugging in the right maps for the various inputs.

You can try some of these freebie textures, which come with all of the associated maps.
https://www.poliigon.com/search?is_free=true

prometheus
10-05-2018, 01:18 PM
You also may want to use glossy reflections in the shading model for the principled material, lower the roughness very low for the bump specularity to take effect, feed the image bump in to the material bump input, thatīs a starter perhaps.
Multiplier node between the specularity map and the input specularity to controll how much of it you want.

prometheus
10-05-2018, 01:27 PM
And lighting.
Spherical and area lights are nice.

Tim Parsons
10-05-2018, 02:37 PM
Thanks for all the replies! I went to Poliigon and downloaded one of their freebies (Wood Flooring 044) to see what I could do.
so maybe just a matter of of feeding the maps in to the principled shader properly,
Yeah - properly! That's the million dollar question. lol.

So here I took their "Gloss" image and plugged it into Roughness and left Specular at the default 50%.
143007

Then here I plugged in their "Reflection" image into Specular along with the above still connected.
143008
Not much changed.

I think more experimentation is required. :)

jwiede
10-05-2018, 07:06 PM
Try inverting the "Gloss" map before feeding it into Roughness.

RPSchmidt
10-05-2018, 08:00 PM
Try inverting the "Gloss" map before feeding it into Roughness.

Or alternately, take the reflection map into Photoshop and adjust the black-white balance using Levels to get a higher contrast between the light and dark areas ( without completely losng the midtones). Then save that out as a specular map and feed it into specular.

Not sure how you might do that in another program, so apologies if you don't have Photoshop.

I also noticed you don't have a normal map node attached. If the texture didn't come with a normal map, you can use Photoshop to generate one or you can use the free online NormalMap generator.

Then add your normal map node, load the image, and connect it. Render and adjust the normal and specular as necessary.

Tim Parsons
10-05-2018, 08:31 PM
Yeah I tried that. :(

I took the image into PS and applied a curve to it and then added it to a clearcoat as well. I had to use a multiplier to pump it up. Getting closer I think.
143010

Are there does and don'ts within the node editor where it's not good practice to do or don't attach something? Or if you can plug it in and turn the dials and get what looks good is it considered okay to do so?

Thanks

Tim Parsons
10-05-2018, 08:56 PM
Or alternately, take the reflection map into Photoshop and adjust the black-white balance using Levels to get a higher contrast between the light and dark areas ( without completely losng the midtones). Then save that out as a specular map and feed it into specular.

Not sure how you might do that in another program, so apologies if you don't have Photoshop.

I also noticed you don't have a normal map node attached. If the texture didn't come with a normal map, you can use Photoshop to generate one or you can use the free online NormalMap generator.

Then add your normal map node, load the image, and connect it. Render and adjust the normal and specular as necessary.

That's pretty much exactly what I did. Normal maps were included but really added nothing to the mix without cranking the amplitude up to 5000%. And for the most part this wood is a very smooth variety.

RPSchmidt
10-05-2018, 09:19 PM
That's pretty much exactly what I did. Normal maps were included but really added nothing to the mix without cranking the amplitude up to 5000%. And for the most part this wood is a very smooth variety.

Huh... I usually get really good results with the normal map. Could you attach an image using the normal map? I'm.just curious now to see what's going on.

wingzeta
10-06-2018, 12:01 AM
Huh... I usually get really good results with the normal map. Could you attach an image using the normal map? I'm.just curious now to see what's going on.

Yeah, the normal map should make this look a lot better. Make sure the Normal is set to Linear in the image editor, and make sure you are using a Normal Map node, rather than an Image node to load the NM into. You may also have to invert Y in the Normal Map node. There are ways to amplify a normal in PS and in normal map editors, if it is indeed a bad map. You could also make a new normal from scratch pretty easily, by creating a height map of the grooves, and converting it to a normal.

erikals
10-06-2018, 05:51 AM
car paint ?
https://www.youtube.com/watch?v=WOcS_nPVMY0

prometheus
10-06-2018, 06:51 AM
Initial test for me with those samples, the normal map didnīt give any good results either, but I didnīt have time to try the options out properly, and running discovery mode each time means rebuilding from scratch every little tweak I do.
So..I am not going to invest more time on that for LW 2018 but rather try the maps in blenders PBR, until we have another release of Lightwave to discuss.

RPSchmidt
10-06-2018, 09:20 AM
Take the original color texture into Photoshop, choose Filters > 3d >Generate Normal Map and set the normal map depth to 45-65% and save it out.

Then in your nodes, as someone already mentioned, choose the Normal Map node (not the image node) and load the image. Then link it to the Normal Map in the Principled.

At the depth set when you created the normal map in Photoshop, you really shouldn't have to bump the map up at all to notice the difference.

prometheus
10-06-2018, 10:24 AM
If you do not have photoshop, there are free online tools...but Krita is also worth locking into, itīs free...itīs a bit slow when dealing with filters and images, but it got some really really nice filters, if you browse through the GMic filters.

There is a simple filter...Filter/edge detection/height to normal map...which gives you a simple map to work with.
https://docs.krita.org/fr/reference_manual/filters/edge_detection.html

Then you got more advanced tools in krita for normal maps..videos is krita 2.9, while I now use 4.0


https://www.youtube.com/watch?v=tzS_k2z2UwU&t=251s

Tim Parsons
10-06-2018, 08:00 PM
Thanks for all the help and tips folks!
In the world of LW2018 what images go where?
For instance I downloaded this image set from Poliigon - (Wood Flooring 044) - and it came with these named files:

WoodFlooring044_COL_4K.jpg
WoodFlooring044_GLOSS_4K.jpg
WoodFlooring044_NRM16_4K.jpg
WoodFlooring044_REFL_4K.jpg

The WoodFlooring044_COL_4K.jpg is pretty obvious and goes in the color slot.
And of course the WoodFlooring044_NRM16_4K.jpg goes into the normal slot.
But where I'm not 100% clear is which slots the GLOSS and REFL go. Common sense says that REFL should go in the Specular slot and GLOSS into the Roughness, but the results are not very interesting. And when I reverse them there is no blur whatsoever.

This image shows everything plugged in as I would think they would be. Very dull.
143020


This image is the same setup with 2 exceptions. The supplied GLOSS map was brought into PS and curve was added to beef up the contrast and then in LW I also needed to pump it up with a Multiply node. Now it's looking a little more interesting. :)
143021

Which brings be back to an earlier question - are there "illegal" nodes, setups or bad practices?

Thanks

MonroePoteet
10-07-2018, 09:48 AM
If I correctly interpret (definitely not a given!) the Normal and Displacement maps associated with the Poliigon WoodFlooring044 you're using, it's *intended* to be a well-polished, sealed floor (i.e. quite flat) without much grain or differentiation between the planks. Both the normal and displacement maps are pretty homogenous and don't provide the per-plank differences I think you're after. Examining real-world wood floor photographs shows a wide variety of surfaces, from rough wood planking with a lot of variation to multi-coat polyurethane-sealed floors which are basically mirror-like.

You may have better luck trying some other texture source, examining the per-plank differentiation in the NRM and DISP maps to get the type of variations you want.

Having said that, you may also have some luck using the COL bump map to get some differentiation:

143026

This image uses just the COL image, enhancing the Saturation using the LW Image Editor=>Editing tab (I don't like how GI washes out the color) and feeding a 30% Bump into the Principled BSDF Roughness and Bump inputs. I also turned off Pixel Blending and Mipmaps in the surfaces / image to get as much fine detail as possible from the images. Looks OK to me, but may not be what you're after.

143027

mTp

MonroePoteet
10-07-2018, 12:30 PM
<duplicate post removed>

MonroePoteet
10-07-2018, 12:33 PM
RE: my previous post, for example, compare the detail of a small sample of the NRM map for the WoodFlooring044 you're using to a similar sized sample of the NRM map for the Wood Planks Worn 19 texture from the same website:

143030 WoodFlooring044

143031 WoodPlanksWorn19

The way a normal map works is the Red component is the X direction, the Blue component is the Z direction (in the LW coordinate system) and the Green component is the Y direction, so the WoodFlooring044 has the edges of the planks called out a little, but almost NO detail of the wood planks themselves. On the other hand, the Wood Planks Worn 19 has significant angular differentiation to be applied as the normal for rendering detail on the individual planks.

mTp

Tim Parsons
10-07-2018, 08:01 PM
If I correctly interpret (definitely not a given!) the Normal and Displacement maps associated with the Poliigon WoodFlooring044 you're using, it's *intended* to be a well-polished, sealed floor (i.e. quite flat) without much grain or differentiation between the planks. Both the normal and displacement maps are pretty homogenous and don't provide the per-plank differences I think you're after. Examining real-world wood floor photographs shows a wide variety of surfaces, from rough wood planking with a lot of variation to multi-coat polyurethane-sealed floors which are basically mirror-like.

Yep - I think I have come to that same conclusion. :)

143032

- - - Updated - - -


RE: my previous post, for example, compare the detail of a small sample of the NRM map for the WoodFlooring044 you're using to a similar sized sample of the NRM map for the Wood Planks Worn 19 texture from the same website:

143030 WoodFlooring044

143031 WoodPlanksWorn19

The way a normal map works is the Red component is the X direction, the Blue component is the Z direction (in the LW coordinate system) and the Green component is the Y direction, so the WoodFlooring044 has the edges of the planks called out a little, but almost NO detail of the wood planks themselves. On the other hand, the Wood Planks Worn 19 has significant angular differentiation to be applied as the normal for rendering detail on the individual planks.

mTp

Thanks for that explanation, I've never heard this before.

Kryslin
10-08-2018, 01:14 PM
143046

My attempt at using the same texture maps.

Carpaint node is used for the wood. I made my own normal map from the color map in GIMP, and fed the outputs into the expected inputs.

I'll grab a screen shot of the node network and post it if it's wanted.

erikals
10-08-2018, 02:24 PM
nice, wood looks a bit overexposed though, are you using linear? if so, maybe try srgb?

jwiede
10-08-2018, 04:12 PM
nice, wood looks a bit overexposed though, are you using linear? if so, maybe try srgb?

The grain just looks a bit "forced" to me, accentuating it winds up looking more like a finishing problem with the poly coat than actual woodgrain.

Overall, this is also still too much UI for what it is. This really highlights how the UX has become overcomplicated for "direct all-map" surface definitions. Once the material is pulled up, this really shouldn't be much more effort than 4x {click texture; select texture map} for an "all-map surface" like this one -- arguably the most common surface case. Bring back those missing "T" buttons please!

If "Carpaint" is intended to be that basic uber-shader material, then at the least, for discoverability rename it to something more obvious (perhaps "Basic", or "Standard" -- and rename the current "Standard" to "Legacy"). Rename Carpaint's internal parameters more generically as well. That'd at least give users a fighting chance at discoverability, and more closely resemble "Basic"/"Standard" material support in other packages (where that's their baseline uber-shader).

BeeVee
10-12-2018, 07:19 AM
But it's not. Carpaint is more of a special case material with its layers of polish and iridescence. The all-purpose material is Principled BSDF, as stated in the manual.

143083

B

BeeVee
10-12-2018, 07:34 AM
Oops, I was in Linear. Here it is again in sRGB. Personally, I think it looks like everyday laminate flooring, with a bump effect, but not actual wood grain.

143084

It didn't have time to fully finish because I have to leave for an appointment, but you should get the idea.

B

wingzeta
10-12-2018, 03:00 PM
Oops, I was in Linear. Here it is again in sRGB. Personally, I think it looks like everyday laminate flooring, with a bump effect, but not actual wood grain.

143084

It didn't have time to fully finish because I have to leave for an appointment, but you should get the idea.

B

Needs some breakup from a roughness map. Even a clean waxed floor will have variation in reflection from smudges, levels of polish, streaks, missed dirt, and scratches. The 2min it would take to plug in even a generic map or procedural, would bump the realism 300%. I do realize you had to leave for an appointment. Just pointing out the obvious over here.

jwiede
10-12-2018, 03:37 PM
Needs some breakup from a roughness map. Even a clean waxed floor will have variation in reflection from smudges, levels of polish, streaks, missed dirt, and scratches. The 2min it would take to plug in even a generic map or procedural, would bump the realism 300%. I do realize you had to leave for an appointment. Just pointing out the obvious over here.

And that's _exactly_ my point, regardless whether plugging into Carpaint or pBSDF. Plugging all the different nodes in, setting up their connections, etc. for what are directly-image-mapped surfaces with "std" maps provided, takes too much effort / too many clicks / etc. These are literally the most commonly-used surface cases, so should be the most direct to configure -- if that's what's the "most direct" configuration for LW2018 looks like, god help us all, because it's anything but direct. You can't even just use the same "Imageset" node and connect it to the material in different manners, no, you need to go create a bunch of different node types, possibly invert some, etc. That's ridiculously inefficient from a UX perspective.

If it _must_ remain as a nodal expression, then there should be a single "Standard Imageset" (ideally, or alternately have "Standard Glossy Imageset" & "Standard Roughness Imageset" nodes) that you point at a set of (imagebasename)_(maptype).(imgfmt) files, and it picks up ALL the appropriate image maps at once, and allows wiring a single "Material" connection between it and pBSDF. If it's missing critically needed maps (that it cannot easily synthesize itself, because if it can, it should), then it puts up an error dialog saying so, and either allows user to provide individual replacement maps where needed, or only exposes connections for the maps it already has loaded.

Not the only way to handle it, there are LOTS of ways it could be done and be much more efficient for customers. Doing so will likely require a bit more dev effort than the approach where they just push all effort onto the customers, but revenue does require customers, after all.

Newtek needs to stop putting LW dev convenience ahead of LW customer convenience.

erikals
10-13-2018, 01:21 AM
there should be a single "Standard Imageset"
yep!

Kryslin
10-13-2018, 07:51 AM
I used the carpaint node because in previous version of LW, it was the material that had the clearcoat on it, so I could have my nice grain patterns, and a nice shiny layer of varnish/polish on top of it. I probably could have used the principled shader and gotten the same result as the carpaint shader, if not better.

(And my color spaces was set to sRGB, so a little too much light...)

wingzeta
10-13-2018, 04:34 PM
And that's _exactly_ my point, regardless whether plugging into Carpaint or pBSDF. Plugging all the different nodes in, setting up their connections, etc. for what are directly-image-mapped surfaces with "std" maps provided, takes too much effort / too many clicks / etc. These are literally the most commonly-used surface cases, so should be the most direct to configure -- if that's what's the "most direct" configuration for LW2018 looks like, god help us all, because it's anything but direct. You can't even just use the same "Imageset" node and connect it to the material in different manners, no, you need to go create a bunch of different node types, possibly invert some, etc. That's ridiculously inefficient from a UX perspective.

If it _must_ remain as a nodal expression, then there should be a single "Standard Imageset" (ideally, or alternately have "Standard Glossy Imageset" & "Standard Roughness Imageset" nodes) that you point at a set of (imagebasename)_(maptype).(imgfmt) files, and it picks up ALL the appropriate image maps at once, and allows wiring a single "Material" connection between it and pBSDF. If it's missing critically needed maps (that it cannot easily synthesize itself, because if it can, it should), then it puts up an error dialog saying so, and either allows user to provide individual replacement maps where needed, or only exposes connections for the maps it already has loaded.

Not the only way to handle it, there are LOTS of ways it could be done and be much more efficient for customers. Doing so will likely require a bit more dev effort than the approach where they just push all effort onto the customers, but revenue does require customers, after all.

Newtek needs to stop putting LW dev convenience ahead of LW customer convenience.

I concur a "smart import" of maps would be nice to have, and that "smart import" needs to work on industry standard naming conventions, not LW proprietary conventions. I also pitched the idea a number of times over the years in these forums, that if LW had put together a comprehensive, top notch, library of preset surfaces, they would have brought in a lot more users. Presets that are actually production level, for all the often used surfaces. It would have been a huge time saver to model something, and then say, "this is made out of iron" apply realistic iron surface, and done. Instead, it seems most of the presets, are examples to show a possible workflow, but not production ready.

peebeearr
10-14-2018, 07:39 AM
I use PBSDF to create an old well used oak castle floor.

Node:
143089

Result:
143090
143091

No lights in the scene. Only lit by a HDRI environment background.

BeeVee
10-14-2018, 03:06 PM
That looks very good, and @wingzeta absolutely. Even a few layered procedurals would do at a pinch. Right now, it looks like a laminate flooring catalogue image.

B

Tim Parsons
10-14-2018, 09:33 PM
I use PBSDF to create an old well used oak castle floor.

Node:
143089

Result:
143090
143091

No lights in the scene. Only lit by a HDRI environment background.

Very nice! Thanks for sharing.

wingzeta
10-14-2018, 10:43 PM
I use PBSDF to create an old well used oak castle floor.

Node:
143089

Result:
143090
143091

No lights in the scene. Only lit by a HDRI environment background.

I've been doing this way myself, with the roughness, and no specular map, just specular set to default. Still not sure what to do with the gloss map in LW PBSDF if you have a roughness and gloss map. Not much time to play with it unfortunately.

dlvphoto
10-15-2018, 12:42 AM
And that's _exactly_ my point, regardless whether plugging into Carpaint or pBSDF. Plugging all the different nodes in, setting up their connections, etc. for what are directly-image-mapped surfaces with "std" maps provided, takes too much effort / too many clicks / etc. These are literally the most commonly-used surface cases, so should be the most direct to configure -- if that's what's the "most direct" configuration for LW2018 looks like, god help us all, because it's anything but direct. You can't even just use the same "Imageset" node and connect it to the material in different manners, no, you need to go create a bunch of different node types, possibly invert some, etc. That's ridiculously inefficient from a UX perspective.

If it _must_ remain as a nodal expression, then there should be a single "Standard Imageset" (ideally, or alternately have "Standard Glossy Imageset" & "Standard Roughness Imageset" nodes) that you point at a set of (imagebasename)_(maptype).(imgfmt) files, and it picks up ALL the appropriate image maps at once, and allows wiring a single "Material" connection between it and pBSDF. If it's missing critically needed maps (that it cannot easily synthesize itself, because if it can, it should), then it puts up an error dialog saying so, and either allows user to provide individual replacement maps where needed, or only exposes connections for the maps it already has loaded.

Not the only way to handle it, there are LOTS of ways it could be done and be much more efficient for customers. Doing so will likely require a bit more dev effort than the approach where they just push all effort onto the customers, but revenue does require customers, after all.

Newtek needs to stop putting LW dev convenience ahead of LW customer convenience.


Oliver has that with one of his (400+) plugins in his OD Tools set. If it's that onerous to create your "standard" surface setup once, safe the nodes to disk then:

drop half a dozen images onto lightwave to load them.
load your nodes onto the surface with "file load".
open the color node, select the color image
open the rought node, select the rough image
etc....

Then write your own. Python's not that hard.

As for the intelligence you're calling for, that's another thing entirely considering the chaos that ensues within the various image standards, color spaces, pure amateurish nature of a lot of the texture sets available out there (jpg's without color space embeded metadata? really? and you want me to *pay* for that?), it's a non-starter from a dev standpoint. Let that be solved at the Layer 8 level.

peebeearr
10-15-2018, 03:42 AM
I use PBSDF to create an old well used oak castle floor.

Node:
143089

Result:
143090
143091

No lights in the scene. Only lit by a HDRI environment background.

Oh.... Forgot to mention that the beautiful texture is not mine. Its a freebee from poliigon.com

https://www.poliigon.com/texture/wood-flooring-042

Very nice textures on that website.

oliverhotz
10-15-2018, 09:36 AM
Oliver has that with one of his (400+) plugins in his OD Tools set. If it's that onerous to create your "standard" surface setup once, safe the nodes to disk then:


The PBR Importer is what you'd use for that, it takes an image set, and sets everything up for you.. done.

dlvphoto
10-15-2018, 03:35 PM
The PBR Importer is what you'd use for that, it takes an image set, and sets everything up for you.. done.

That's the plugin I was referring to. Saved me countless hours so far. A few little adjustments now and then with the odd image set, but by and large, it's seamless.