Jump to content
Kyrah Abattoir

Why beginners don't learn the basics first?

Recommended Posts

On 2/29/2020 at 2:49 PM, Da5id Weatherwax said:

Not knitted - that really needs the AO on the yarn in addition to the normal map. Depending on the weave a woven fabric is possible with a flat diffuse and a normal map alone but the coarser the weave or the more "featured" it is - such as overshot weaves, for example - the more you get to needing the AO for its structure baked in. A tightly woven fabric made of medium to fine yarn, though, normal mapping is enough - you see "just enough" of it at normal viewing distances to know it's there but that's all that is required (you may need to make the normal mapping a tad stronger than you would if the fabric texture was baked into the diffuse). The effect breaks down if you've got the fabric right up against your camera's near clipping plane but you would design a texture/material intended to be viewed from that close differently.

Thanks for the explanation Da5id. Is doing it this way more efficient than a tiled cotton weave in the diffuse?

Share this post


Link to post
Share on other sites
16 minutes ago, Bitsy Buccaneer said:

Is doing it this way more efficient than a tiled cotton weave in the diffuse?

six/five and pick 'em. It would all depend on other factors.

If, for example, the model would not otherwise be using a normal map at all (unlikely, I know but bear with me for the sake of the example) then you'd obviously be more efficient baking the weave into the diffuse - if (and only if) you can get acceptable results baking it like that there is no reason to load another texture just to normal map the weave that looks "good enough" without it.

At the (equally unlikely) other extreme where there is no texturing in the diffuse apart from the weave but there are features which are normal mapped, since you're loading the normal map anyway if (and again, only if) you can get away with a "default blank and tint" for the diffuse and just normal map the weave then that will be the more efficient option.

Between these two silly extremes, though, you're thinking about a huge raft of other factors and trying to strike a balance that gets a good enough result while minimizing the amount of both geometry and textures the viewer has to download and render.

 

Remember that "the perfect is the mortal enemy of the good enough" - which is why we get folks uploading some of the insane stuff they do and saying it's "better" when it may be more faithfully modeled and rendered but nobody will ever see the difference.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 2/8/2020 at 5:04 PM, OptimoMaximo said:

That's what I do, but if the strings are just "painted on" people complain, they want the 3d eyelet for those strings that have to be a long continuous tube, and I've also read and seen people compliment someone because they had modeled the stitchings too, calling that "highest quality".

This is why I always say meaningful change needs to start with LL. There needs to be constraints on the rendering resources an avatar can eat up.

  • Like 4

Share this post


Link to post
Share on other sites
On 3/2/2020 at 11:00 AM, Da5id Weatherwax said:

At the (equally unlikely) other extreme where there is no texturing in the diffuse apart from the weave but there are features which are normal mapped, since you're loading the normal map anyway if (and again, only if) you can get away with a "default blank and tint" for the diffuse and just normal map the weave then that will be the more efficient option.
 

The ones I'm noticing this with don't seem to be using the normal map to simulate any fabric qualities other than shine, and I think some may have been baking the shine into the diffuse.

So I appreciate learning more about normals but I still have strong preferences for including the weave in the diffuse rather than relying on ALM for something so basic to most fabrics.

That's just me though, so it hardly matters.

Share this post


Link to post
Share on other sites
Posted (edited)

  

2 hours ago, Bitsy Buccaneer said:

So I appreciate learning more about normals but I still have strong preferences for including the weave in the diffuse rather than relying on ALM for something so basic to most fabrics.

That's just me though, so it hardly matters.

Me too. I don't usually work with fabrics of course but it's relevant elsewhere too. I don't think using normal maps for very fine details is a good idea, especially not in SL. That's how you get that "plasic coated" look and since this depends on windlight/light settings, it's impossible for the builder to predict or control the result.

Take this drystone wall for example:

bilde.png.6c319b276b468f2955aaa8a77a23fe96.png

It certainly can do with a normal map and a specular map to emphasize the openings between the stones:

bilde.png.175b292e12116a326fe8d42ee3b8687e.png

You can even use different normal maps to get different looks from the same texture - a nice way to add variety with relatively low load:

bilde.png.00a0d4651a943e602b237b11136ba2e8.png

I may have overdone the specular here but never mind, this is jsut a quick mockup, I'll adjust that if I ever use the texture for something.

