Jump to content

Why beginners don't learn the basics first?


Kyrah Abattoir
 Share

You are about to reply to a thread that has been inactive for 1386 days.

Please take a moment to consider if this thread is worth bumping.

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?

Link to comment
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
Link to comment
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
Link to comment
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.

Link to comment
Share on other sites

  

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
Link to comment
Share on other sites

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
Link to comment
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
Link to comment
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.

Link to comment
Share on other sites

  • 3 weeks later...

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
Link to comment
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.

Link to comment
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
Link to comment
Share on other sites

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
Link to comment
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

 

 

Link to comment
Share on other sites

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
Link to comment
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
Link to comment
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.

Link to comment
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. 

Link to comment
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"

Link to comment
Share on other sites

  • 3 months later...

I thought I would aff to this topic something I said in another ones.

We aren't trying to gatekeep people out of creating in SL, personally I want nothing more than seeing more people create for SL, but even if this is just a hobby for you, you need good bases!

Sketchup, Marvelous Designer, mudbox, Zbrush, there is NOTHING WRONG with having any of these tools in your workflow. But the number one reason people use those is that they do not want to learn traditional modeling, and the goal of these tools is to abstract away the geometry itself to let you focus on design and design only.

SL is like any video game out there: it is designed to render pre-optimized assets, and to do so as quickly as possible.

If you are modeling for SL, at some point you are gonna need to "pop the hood open" to speak of and work at the individual polygon level, either because you need to build a good collider, because you need to fine-tune your LOD models, to rebuild something more efficiently or simply to bring your polygon count to something acceptable for real-time rendering.

All those "efforts" to avoid traditional modeling are ultimately in vain because they leave you completely helpless when SL chokes on your model, or when the uploader simply rejects it. If you want to do a decent job, you will have to get down to it eventually.

It is my opinion that polygon modeling, and vertex level editing should be the very first thing people learn when they start modeling. It is a lot better to learn lowpoly modeling and progressively go for more and more complex models, than to generate incredibly complex models and to be stuck because you now need a skill that you've been avoiding to learn.

external-content.duckduckgo_com.thumb.jpg.8f9176ad7a72b3f3eab86fdf377daca8.jpg

If as a beginner you want to become "stronger" as a modeler, this is the kind of thing that is excellent to practice doing. And sure, this is probably not marketable in SL but who cares! You are trying to learn!

What it will teach you howeher, is strong polygon editing skills that will be invaluable in all your projects. And it will also teach you how to separate what is essential from what is superfluous, you will learn how much you can "get away with".

Challenge yourself with seemingly absurd restrictions: What can you make with only 300 triangles.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Sadly not only beginner are doing this. Nearly all the "famous" creators sell non optimized, highpoly mesh that should never exist inworld. None of them is spending the time that is needed to create game ready mesh, but as long as it works in sl and the clueless customers are buying it, they probably will never change, because if they would do it right, they couldn't be on 5 events a month and would loose money -.- I would say 90% of the sl mesh content should not be in sl. It may look nice, but thats all. It's mesh for doing pictures, but not for using in a game, especially not in a massive multiplayer environment, where stuff should even be more optimized.

  • Like 2
Link to comment
Share on other sites

We're never going to get good lowest level of detail models in SL. The mesh reducer is terrible when pushed too hard, and doing it manually is a huge pain.

What's really needed is automatic impostors for objects. We already have them for avatars.

impostorgarden1.thumb.png.8ee97189cdf48da7ff11ba8b8fe7642d.png

My old impostor garden. For each pair of objects, the one on the left is a full 3D model, and the one on the right is a billboard impostor. 

The impostor is a flat two-triangle surface showing one of eight fixed images, depending on the viewpoint. Impostors have a very low rendering cost. The idea is to switch to the impostor when reaching "lowest" LOD mode distance. Lowest LODs are almost always terrible, and impostors look better and render faster.

I used to argue with Beq Janus about this. I wanted to generate impostors when creating objects, as above. Beq wanted to create impostors on the fly in the viewer.

The problem with doing impostors during upload is that the user can change textures on objects after they are made, making the impostor invalid. So impostored objects have to be no-mod with no moving parts. Plus this doesn't do anything for existing objects. That's the real problem.

Doing impostors in the viewer has a network performance issue. The viewer has to bring in a high LOD version of distant objects, render it off in an empty rendering context to make the impostor images, then show rendered images. That increases download load while decreasing rendering load. The effect would be that entering a new area would cause a big network load and distant objects would appear more slowly. Frame rate would be better.

I now agree with Beq about this - it's better to do this in the viewer. Otherwise, old, bad see-through LOD models will still appear. We'll never get all the old content fixed. It's a big job, but it's all viewer-side. So a third-party viewer could do it.

I think this is the way to go. It's a big  job, but it's far, far easier than trying to re-educate thousands of creators and replace tens of thousands of old objects.

 

 

Link to comment
Share on other sites

13 hours ago, Kyrah Abattoir said:

What can you make with only 300 triangles.

An orchestra?

 

On a more serious note, what attracted me to SL is the same thing that has made me back away from Blender, SL has a nice simple building method and wandering around the object as I build it feels natural and intuitive, whereas looking into the viewport of Blender/3D Crafter/GMax has always felt like being in a nightmare where you know what you want to do but nothing seems to quite happen as you expect it to.

 

Is there way to build a bridge from the inworld prim-to-mesh creation tools to get to the position you say we should try and work from, because I for one would make the effort if I could start from where I know what I'm doing and feel comfortable with it.

Edited by Profaitchikenz Haiku
  • Like 1
Link to comment
Share on other sites

19 hours ago, Profaitchikenz Haiku said:

Is there way to build a bridge from the inworld prim-to-mesh creation tools to get to the position you say we should try and work from, because I for one would make the effort if I could start from where I know what I'm doing and feel comfortable with it.

There is always the ability to export prims to mesh but so far, outside the few people who use that for making mockups, it appears to do more harm than good because it gives yet another excuse to "avoid" learning the important parts.

That being said i've been hoping to find (or make) a toolkit for blender that would allow to to speed up some simple UVmapping operations (flat projections & tiling specifically) but no luck so far.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1386 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...