Jump to content
Sign in to follow this  
Medhue Simoni

Why Bump map?

Recommended Posts

Please forgive my ignorance.:smileyindifferent:

Let me explain my background. I'm not a computer texture artist. I "was" a traditional artist for most of my life, mostly drawing and painting. My photoshops skills are getting better, but nowhere near what I would like, or what I see from others. My knowledge of bump mapping is limited.

Now, all that said, I constantly and consistently see many, many people complaining that we do not have bump mapping and I'm perplexed by the volume and importance of it all, considering that we have some simple built in tools for the affect. Again, please forgive my ignorance.

Plus, I've had a number of very accomplished texture artist contact me and ask how I got bump mapping to work, which again, perplexes me. I guess i understand how the affect works, but don't understand why it is such an issue, especially in a 3d world, which has various real time lighting affects. In 2d, yes, I get why it is so important.

Can't you not create a similar affect simply by texturing the item in the right way and using the Bumpiness feature in the build window? I'm asking, as I don't understand. Does not baking bump maps interfere with the real time lighting affects? Also, to me, I would much rather LL spend their time on things that have a much greater affect on function, rather than something that I would consider marginal, at best.

I'd love to hear from people that have a passionate view on this, so that I can better understand it. It kind of bothers me to hear so much about something and myself not understand why it is so important to many people that i would consider very good texture artists.

 

Share this post


Link to post
Share on other sites

You can create those fine textures in a 3D program however, Bumpmaping does not add to your rendering...or at least not much.

As you know, it's a grayscale image that creates high spots and low spots with the depth of shade from black to white.

Let's say I want a brick walkway to show every little indent on the bricks as well as the grout.  To do this with a mesh, it would add significant load as its adding pollys.  What bumpmaps do is modify the light, sort of like shadows to do the same meaning less processing power. Since it is like a shadow, it is dynamic and moves when you move giving a fuller 3D affect.

I have been a long time advocate of adding better bump maps to the game where we can upload our own rather than use their defaults and then modify the intensity of that map.

To create a bump map, you can often just use the image texture over the object and make a grayscale.  You them turn up the contrast to remove most of the gray.  It is then added to the model you are creating and can often be exported as OBJ file as one object.  In most systems such as Unity 3D it is added with the texture object.  Most game texture engines have Light Maps, Bump Maps, Specular Maps, UV maps (for alignment) and of course the Image.

I would also like to see light maps which work sort of the same. You add it as another layer like bump maps but this time, the darker the map, the less light comes from the texture and the more light...you get the picture.  This would enable things like ceiling lights without having to add objects and would allow us to be more selective with "full bright" elements where not just the face is lit, but you can mask out parts you don't want lit.

 

  • Like 1

Share this post


Link to post
Share on other sites

I wish we could use a second texture for certain rendering maps, and make use of the four channels for up to four different maps. Things like parallax, bump, specular, etc would be useful.

But that'd probably be a bit complex for most people... maybe. And there'd be extra bandwidth/performance issues, and then not all viewers/graphics cards would support it... Oh well. I can dream.

Heres an example of basic parallax mapping one of my friends made in SL:

   

  • Like 1

Share this post


Link to post
Share on other sites

I guess i get it. I usually try to add the built in Bumpiness to almost every texture that I create, and usually end up not using it. It does not give me quite what I want, and is seriously affected by the texture resolution size. I just figured that I should do more work on the texture itself to make the areas I want to pop out more.

Share this post


Link to post
Share on other sites

You know it's interesting you brought that up Acheron as I have discussed this with some of my clients who built RedLight Center and all of the Thrixxx.com games.  They all want to add UGC systems and also where concerned that this would be an issue as it can become very complex however, I have to give a lot of credit to the creators within SL as most have no formal training and have done an amazing job with 3DS Max and Maya which are by no means easy to conquer.

But I do see where end users would have problems especially in light of the fact that most builds use textures that are way to high rez.  Most don't realize that the lag issues they get are more often caused by excessive graphics rendering, just like a slow loading web page with huge graphics.  OMG, remember image maps on websites that where 8 megs trying to download a page with a dial up modem.  :matte-motes-delicious:

Share this post


Link to post
Share on other sites

avatarpics.jpg

 