The point is that normal maps can work brilliantly for this kind of details (and when they fail, the texture still looks good without) but if you add all those little lumps and bumps on the rocks themselves to the normal map, you almost instantly end up with a fake synthetic look. The normal maps here actually do include a little bit of rock surface distortion but it's kept so subtle it's barely noticeable and if I hadn't ben using a normal map anyway, there would be no point.

Edited by ChinRey
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

Here's another fun thing I was taught by a really smart friend: Specular/normal map with an alpha channel.

Quote

The alpha channel of the Normal Map may contain a specular exponent value that is mutilplied by the "Glossiness" parameter. A higher alpha value will result in specular highlights that are brighter and tighter.

Quote

The Alpha channel value of the Specular Map encodes the environment intensity. A lower value in the alpha channel will diminish the impact of the environment map reflections on the surface of the object.

Here's 3 stages: Diffuse only, blank specular with 200 environment, alpha specular with 255 environment.

1633247eb3.jpg

Here's a more "head on" view. Left: 0 gloss, 255 environment. Right: 150 gloss, 0 environment. (Links include the textures used, diffuse here)

30039839e2.jpg

My friend used this technique to create a really pretty "galvanized metal" texture with other mixed surfaces on the same texture. I don't have a picture of it but here's an example using this texture: https://giant.gfycat.com/PoliticalParallelChupacabra.webm

Edited by Wulfie Reanimator
  • Like 4

Share this post


Link to post
Share on other sites
57 minutes ago, Wulfie Reanimator said:

Here's another fun thing I was taught by a really smart friend: Specular/normal map with an alpha channel.

Here's 3 stages: Diffuse only, blank specular with 200 environment, alpha specular with 255 environment.

1633247eb3.jpg

Here's a more "head on" view. Left: 0 gloss, 255 environment. Right: 150 gloss, 0 environment. (Links include the textures used, diffuse here)

30039839e2.jpg

My friend used this technique to create a really pretty "galvanized metal" texture with other mixed surfaces on the same texture. I don't have a picture of it but here's an example using this texture: https://giant.gfycat.com/PoliticalParallelChupacabra.webm

Seriously? I've been advocating this (neglected) aspect of normal and specular maps in SL for years by now. Nice to see that finally this is sticking around. 

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, OptimoMaximo said:

Seriously? I've been advocating this (neglected) aspect of normal and specular maps in SL for years by now. Nice to see that finally this is sticking around. 

It took me a while myself until it dawned on me that it's really just a per pixel gloss value, the same way we have per pixel environment.

Then suddently it just clicked.

Share this post


Link to post
Share on other sites

If someone is looking for an area in which to make good objects, consider wheels.

truckwheels.jpg.f2ee79d7e17a755873c9f7ff0426a3b1.jpg

Missing something here? LOD factor 2.0, nothing special about the way the picture was taken.

Many SL vehicle builders buy wheels, rather than making their own. Most of those wheels have very poor lower LOD models. Far too many SL vehicles lose their wheels at distance. Looks awful. The vehicle above has a third-party wheel. Looks fine in close-up.

There are stores that sell wheels to builders. Those wheels are usually left-overs from the early years of SL. There's a motorcycle shop which has a parts junkyard out back. Few of those wheels look good at lowest LOD. At lowest LOD, the wheel should be a simple cylinder or hexagon with a picture of a wheel and tire tread. Wheels should be 1 LI objects.

We need better wheels in SL. They'd probably sell, expensively, as full perm items to vehicle builders. There are people selling wheels on Marketplace, but you can't tell if they're any good until you buy them. The in-world stores are often gone. I'm in the market for some better motorcycle wheels; if you're interested in doing something like that, IM me.

 

  • Like 1

Share this post


Link to post
Share on other sites
On 3/4/2020 at 11:18 PM, Kyrah Abattoir said:

It took me a while myself until it dawned on me that it's really just a per pixel gloss value, the same way we have per pixel environment.

In a PBR system it really is a gloss value. Unfortunately, in SL's system, the texture color and the specular color are added. This can take something all the way past 100% reflectivity, into full-bright territory.

wheelsbright.jpg.ad19b35077fdece27a2287277f1eb4a3.jpg

Both wheels are high "shinyness". The one on the right is also full white diffuse. Under bright lighting, the one on the right saturates at full bright. It looks like a light source, because it's more than 100% reflective. If you add shinyness, cut down diffuseness.

One advantage of a PBR rendering system is that you don't get this effect. You never get out more light than you put in.

 

wheelsdim.thumb.jpg.555a28473771f85b7ae5c436b4822c2c.jpg

Under dimmer light, they look similar.

Share this post