Bump mapping is as explained and adds so much more detail in a flat surfaces, eliminating the need for so much geometry to make up your object. This is a pic of my avatar just as base mesh ~2800 quads on far left, and in the middle with AO map and on far right with normal map which is very similar to a bump map just made in a little bit different way. So as you can see with always using the base mesh you can get so much more detail from the normal map than you can with the AO or of course nothing. So either bump, or preferable normal cause its cleaner, or both would give us so much more freedom without having to just click subdivide on the base mesh :D

  • Like 1

Share this post


Link to post
Share on other sites


Chelsea Malibu wrote:

But I do see where end users would have problems especially in light of the fact that most builds use textures that are way to high rez.  Most don't realize that the lag issues they get are more often caused by excessive graphics rendering, just like a slow loading web page with huge graphics.  OMG, remember image maps on websites that where 8 megs trying to download a page with a dial up modem.  :matte-motes-delicious:

I've made this argument for a very long time. It became extremely evident when we were developing our combat system. I modded games for a few years before I ever found SL, and was very aware  of how I had to keep the total size of the mods down if I wanted any1 to even consider using the mods. When working on our own combat system, I knew that the problem that most combat systems had in SL was that they allowed any1 to create their weapons and stuff, which led to 500 prim swords using more than 2 dozen textures, granted, they looked great. While creating our own system, I was constantly looking for where the lag or delays where coming from. Usually, they were caused by sculpties and textures loading. This is why I've been soo gung ho about mesh, mostly because the texturing can be 10 times or more efficient, especially when your whole gun/build only uses 1 texture.

I also think tho, that caches can be extremely larger than they are, easily as big as any game that comes on a disc. Today, hard drive space should never be an issue for anything. Heck, i have a terabyte of space and barely use 100 gigs of it with all the stuff that I create, and all the different programs that i use.

Share this post


Link to post
Share on other sites

There are some tradeoffs no one has mentioned. 

If we add bump/normal maps we have one more texture to pay to upload and store at the Lab. The viewer then needs to handle the download and calculations for the mapping.

For now we can build the final baked texture to include the bump/normal render shading in Blender or whatever. The result is almost the same as having a bump map active. I've seen some textures in SL that I have look at twice to decide whether they were using a bump map or not. If one locks the camera on the object and cams around it one can tell it is not a real bump. But for general use it is adequate. Good baked textures make a realistic look.

Having them would be nice. But, we have lots of amateurs building in SL. I think much of the time taken with mesh has been in working out how to charge a penalty for poorly made mesh and reward well made mesh with lower costs. If people adapt to well to mesh, may be the Lindens will consider adding bump/normal maps.

 

Share this post


Link to post
Share on other sites

Short version: The bump map code stuff is already in the viewer, we just don't have seperate texture bump map support!So, many say...why not just add a little window to drop a seperate texture in and viola, we have bump mappign that is more complex with zero serious code changes or lag!

Of course, they have to engineer it all because it is twice the texture loading per face...if people use it.  This usage adds to the threat of lag...it would be more popular...so maybe a big asset server load and bandwidth load. This is where it costs in time to figure it out and also tasking the software engineering people to something not so important. This is the downside of popularity and scaling. If it becomes more popular it costs after and if it doens't....well, why the heck bother with it if no one will use it? Sort of ironic that you can mess up pretty bad but an attempt to implement it would cost from day one in lost time from other projects. BUT, it can double many peoples texture uploads! So, that is double the upload fees. This is the payback that might balance out the effort, IF it is popular...but this is all engineering stuff I am not anywhere neer able to fathom right now and have no stats ect. No crystal ball is another issue with all engineering of this sort. Hhhm, maybe I am using the term engineering wrong...I would imagine network engineering, software engineering people would come up with teh stats and then they would have to decide (mayeb even as high as the CEO?) but...since it is there it serves as a pandora's box for my mind! Why not, just add that little drop down thingy...heck, put in a texture offset and repeat button set in there to! Of course, I am not coding it lol. So...yeah, easier said than done lol. ;)


Now, parallax...that is a bit more of an addition! Normal even is, though not as hard now we have .dae file uploads. It is more UV based in nature, it wraps the shape and uses the locations...no? Maybe I have this wrong. But either way, the bump map (which is old school and has far less depth) basically is already there, just waiting to have an option added to allow us to choose our own texture and repeat and offset it! So, people say...why not!

 

EDIT: another thing is that LL will be doing server side rendering, if all goes as planned. This means GPU power is purchased by them, they run it through thier servers and spit out each frame to the person..or maybe not whole frames...but maybe I am getting ahead of what they are working on and thinking of those optimized GIF's as being capable. SO, I am not sure they will want to make things more complex. Mesh flies and is wanted due to it making things faster, not slowign things down for eye candy lol. Plus, it also adds better looks and possible expansion in the future. They can always turn off custom bump mapping and we would create with that in mind..maybe even put screen shots of object server side rendered. In fact, with server side rendering they might even be able to automate 360 degree views with a little toggle a user can click to see what it might look like in there viewer...I am a dreamer when it coes to code. My scribbled notes on making some AI to assist me are a testement to the joke/hope that my mind gets towards when I think...when I figured out how much I learned I ended up with way more math than I can read and put to use in a year. Hey, maybe a math major in my future....but I doubt it lol. But, yeah....the foundation of skynetRP type AI research I find around the web used for collecting recipes and making new ones based on common ingredients ratios and then putting together never put together before ingredients (based upon substitution possbailities, feeback to correct) and making new recieps the world has never seen? Sure, why not! An anarchiac cookboook? No, just a usage tha thas that double meaning for the skynetrp connection ;) My project is far more mundane and not symbolic as a joke about technology and it's usages...anyway. Way to long of an edit...bye for now!

Share this post


Link to post
Share on other sites

Any kind of map adds information mapped to the surface of an object.  In Second Life we just use the "diffuse color" map to give us the color at each point of the surface.  Other graphics engines use more maps to give a more realistic result.  There are over a dozen types that I know of.

Take a look at this brick wall from another graphics engine.  The wall is actually a flat surface in the 3D model.  But it has a grayscale (single color ranging from black to white) that provides height information.  That's called a "Displacement Map" because it actually moves the surface of the rendered bricks.  Bump and Normal maps only affect the shading relative to a light source, but don't actually move the geometry.  So they give the effect of a bumpy surface, but weaker than displacement when seen at an angle like the photo.

Brick Displacement Map

The tradeoff with any extra maps is that it takes a graphics card more time to process when you have more of them.  But they do improve how things look, sometimes dramatically.  Since graphics hardware only gets faster with time, I think it is just a question of when SL will add them, not if they will add them.

Share this post


Link to post
Share on other sites

Since closed beta, the LL developers have spoken about a future "materials" project. The one map that always came up in discussions was normal maps. They made no concrete promises, but they were aware and looked favorably on adding normal maps. Plus, I assume it would be easier to implement since they have normal maps on water already.

If they only pick one extra map type to add, I hope it is normal maps. For one thing, you can build a model with an even lower poly count without losing detailing if you have normal maps. The biggest plus to me is that unlike baking in depth like we can do now in SL, we could have depth that correctly responds to changes in lighting.

In a perfect world, I'd like to see them add support for AO, light and specular maps. They could throw in a dirt map layer if they really wanted to get sexy. ;)

Share this post


Link to post
Share on other sites

"OMG, remember image maps on websites that where 8 megs trying to download a page with a dial up modem."

Careful here, Chelsea!  There may be children reading this forum.  No need to frighten them with scary stories about the age of dial up modems. :matte-motes-oh-rly:

Share this post


Link to post
Share on other sites

Oh how I have wanted for quite some time for there to be texture maps(aside from those god awful basic ones). Something like that would allow so much more detail without the need for alot more work. Making texture maps is usually easy as well. I foresee that once mapping is introduced, it will quickly make many textures obsolete until they have maps to go with them.

Like mentioned, it would increase bandwidth usage as more textures would need to be used. However, texture maps dont have to be the same size as the texture itself, they can be smaller if you arnt looking to add tons of surface imperfections.

Share this post


Link to post
Share on other sites

Biggest drawback that I encounter is that when you bake out a normal map and apply it into your texture map and use the texture map in-world, it's just static information, if that makes any sense. The interaction with light, goes to waste :(