Link to post
Share on other sites
30 minutes ago, animats said:

Both wheels are high "shinyness". The one on the right is also full white diffuse. Under bright lighting, the one on the right saturates at full bright. It looks like a light source, because it's more than 100% reflective. If you add shinyness, cut down diffuseness.

This might explain some of the things I've seen...

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

Even in a PBR system, putting a too-bright diffuse color on shiny metals is perhaps THE most common mistake. The actual base colors - IRL even! - are much darker than anyone realizes. Grind silver and iron to a fine powder (thus eliminating even the smallest specularity from either) and they are both a mid-to-dark grey, with the silver only a fraction of a shade lighter. In RL, the iron will darken to almost black in minutes because it promptly oxidizes in the air, which the "noble metals" don't, but that initial grey is its true base color.

Regarding "shinyness" in SLs rendering, you will get a much better result for a "highly shiny" surface using a specular map tinted to the same hue value as the diffuse but with a much higher luminance (and the implied  lower saturation, even if the S parameter in the HSV color remains at 100%) - you can do that with a tinted blank texture rather than setting a "shiny" level if it applies to the whole face. The low/med/high shiny levels really should be avoided like the plague, because as animats pointed out they are additive, unlike mapped specularity which is multiplicative. They are also an exceptionally poor specularity algorithm with no ability to tint or tone down the reflected light, and most shiny surfaces actually should do both if they are to look right. Just use a blank white specularity map and play with the glossiness factor rather than using these if all you genuinely want IS plain white reflection highlights. (ETA: I bet, though, in practice you'll end up tinting the plain white specularity down a hair - even for a polished "white metal")

Edited by Da5id Weatherwax
  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
5 hours ago, Da5id Weatherwax said:

Regarding "shinyness" in SLs rendering, you will get a much better result for a "highly shiny" surface using a specular map tinted to the same hue value as the diffuse but with a much higher luminance (and the implied  lower saturation, even if the S parameter in the HSV color remains at 100%)

You mean something like this corroded copper paneling?

Diffuse:

bilde.png.d97c7bcfe78c78eb1aca9c67790d930a.png

Specular:

bilde.png.115aed1200ea3cf40f9bf2646f4052ac.png

 

 

Share this post


Link to post
Share on other sites
Posted (edited)

I mean something exactly like that, @ChinRey although given the shading around the ridges I'd personally be tempted to decontrast the specular a bit too, to reduce that shadings depth in the map - even parts of something that are darkened by ambient occlusion will still reflect when direct light hits them. If I were playing with it from that starting point I would suspect - although I'm far from certain, it's always a bit of trial and error with local textures for me - that where I'd end up would be with a specular map very similar to the above, almost certainly reduced in contrast and maybe desaturated and lightened even further, possibly a really minimal bit of blurring... A specular map that's "too high" can always be fine tuned by toning it down with a neutral grey tint but if the map isn't high enough there's no post-upload manipulation you can do to add to it. You would end up using a glossiness value very low in the range and an environment number even lower, to simulate the marginally reflective but heavily corroded surface but neither would (quite) be zero.

Now if you were simulating a clearcoat over that corroded surface I'd go a lot further in lightening and decontrasting it, making it really close to white but not quite so close you cant see the green/grey in it at all and a much higher glossiness

Edited by Da5id Weatherwax

Share this post


Link to post
Share on other sites

There are two concepts that need to be kept into account when talking about materials. 

The first, is energy conservation. This principle basically says that no material can reflect more light than it is hit by, and that also 100% reflection of it is unnatural. When light hits a surface, some bounces off, the remaining either penetrates the surface or is converted to heat. Therefore, in a blinn-phong based or derived shader such as SL's, a specular value between 50 and 70% should work well for most materials. 

The second concept is diffuse. Leaving aside SL's texturing model for a moment, the diffuse component is colored only for non metals and it's black for metals. Non metals have ALWAYS a specular color in the grey scale range, while metals have the specular map convey the color you see. So basically metals colors are the result of the color in their specular maps. Now, in SL the diffuse texture always conveys full colors for everything to ensure backward compatibility, but the shader in use still uses the same conceptual working order as a blinn-phong. That's why there is an environment map, it's basically a dual map (black or white) used to mark where the metallic areas are because of the lack of such information in the diffuse. 

To summarize it all: specular maps should never be white nor too close to be white for the energy conservation principles, and the specular maps should carry color information only when applied on metals, in couple with the environment maps in its alpha. The most important thing in all of this, though, is that the actual specular highlights look is driven by the glossiness map placed in the normal map's alpha. This is where there is most the misinformation : the specula map defines how much light bounces off a surface and what color it has, based on the type of material it represents, and it's in no way a mean to define How the specular highlight looks, the glossiness map is the actual responsible for that. 

  • Thanks 1

Share this post


Link to post
Share on other sites

Thank you, @OptimoMaximo - that's a much more complete description and you accurately call out the need for a SL texture to degrade gracefully into minimal graphics settings which (in the low preset) default to disabling deferred rendering and materials are not applied, only the diffuse texture is used. It's worth mentioning that the environment maps and glossiness maps in the alpha channels are multiplied by the overall glossiness and environment values set for that face - a 100% value in the normal maps alpha channel will not give you 100% glossiness, it will give you the full value of that glossiness parameter. Similar for the environment amount and the specular maps alpha channel.

The principle of non-metals always having a greyscale specular map is sound, but with the particular quirks (or bugs, perhaps) of SL shaders I've found that a minimal amount of color there seems to give (visually) better results, even though it's technically "wrong"

There is a further quirk to using those alpha channels to convey additional maps. The usable range for those maps is 1-255 not 0-255. Whether it's in the programs used to manipulate the images before upload or in the uploader itself, the two conspire to almost always optimize out the color data in a pixel that has 0 alpha, assuming it to either be black or white depending on who coded it. There are settings in most graphics progs that say "retain color data in transparent pixels" but their reliability is questionable at best and the uploader will get you if the graphics prog doesn't.

Share this post


Link to post
Share on other sites
15 hours ago, Da5id Weatherwax said:

There is a further quirk to using those alpha channels to convey additional maps. The usable range for those maps is 1-255 not 0-255

Let me clarify on this. It's most likely to be by design. It doesn't make sense to have 0 glossiness on a surface as it would result in a lambertian diffusion, no specularity at all, which doesn't exist in nature. Moreover, I remind you that alpha channels are internally coded as linear values, 0 to 1, in tje formats that support them and only visually converted to 0-255 in programs like photoshop, hence the need for the multiplier in world in the build tools window. So that's why those multipliers have a range from 1 to 255, what is 0 in the map always give 0 as result, although that should not happen. Again a value of 0 would give an infinitely rough surface value, which doesn't make sense. 

The same goes for the environment map. As far as I can tell, it's behavior is more similar to a f0 aka reflectance at normal value, for which a full 0 doesn't make sense as every known material that is not metallic also reflects the environment in a range between 2 and 5%, which reflects into an almost black linear value of 0.02 up to 0.05. Most softwares that do this conversion from a purely PBR set up default this value to 0.04. This is the case, for example, in substance designer when converting PBR textures into VRay compliant textures, which uses the f0 (reflectance at normal aka fresnell at 0 angle) as a mean to identify metals from dielectric materials. 

15 hours ago, Da5id Weatherwax said:

Whether it's in the programs used to manipulate the images before upload or in the uploader itself, the two conspire to almost always optimize out the color data in a pixel that has 0 alpha, assuming it to either be black or white depending on who coded it. There are settings in most graphics progs that say "retain color data in transparent pixels" but their reliability is questionable at best and the uploader will get you if the graphics prog doesn't.

In my experience, this isn't factually true. For SL the only format that works in this regard is tga, and it's been used for years to hide sculpt maps colors while retaining the color information that drive the vector displacement of sculpted prim surfaces. So the trick lies into exporting a 32 bit tga with alpha channel. There are two tests you can perform to visualize this. The first is to apply the map as a diffuse and turn off blending. The original map, whether it be a diffuse, normal or specular, appears before your eyes in its original form. The second test is to download it back as a tga and open it back again in your software. Photoshop for example won't show the alpha as transparency and will let you inspect both color and alpha information with ease. 

On a side note, during my experimentations I found out that the glossiness map values give better results if they are squared before being put into the alpha channel. At least in my case, because I don't use flat values, my glossiness maps are quite noisy being derived from the textures for extra depth and variation. 

Share this post


Link to post
Share on other sites
2 minutes ago, OptimoMaximo said:

On a side note, during my experimentations I found out that the glossiness map values give better results if they are squared before being put into the alpha channel. At least in my case, because I don't use flat values, my glossiness maps are quite noisy being derived from the textures for extra depth and variation. 

*takes notes and adds it to his ongoing project to build a cycles node-chain that blender will render "as close as possible to how it looks in SL with the same inputs"

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...