Share this post


Link to post
Share on other sites


DanielRavenNest Noe wrote:

Any kind of map adds information mapped to the surface of an object.  In Second Life we just use the "diffuse color" map to give us the color at each point of the surface.  Other graphics engines use more maps to give a more realistic result.  There are over a dozen types that I know of.

Take a look at this brick wall from another graphics engine.  The wall is actually a flat surface in the 3D model.  But it has a grayscale (single color ranging from black to white) that provides height information.  That's called a "Displacement Map" because it actually moves the surface of the rendered bricks.  Bump and Normal maps only affect the shading relative to a light source, but don't actually move the geometry.  So they give the effect of a bumpy surface, but weaker than displacement when seen at an angle like the photo.

The tradeoff with any extra maps is that it takes a graphics card more time to process when you have more of them.  But they do improve how things look, sometimes dramatically.  Since graphics hardware only gets faster with time, I think it is just a question of when SL will add them, not if they will add them.

Yes, it would take the GPU some time BUT the reasoning behind using it is geometry takes more.

Normal maps are more fun to see, especially for mesh! But, bump is already in the viewer and works with presets and darkness and light of the image. You can sometimes work this into an objects texture, but obvious limits and time wasted testing lead one to wish for more control. I mean,a slider might not be able to be added due to the way the do bump mapping. But, still...the control within a bump map layer means you can keep your objects color/diffuse texture all working nicely from all angles with more lighting styles/angles. For a brick wall...well, you could argue most of the time light would shine down, so it so fine. But, you can see the obvious benifits with all ligth settings. Mechinima and photography have been the focus of the DOF, shadows and even windlight system added. I mean, maybe you don't record it BUT you are sort of coreographic a scene when you hang with freinds and play around! You have to decide on a set of animations and props. It is almost like everything is about looks in SL, for some people. Others just enjoy any kind of animated fun with chat and music or other entertainment online. So, anything..doesn't matter so much.

I would argue that we do need to think about what is capable in SL other than looks, but I like the animated stuff and building stuff that uses physics. At least we can look at stuff, even wehn all else seems to fail lol. The way SL works, it wil never compete with the top games in any catagory that has physics or speed at the center of it. I mean, I could be wrong in 10 years...but I doubt it. So, I suppose why add bump mapping comes down to what we can do. But, there are so many issues to fix...yeah, it seems like wasting time. Although, I still have this feeling of too little to late and this extends also to much of my life when it comes to the question "what has been accomplished this past year" and I see more mounting failures, rust and so on. So, sort of a mixture of BS to deal with...so, now and then I get into fantasy thinking about he possabilities, the hope and so on....log in less + dream more = more happier outlook. So, I guess this is the delusion I experience..i jump into a thread and am like "Bump mapping would be cool!" and so on. lol. But, yeah....it is easier to add new features then hunt down bugs and fix them....that is why they are bugs! They are unwanted, not planned in....at least I don't THINK they are planned into the development lol. You never know, maybe some are!

Share this post


Link to post
Share on other sites

You can store a lot of information in only two textures. It's all about using the colour channels efficiently.

Remember that a texture is ALWAYS stored in graphics memory with 4 channels, even if you push a 3 channel RGB texture, the 4th channel is wasted. With that in mind, using two textures we have 8 channels of information available.

 

Texture #1

- Red+Green+Blue for Diffuse Colour

- Alpha for Transparency

 

Texture #2

- Red+Green for Normal (You can compute a proper normal from two floats)

- Blue for Shiny

- Alpha for Height

 

Now that's a ton of awesome detail in two textures: Colour, Transparency, Normal, Shiny, Height for every surface you want.

Of course, then the issue is, loading two 1024x1024 textures is going to be overkill, right? Well LL could implement client-side limits, say that the #2 texture would have a max size of half of #1. (server-side would seem too strict as it's a client-side rendering/memory issue only)

 

For the question how the parallax textures worked on the video, I simply mis-used the RGB Diffuse channels as a heightmap, hence the black and white. Didn't feel like making complex client-side hack to support a secondary texture slot -- although the above thoughts describe the concept I had desired for my implementation, for such client modifications.

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.

Sign in to follow this  

×
×
  • Create New...