No, the lesson should be... develop a rapport with your graphics programmer, because when you need a particular effect that you don't have, you'll need to work with them to get it. Just like you communicate with the rest of your art team, your graphics programmer is a member of the art team too, so keep them in the loop.
From all of my experiences, one very important thing to consider is that programmers generally have their own work to do. If you've got a dedicated tools guy/guys that is great, but even then, it can be hard to find the time to do artist requests. So you've gotta keep this in mind when asking, i feel for programmers, they always seem to be the one crunching the hardest, there are always more bugs to fix etc, no matter what i do my model isnt likely to break the entire build before an important deadline.
So often when these guys say "can't do it" "impossible" what they really mean is that there is no time for it, or they think the return isn't worth the investment. The thing you can do instead of just calling them retards and liars is to do a little research, try to give a convincing arguement on how much artist time feature X will save, and you may find them being quite a bit more reasonable.
Now, we do it too. Ever have a programmer or some management type come up to you when you're texturing/just finished an asset and say "Oh that is really cool, but can you take that knob and make it 4x bigger?" not realizing the work involved, adjusting high, adjusting low, rebaking, retexturing etc that can come from what they may think are simple changes when an asset is finished. I'm sure you often find yourself wanting to say "Impossible" "Cant be done" to these sort of requests, because while they can be done, its a huge waste of time and energy to do them.
Its a given that most artists do not completely understand the inner works of the specific engine they are on, and often there is something that really will prevent/make it very difficult to add a feature you may think is simple. And because of this, the default response when an artists asks for some shiney new feature is often a straight up "No". Communication is key here, so doing as much research into exactly how it will work, explaining why you really need it and even doing some examples/test cases goes a really long way.
Sometimes there really just isnt time, even if it would save 10,000 artist hours, sometimes the guy who is going to impliment it has more important things to do, like making sure the game actually runs without crashing.
Now, this is not to say that programmers aren't dicks, or arrogant, or without character flaws of any sort, because some are. You just have to THINK like a programmer, to get a programmer to help you.
Well yeah Rooster to me that's the catch - if art direction is strong enough, the whole team should know what the visual aim is supposed to be (is the rich, colored spec look actually needed ala Gears of War? or is it something that's not going to be used much throughout the game because of heavy color correction, ala Killzone2).
If the look and feel of the game is defined early enough then everybody should just work to reach that goal, and no 'huh can't be done' should be heard...
Also I would expect a graphics programmer to know as much about tech AND art theory as what is being discussed here.
But in reality none of this happens. So I would say don't confront the guy, but keep doing example pictures like that. It should feed some thoughts to your AD and I believe he is the one supposed to make the call here....
I think less middle men the better.
Cool thread!
EQ : In my experience, the 'shiny new feature' is rarely some extra icing that spoiled artists ask for ; What I observed multiple times across multiple studios is that, the tech part of the engine had been specified way early with no regard to the artistic goals of a given project ; then comes a time when a feature REALLY feels like it should have been there in the fist place. Then someone asks for it and the rest is the kind of discussion that Roost had to face. Kinda painful!
Honestly as an artist I'd rather have less tech/texture maps to work with, but if it is required to make the games look the way it should, then yeah it should be implemented and worked with, for the sake of the visual goals to achieve.
EQ : In my experience, the 'shiny new feature' is rarely some extra icing that spoiled artists ask for ; What I observed multiple times across multiple studios is that, the tech part of the engine had been specified way early with no regard to the artistic goals of a given project ; then comes a time when a feature REALLY feels like it should have been there in the fist place. Then someone asks for it and the rest is the kind of discussion that Roost had to face. Kinda painful!
Yeah absolutely, i wasn't so much trying to say that everything artists ask for is trivial, than i was just trying to paint a more objective picture of the situation from a programmer's stand point. It very well may be an incredibly important feature that should have been in there from the start, but its easy to see from a programmer's perspective, how you could think "Well you guys made it this far without it, do you *really* need it?" or something along those lines. Now i'm always going to be the guy saying YES I NEED IT YOU WANKERS, but its important to understand both sides.
Dude you are lucky you get spec from the sound of it. Maybe you should lay a hint like, I think the last game that didn't use spec color was Pac Man and Frogger. I don't get why this happens, the no can do attitude, if I could code and an artist asked me if we could get some feature, I would be like describe it, write up the code to show what a cocky prick I am and be like anything else nancy... hmmm , hmmm...We done here? LOL
"A pangram is a sentence which contains every letter of the alphabet. A self-documenting pangram is one which follows the general format of:
This sentence contains <number> a's, <number> b's, <number> c's, ...
For example:
Only a fool would check that this sentence contains exactly six 'a's, one 'b', six 'c's, three 'd's, thirty-four 'e's, five 'f's, two 'g's, ten 'h's, thirteen 'i's, one 'j', two 'k's, five 'l's, one 'm', twenty-two 'n's, seventeen 'o's, one 'p', one 'q', seven 'r's, thirty-two 's's, twenty-six 't's, three 'u's, seven 'v's, eight 'w's, six 'x's, seven 'y's, and one 'z'.
Find the self documenting pangram that begins with "The solution to the pangram problem contains precisely..." "
(totally lifted from Gaia interactive's Puzzle page)
Just because a request is SIMPLE does not make it TRIVIAL.
Just because you can solve one case of a problem does not mean you can create a general case or that there IS a general case.
ZackF: UE3 uses a differed rendering setup and has support for full color spec.
Part of the reason for the resistance is likely that, strictly physically speaking, specular reflection is always the same color as the incoming light itself, all beetle shell or funky car paint effects are due to refraction. That doesn't matter to the end perceived result, but to a purely or at least highly logical mind it DOES make a difference.
Sometimes I think the engineering minds in our field forget we are "faking it" still quite a bit.
* All rendering is HDR
o 7E3 on Xbox 360, FP16 on PC
* All lighting and shadowing options are orthogonal
* Frequent use of deferred rendering techniques
* Very thorough next-gen feature set
" source (PPT from Unreal Technology website)
also
"PCGH: You are using deferred shading. Will there be any chance to get FSAA working with DX9-Level-cards? What about DX10-cards?
Tim Sweeney: Unreal Engine 3 uses deferred shading to accelerate dynamic lighting and shadowing. Integrating this feature with multisampling requires lower-level control over FSAA than the DirectX9 API provides. In Gears of War on Xbox 360, we implemented multisampling using the platform's extended MSAA features. On PC, the solution is to support multisampling only on DirectX 10." Source
UE3 does not render passes of the full screen space to framebuffers independent of lighting and then recombine the images with lighting as a post-process effect, which is what most people mean when they refer to a deferred rendering game engine at this point. The primary advantage of a deferred lighting system is that it enables the usage of many more dynamic lights and dynamic meshes to be rendered because lighting is calculated in one sweeping pass across different shaders per-pixel, which results in a dramatic reduction of draw calls.
The studio I worked at previously spent months changing the renderer for UE3 from a forward rendering solution to a Killzone 2-esque deferred shading renderer, and I had extended dialogues with our tech guys over what it changed about the engine and what differences it meant for content creation. By the time I left we had the entire game lit via dynamic lights, which would be wildly impractical using the vanilla UE3 forward rendering pipeline. I'm pretty familiar with what does and doesn't constitute a deferred renderer at this point. But here is some additional reading:
"In deferred shading all the attributes necessary to completely shade a 3-D scene are rendered into off-screen textures called a G-Buffer." Source
1) AFAIK Unreal 3 uses forward rendering:
"Tim Sweeney, architect of the Unreal engine, highlights further visual challenges of using deferred rendering. “It’s faster for large numbers of lights and shadows, but the drawbacks are increased video memory usage, and artistic limitations as you force all objects to be rendered with the same material model,” he says “Unreal Engine 3 has an extremely flexible and artist-extensible material system, so we didn’t want to constrain this unnecessarily.”" http://www.develop-online.net/features/407/BUILD-Defered-rendering
2) I have yet to see an example where colored spec is useful, even at screen-sizes far above what they will appear at in-game (the energy-drink example above looks like more of either a gamma issue, intensity issue, or both).
3) Talking about colored specs being the same cost as grayscale because there's no way to compress a single channel is insane. Let the channel-packing occur in the pipeline, and stop worrying about it.
Thanks Zack.
I'm familiar with deferred shading in theory anyway, and a lot of what I've read on UE3 suggested/said that it did support deferred shading, but apparently its just some deferred shading techniques integrated to the pipeline rather than a purely deferred setup.
2) I have yet to see an example where colored spec is useful, even at screen-sizes far above what they will appear at in-game (the energy-drink example above looks like more of either a gamma issue, intensity issue, or both).
Huhwha...?!! I guess you've never worked on an FPS game where the weapons, items, arms and hands/gloves take up a large proportion of the screen... the differences between using coloured spec and greyscale spec are painfully obvious at that point, especially when you have objects with a large variety of surface types on one texture.
Try representing copper next to gun-metal next to rubber and polished plastic on a single texture using greyscale specular and let me know how you get on with making those materials actually look correct...
3) Talking about colored specs being the same cost as grayscale because there's no way to compress a single channel is insane. Let the channel-packing occur in the pipeline, and stop worrying about it.
I agree with you here though - it shouldn't matter what methods you're using, the data (whether it's single-channel or greyscale) should be handled nicely by your tools or engine - as Peris said about GRIN, they had "gsm" textures which had 3 different pieces of information in 3 channels, or you can do stuff like put the specular in the 3rd channel of the normal map and derive the last part. There's a ton of options if you need to keep memory down regardless of how many channels you're using.
And then once you show him an long list of AAA games using them, he will ask you to prove him that you really needs them, because after all, an object shines or not, period. And then! He will start telling that maybe you should have a different shader for each material type because REALLY colored spec doesn't make sense.
Yep .........................
Lol another gem man! Classic scenario from my past described there!
2) I have yet to see an example where colored spec is useful, even at screen-sizes far above what they will appear at in-game (the energy-drink example above looks like more of either a gamma issue, intensity issue, or both).
Yeah this is another big part of the problem here. No matter the years of visual experience an artist spent carefully balancing colored specular maps to make his or her asset look great in critically acclaimed game engines written by Carmack or Sweeney, there will always be someone with a big mouth and 'real' experience (aka , Senior and/or Programmer stamped on the business card) telling the artists that the problem lies somewhere else, and making the call ultimately. (not saying that you have a big mouth Glib hehe. Just using your quote as an example)
I don't mind different point of views on things like that ; what worries me is, having programers and tech-oriented folks asking artists to prove their point all the time. I mean, in my opinion working as a game programmer or tech/tool guy should mean being up to speed with all the engine developments and asset authoring techniques, and it's clearly not the case this gen and past gen even. I feel like the best tool guys are the ones doing art stuff during their free time, because they see both sides of the coin. They are rare but very VERY valuable when you find them :P I remember great texture painting theory discussions I had with my tech guy some time ago, about an asset he was making on his own, after hours. Truly a great exchange, as we were both growing from it.
Also I am not saying that colored spec is needed all the time ; it's just that it takes more than a few shiny chrome balls to make a call whether or not they are needed. You need real assets and strong art direction for that.
In many studios I feel like the artists are becoming the ones who have the better understanding of the 'big picture' (thanks to places like Polycount) and genuinely caring about making sure that things get done beautifully and efficiently, while code/tech tends to overcomplicate things/reinvent the wheel a bit too much ?
One thing that sometimes works in getting a coder to add a new feature, which Vailias hinted at earlier, is you telling them "there's no way someone could code that into our engine, it simply can't be done." Then he/she gets all excited and codes it up on the weekend, then comes in and shows it off on Monday saying "Look, here it is, you see? Working in the engine! Aren't I awesome?!"
I feel quite happy then, that our Technical Director and our Graphics Programmer are always reading up on new graphics tech and trying to push boundaries especially with regards to shaders and real-time stuff... they are actually actively interested in being able to make stuff look cool, and while there are obvious limitations and optimisations that have to be respected in order to make a game perform acceptably, it's good to know that they really care about this stuff, and actually research it in their spare time.
Our Technical Director keeps sending me links to papers, videos and demos which show off new graphics features and we often get into good discussions about what effects and techniques are required to create great-looking graphics. Maybe I'm spoiled - but it seems like other companies like id, Crytek and Epic also have a big focus on research and development and generally keeping abreast of the latest real-time graphics.
Especially for those guys it's in their interests since they are licensing out engines and they'd be mad not to try and push ahead with new and interesting stuff.
It's a bit of a shame to hear that a lot of people here have had very negative experiences with programmers - in my personal experience they have mostly been very helpful and just as keen to try and make stuff work and look great as any artist.
No, the lesson should be... develop a rapport with your graphics programmer, because when you need a particular effect that you don't have, you'll need to work with them to get it. Just like you communicate with the rest of your art team, your graphics programmer is a member of the art team too, so keep them in the loop.
Right, I didn't say as an artist you should put coders apart from everything you do in the art. But in many cases programmers act ignorantly when you talk about performance vs beauty, at least from coders I worked with. My guess is that you got me wrong Eric.
But in many cases programmers act ignorantly when you talk about performance vs beauty.
How do you expect a programmer to act when you look at -them- with an attitude like that? I've had great interactions with programmers at my jobs and you just need to learn to communicate. Sure there are programmers who are hard to deal with but you bet there are artists who are the same way.
You can ask many programmers I worked with before telling me that Jordan, and they will all say: "Yeah, Hugo was the only artist worried/curious about not crossing the limits"
I do my best, and yes, I act in a good manner with them, so much that I sometimes ask to understand why "that" or "this" happens on the technical part to not do mistakes.
What I am trying to say is that SOME, not ALL of them are ignorant on explaining why, or even doing because of lazyness. Maybe because of personality? idk
And yes, there are many Ignorant artists as well, that make whatever they think they can do, and blame on the programming part or even other artists.
All I'm saying its from my experience, which was not that good. I hope I cleared it out.
Huhwha...?!! I guess you've never worked on an FPS game where the weapons, items, arms and hands/gloves take up a large proportion of the screen... the differences between using coloured spec and greyscale spec are painfully obvious at that point, especially when you have objects with a large variety of surface types on one texture.
Try representing copper next to gun-metal next to rubber and polished plastic on a single texture using greyscale specular and let me know how you get on with making those materials actually look correct...
Well you're right, my professional experience is all open-world stuff, so it's usually a question of 'does it even need a normal/spec map?' rather than whether it needs a color spec map or not. I do have a personal interest in this stuff though, and I try to keep myself up-to-date on what other people are doing. Always up for being taught something .
I must admit it is something that interests me, especially since I saw a lot of people's examples where they were using the inverse color of their diffuse to achieve a more 'neutral' highlight. If that's the main use, then that's something to complain to your rendering SEs about since it sounds like a gamma issue in your pipeline (doing your calculations in gamma-space instead of linear-space). I would love to hear examples of what color you would tint a material's specular, and why. Like in your example above, gun-metal vs rubber vs plastic. What colors would you make the diffuse and spec for each, and why?
It's also sad to see so many of you have poor relations with programmers. Making sure there's clear communication from artist -> rendering SE/pipeline programmer/tools programmer/TAD is a huge part of turning out a good final product.
glib: yeah, gunmetal/plastic/rubber aren't so much of the issue really - they will probably look fairly decent even with greyscale spec since they don't have much colour intensity in the highlight (although I have to say that the people who simply "invert the colour of their diffuse" are also missing the point a bit).
The more tricky stuff is things like these:
Copper pipe (you'd want a saturated light orange specular over a dark, less saturated brown diffuse)
"Beetle shell" effect (where the specular colour is essentially something crazily different and saturated -eg. here you'd have a bright red saturated specular with a green diffuse)
Weird shiny bauble material (saturated purple/pink specular over darker red diffuse)
Where the colour of the specular highlight actually multiplies the saturation of the base colour (but not so much the brightness value, more the saturation - this is an important distinction)
In fact in that bauble example you can clearly see that the highlight of this kind of material is more of a flat purple colour, there's no way you could get that out of a greyscale specular texture without some hefty shader tweakage, which again only works at best "per poly" (and more likely, per surface, which isn't much use for complex things like vehicles, weapons, characters etc. which all have vastly different surface properties).
I wish I wasn't under NDA so could show some examples of what a big difference coloured specular can make to a game asset. We have some stuff in-house which looks really interesting purely because the specular colours are so varied (contrasting colours side by side in the specular can really help sell material differences and make an asset "pop"), and it would lose a lot of that coolness if it was greyscale.
glib: yeah, gunmetal/plastic/rubber aren't so much of the issue really - they will probably look fairly decent even with greyscale spec since they don't have much colour intensity in the highlight (although I have to say that the people who simply "invert the colour of their diffuse" are also missing the point a bit).
The more tricky stuff is things like these:
Copper pipe (you'd want a saturated light orange specular over a dark, less saturated brown diffuse)
"Beetle shell" effect (where the specular colour is essentially something crazily different and saturated -eg. here you'd have a bright red saturated specular with a green diffuse)
Weird shiny bauble material (saturated purple/pink specular over darker red diffuse)
Where the colour of the specular highlight actually multiplies the saturation of the base colour (but not so much the brightness value, more the saturation - this is an important distinction)
In fact in that bauble example you can clearly see that the highlight of this kind of material is more of a flat purple colour, there's no way you could get that out of a greyscale specular texture without some hefty shader tweakage, which again only works at best "per poly" (and more likely, per surface, which isn't much use for complex things like vehicles, weapons, characters etc. which all have vastly different surface properties).
I wish I wasn't under NDA so could show some examples of what a big difference coloured specular can make to a game asset. We have some stuff in-house which looks really interesting purely because the specular colours are so varied (contrasting colours side by side in the specular can really help sell material differences and make an asset "pop"), and it would lose a lot of that coolness if it was greyscale.
I appreciate the examples.
I totally agree with all of those you posted, but I would argue those are very, very specific cases and there are only a handful of materials with that behavior... say 5% of your total assets or less? And most of those could be solved with a specific shader with say a tint value applied to your specular (and you would use this shader only on those specific materials, not the entire texture sheet).
You're at Splashdamage right? So you're talking about using a colored specular for a stylized and 'different' look, rather than a strictly 'real' look? For the average game going for a more 'real' look, I would imagine a B&W spec, a gloss map, and another map in the red channel (heightmap for use in a parallax shader perhaps?) would be a far better use of two channels than a full color spec. Better bang for the buck too IMO.
Hehe Glib that's exactly the answer I was waiting to hear :P
Yep those are rare cases shown here (christmas ball, redbull can) and obviously they are not the type of asset mostly seen in todays games. But! Mop was just showing the most obvious examples to bring the point across. In fact, full color spec has a huge impact in terms of material contrast perception. (by material contrast I mean : the relative qualities of metal versus skin versus leather for instance). Note that on the examples above only one material is shown at a time. If you were to design some kind of pokeball (!) made of 50% christmas ball material, 25% scarab shine, and 25% human skin, then you would be very stuck if you dont have access to a per-pixel colored specular.
Like most subtle cases in art and color theory, it really becomes obvious with appropriate examples. I will try to post some as soon as possible.
And nope this is not related to real vs stylized look. It really is a matter of good contrast versus poor contrast inside a given object. But if real means dull and lifeless then yeah I guess
Good thread for anyone having to face these neverending discussion at the studio in the future !
This is a very old asset but still. It shows a typical setup for a game character, with different materials and paint jobs 'touching' each other on the textures (meaning, no way to setup the shader per-polygon). In the spec pay extra attention to the following parts :
- red pipe on the backpack and thin red shoulder wiring
> spec : deep yellow
- yellow paint job
> spec : pale cream color
- green paint job
> spec : pale green (texture not shown on the page but you can imagine)
- oily metal parts, scarab style
> spec : rainbow colors, not a hue shift (more info in the spec than in diffuse)
Notice that the scarab shine stops where the seashells start, in a way that no per-polygon shader assignement could achieve. (I wanted the stuck seashells to look as dry and dull as possible to bring up as much material contrast as possible, hence their pitch black spec)
- neutral metal parts on green and pink variants
> spec : grey (texture not shown)
- dark rubber part of the diving suit
> spec : blue
- brown part of the diving suit :
>spec : almost black
Will try to post a greyscale spec comparison on that guy if I can find the sources somewhere hehe. You will notice that this spec map is in no way a negative copy or color shifted copy of the diffuse. Each part has been carefully given its appropriate spec color, at the same time that the diffuse map was painted.
Obviously this is a fantasy character but material contrast like above can be seen on any modern weapon, packback, headphones ... and even on some christmas balls :P
well pior in the pokeball case, I would advocate using three different materials/shaders for your surfaces rather than trying to wrap them all in one with a colored spec. It's more expensive, yes, but you would also expect this to be a one-off asset and not something game-wide (unless you're making a game with a ton of metal+skin pokeballs in which case... I'm listening).
Specular level and specular width/gloss should be able to define any materials you need to. I would imagine heavily tinting the specular values *might* make it look better under specific lighting conditions in say your desert level, but it would fall apart when you took it to the forest level. Nearly all materials should be reflecting the light color (with the exception of the above examples... but if you're making a beetle game, I would expect you to have a beetle shader and not globally set up colored spec maps for use on stuff that doesn't need them).
I look forward to your example. But it needs to show a marked difference over a [B&W spec, gloss, and AO] map that would be of the same cost in order to sway me .
Glib the reason to have spec color is so the artist can control how something looks when light hits the surface. To deny an artist that level of control would be like making a programmer code a game without a compiler, just with a scripting language. Now it's probably possible to do such a thing, but it would be a pain in most cases. Of course you don't need spec color but a lot of mundane things like metal, some stones, and other fxs would not be possible if you couldn't use a spec color map. You ever heard the line in aliens vs predator, it's like a condom, its better to have them and not need them than to need them and not have them. Not all projects need them, but when you do need them, then you might get why rooster is upset, Just think of it this way, "he is trying to get laid"... it doesn't matter if you don't understand. that's huge, it's improtant... "he is trying to get laid"... LOL
Specular level and specular width/gloss should be able to define any materials you need to. I would imagine heavily tinting the specular values *might* make it look better under specific lighting conditions in say your desert level, but it would fall apart when you took it to the forest level. Nearly all materials should be reflecting the light color[...].
This is very true in the realm of ... reality. Yeah, light is defined by the law of physics and optics, so in 'real' practice it is true. But! Rubber, copper, skin, painted metal have some very unique physical qualities in the real world that don't have an equivalent in the game world : microscopic roughness or smoothness, successive coatings (paint/laquer), underlying surface qualities (skin layers and blood), weird color absorbtion ... All these cannot be transposed in the game world, because it would be neverending and too costly, hence we have to find hacks. It turns out that full color spec map is a very handy one, bacause it does the job AND gives full power to the artists. No tech involved, just art theroy and (spectacular-specular) texture painting skills.
In many ways, full colored spec is very similar to artistically painted diffuse maps back in the day. Sure, in real world theory the parts looking 'up' are not painted brighter (even less with a rich color theory shift!!! This one must have given programmers a headache in that time lol). But painting in rich directional light color information proved out to be a powerful game hack, all taken care of by artists, at no cost. One could argue that more polygons could prevent that need, but we all know that it never was true (examples are plenty : ps2 games, WoW, jap game art ...) since gouraud shading is so ugly it destroys shapes anyways.
Glib the reason to have spec color is so the artist can control how something looks when light hits the surface. To deny an artist that level of control would be like making a programmer code a game without a compiler, just with a scripting language. Now it's probably possible to do such a thing, but it would be a pain in most cases. Of course you don't need spec color but a lot of mundane things like metal, some stones, and other fxs would not be possible if you couldn't use a spec color map. You ever heard the line in aliens vs predator, it's like a condom, its better to have them and not need them than to need them and not have them. Not all projects need them, but when you do need them, then you might get why rooster is upset, Just think of it this way, "he is trying to get laid"... it doesn't matter if you don't understand. that's huge, it's improtant... "he is trying to get laid"... LOL
I understand where you're coming from, but what happens when I want to move that asset from your desert level with a strong key, warm fill/bounce to a forest level with a very soft or nonexistant key, green/brown fill. Or how about to my snow level?
Would you expect it to look good in each case, or require a new map to tune each time? As there is no 'right' color for your surfaces (since your metal, rubber etc isn't one of the select few materials that has a specific spec color) I would expect you to need to generate a new map each time I gave you lighting conditions. Sounds like you need bluray and a whole hell of a lot of time to generate one set of spec maps for each prop, for each environment lighting style.
Glib, I must thank you for precisely recreating the exact argumentation we all had to face from programmers in the case of full colored specular maps. I mean really, it's rare to have that kind of discussion documented and I can see this thread being a great ref for the future.
Per, the problem is that in a game studio environment where tasks are broken into so many different persons, even all the refs you posted wouldn't stand a chance against the voice of a programmer. It's sad but it's true. If it means less memory (or whatever. taking a shortcut here), then no one would take the time to really look at those pics and see the Big Picture. The only thing that works is carefully broken down comparisons, with or without colored spec, on full game assets.
It pisses me of too, that artists somehow have to 'prove' things like that whereas they should just be trusted for their expertise. But I can assure you that years of senior art experience would never ever win that argument against code or so-called optimisation, without dumbed down examples on actual game assets. With big arrows pointing at suff. And bullet points.
"The image on the right made neither of these corrections and exhibits several problems. The skin tone from the color photographs is changed because the lighting was performed in a nonlinear space, and as the light brightened and darkened the color values, the colors were inadvertently changed. (The red levels of the skin tones are higher than the green and blue levels and thus receive a different boost when brightened or darkened by light and shadow.) The white specular light, when added to the diffuse lighting, becomes yellow."
Also when you talk of a traditional artists' understanding of specular, I would raise a big flag of caution. White and black on a specular map isn't just a linear add on your diffuse. A CG artists udnerstanding of what specular is must be different than a traditional artist because the CG artist deals with components that make a whole, while the traditional deals only with the 'whole'.
pior: That's a nice piece, I like it. What material is the outer skin, and why did you choose a green specular value for it to emphasize that material? (It's not made of beetle is it? )
You're talking about ambient maps, reflection maps. That's something else entirely. A spec map should capture properties bound to the surface, not to the environment.
Specularity is an approximation for a perfectly glossy reflection. Light shining on an object is absorbed (diffuse) or bounced (specularity OR reflection). Now really this is more of a diffuse reflection versus direct reflection, but it serves for the current discussion.
A surface with specularity AND reflection doesn't make a whole lot of sense in the physical method of thought, but it does in our domain purely because we don't have enough control over the reflection (usually).
As we've covered, there are a FEW surfaces which don't bounce back the same color that was incident, but they are very definitely the exception, not the rule.
Well Per you are gifted enough to be able to wear both hats (or wigs.), but honestly I have almost never seen a bridge/techart guy able to paint a rich, artistically crafter oldschool diffuse map - hence I wouldn't expect such team members to really know the power given by full colored spec from just merely looking at them, or from just looking at real life ref, as opposed to actually creating them.
Most tech/art tool guys I met were former animators, not texture artists. So far and over 4+ pro years I met only one who was able to paint good textures ... hence the "prove that!" part.
I think sooner or later someone here will have to do a gameart asset of a terra cotta blob with a metal ring to prove the point :P
Sounds like a programmer to me. For clarification, are you?
Nope, environment artist. I just like to read so I can hold my own in talks with the rendering guys and the TAD. I generally land in the more bridging-the-gap position. And pior is right, my oldschool hand-painted diffuse maps are pretty shitty. Thankfully I don't have to do them .
Gonna toss my hat in here and give my reason for colored specular. Yes skin has a white specular, but in some situations blue just works better. The thing about that nvidia paper on skin glib is their method for representing skin is hella expensive. To actually use something like that you'd have to approximate a lot of what they do, and adding some color to the specular may be required to get the same look. I agree that doing calculations in linear space helps avoid a lot of problems....UE3 does this and yet I use colored specular all over the place (not necessarily a colored texture but I may use a solid color or the diffuse multiplied etc).
The thing is materials cannot be so expensive that the represent each material with 100% accuracy or even CLOSE to it so we need tools like colored specular to approximate the look artistically. Yeah I cant do SSS in realtime, but if I take my diffuse calculation and push the penumbra back a little bit and tint the transition a little red well it looks a little bit more like skin. It's not physically accurate but it's an artistic approximation that works.
per, I think a lot of the examples you are showing don't need a colored specular at all to look like that. It's only really some where I could imagine it helps, like the beetle car and stuff with sortoff translucent surfaces (like your first picture, that is a great example). Like the other cars, in my experience you can pretty much get that look with just a cube map and a dark grayish mask.
After talking to another artist here in the studio who is also on polycount, I think I understand what we may be running into here. In the example of the blue skin with red spec on the nose/ears where you would have SSS, I can see what you're going for. Since you don't have SSS, you're going for maximum contrast between skin that does and doesn't have it in your specular.
I'm wondering if those of you who are advocating for colored specular have primarily worked in smaller studios? It seems like a sort of swiss army knife solution to many issues. It solves none of them perfectly, but it does a decent job and requires no excess rendering SE time.
I would gravitate toward a situation where you have a B&W specular system that covers most materials in the world, then visit special cases in your game that need more attention, such as skin if you're a character heavy game, car paint if you're a racer, beetles if you're a beetle game, etc. Since you have kept the cost down on the assets that *don't* need a colored specular, you are free to spend a bit more on your 'hero' items down the line. But I'm used to 120+ person teams, where you have identified these items and can have an artist and rendering SE sit down to tackle them one at a time.
I also haven't seen a colored spec map example so mind-blowing that I would want to spend the memory on that before I spent it on a gloss map.
Sorry man, I'm agreeing with perna on this, if you don't see the benefit that's you're loss. Every artist I've worked with has utilized colored specular, every 3d application I've worked with has supported colored specular and every shader I've written has probably supported color specular.
This kinda goes back to the original problem of this thread, if artists are craving a tool or a feature as minuscule as colored specular they should probably get it because it's so ridiculously easy to implement and better art will be the result of it.
Glib, you personally don't see the value of coloured specs. Ok. I do, based on having approved and produced a massive amount of assets for a number of high-profile developers (who have specifically requested work to be put into specular colour). You don't see how specular colour contributes to the varied looks of the materials in photos I posted; that's a limitation on your part.
Some of the guys you're discussing with there are exceptionally talented and technically gifted artists, whos opinions you dismiss with ease. See, that attitude is why I reckoned you might be a programmer, not because of your technical know-how.
Alright well it's about quitting time here, so I'm going to go home and get some dinner. Sorry to hear you think I'm being dismissive or offensive, it wasn't my intent. I really like a lot of the art created by the people I'm having this discussion with, and I agree they and you are talented. I didn't mean to damage your ego by disagreeing with you, I simply hold a contrary position and was trying to understand yours. I use a few of your scripts on a daily basis and I'm glad you provide them to the community. I do dislike the insinuation that I shouldn't be disagreeing with my polycount 'betters' though.
I think I've learned something, but if anything I've only come to believe my initial assertions more strongly than I did at the start after seeing the arguments against. Thanks for the discussion and I think I'll leave it alone now, before it turns into a flamewar.
To me the ace in the hole was always the gold example. Dark green diffuse and yellow specs, looks impressive every time.
My experience with programmers, although somewhat limited compared to many industry vets, has always been a positive one. We had a relationship of mutual respect and collaboration, with both sides being interested in the other's voodoo, and i've on several occations done spare-time experiments to test out stuff with a programmer.
After working for an iphone title i had nightmares of "LESS DRAWCALLS, I DON'T CARE ABOUT MEMORY!".. putting everything on huge texture sheets provided a headache when it came to tiling textures. But thats not really relevant to the discussion, is it now?
Yep, I think that that Pior and Per are right here - we can post all the photos we want, but that's not really going to help - Per's teapot image above is the best example in this thread so far (although Pior's models are nice examples too).
Oddly I agree with Peris and Glib that most of the photos Per posted originally actually look to me like they'd be fine with a greyscale specular But that's beside the point.
As has been touched on a few times, we're not actually talking about the "realistic" method, we're talking about artistic freedom - the freedom of an artist to make something look cool.
Using entirely grayscale specular for assets as complex as a character, weapon or vehicle is going to end up with it looking overall plasticky and boring. While what Glib says is true, that you could use a single greyscale specular texture and then dividing your surface up into multiple shaders with different tint values, this is not only a really slow and clunky solution (in both workflow and run-time performance, all in order to save a tiny amount of texture memory), but it will also lose all the subtleties of the surfaces (eg. flecks of dark red rust highlight on a bright blue/green metal shine) - that's the sort of thing you can't recreate using any amount of "solid colour" tinting over a greyscale map.
And this is the sort of thing that can make the difference between a "decent" textured asset and an "awesome" textured asset. And using coloured specular means the artist has total freedom and control, rather than being constrained by the shader limitations.
Again, I'm using these specific weapon/character/vehicle examples because in many environment art "generic tiling texture" cases you actually don't need coloured spec if you can tint it in the shader since those surfaces tend to be fairly uniform. Obviously it still helps for providing fine detail, basically any surface which has two or more contrasting materials (peeling paint over metal, or metal rivets in wood, or rust on top of metal, the list can go on and on) will immensely benefit from coloured specular.
It's the material contrasts which the artist controls in the specular colour that make all the difference.
Edit: While I was typing that up, rollin nailed it in a single sentence
I have to admit it, Im a closet material lover, I'm very much for having different materials differentiate more than in just the diffuse, but it often clashes with my own optimize side, the side that wants to fake everything with as little as possible.
so I see it as sacrifices, if I want something extra, I would have to sacrifice some space for it.
In the case of those cars, if you really want to go high-end shaders for the carpaint, there is no way you're going to be using colored specmaps. It's WAY easier to just use greyscale masks and use RGB parameters to change specular and diffuse colors. Otherwise you end up with an RGB diffuse and an RGB spec for every single colorvariation, while you can get away with diffuse, spec and gloss in each channel of one single RGB image. So I don't think cars are a good example for colored specular.
Replies
From all of my experiences, one very important thing to consider is that programmers generally have their own work to do. If you've got a dedicated tools guy/guys that is great, but even then, it can be hard to find the time to do artist requests. So you've gotta keep this in mind when asking, i feel for programmers, they always seem to be the one crunching the hardest, there are always more bugs to fix etc, no matter what i do my model isnt likely to break the entire build before an important deadline.
So often when these guys say "can't do it" "impossible" what they really mean is that there is no time for it, or they think the return isn't worth the investment. The thing you can do instead of just calling them retards and liars is to do a little research, try to give a convincing arguement on how much artist time feature X will save, and you may find them being quite a bit more reasonable.
Now, we do it too. Ever have a programmer or some management type come up to you when you're texturing/just finished an asset and say "Oh that is really cool, but can you take that knob and make it 4x bigger?" not realizing the work involved, adjusting high, adjusting low, rebaking, retexturing etc that can come from what they may think are simple changes when an asset is finished. I'm sure you often find yourself wanting to say "Impossible" "Cant be done" to these sort of requests, because while they can be done, its a huge waste of time and energy to do them.
Its a given that most artists do not completely understand the inner works of the specific engine they are on, and often there is something that really will prevent/make it very difficult to add a feature you may think is simple. And because of this, the default response when an artists asks for some shiney new feature is often a straight up "No". Communication is key here, so doing as much research into exactly how it will work, explaining why you really need it and even doing some examples/test cases goes a really long way.
Sometimes there really just isnt time, even if it would save 10,000 artist hours, sometimes the guy who is going to impliment it has more important things to do, like making sure the game actually runs without crashing.
Now, this is not to say that programmers aren't dicks, or arrogant, or without character flaws of any sort, because some are. You just have to THINK like a programmer, to get a programmer to help you.
If the look and feel of the game is defined early enough then everybody should just work to reach that goal, and no 'huh can't be done' should be heard...
Also I would expect a graphics programmer to know as much about tech AND art theory as what is being discussed here.
But in reality none of this happens. So I would say don't confront the guy, but keep doing example pictures like that. It should feed some thoughts to your AD and I believe he is the one supposed to make the call here....
I think less middle men the better.
Cool thread!
EQ : In my experience, the 'shiny new feature' is rarely some extra icing that spoiled artists ask for ; What I observed multiple times across multiple studios is that, the tech part of the engine had been specified way early with no regard to the artistic goals of a given project ; then comes a time when a feature REALLY feels like it should have been there in the fist place. Then someone asks for it and the rest is the kind of discussion that Roost had to face. Kinda painful!
Honestly as an artist I'd rather have less tech/texture maps to work with, but if it is required to make the games look the way it should, then yeah it should be implemented and worked with, for the sake of the visual goals to achieve.
Yeah absolutely, i wasn't so much trying to say that everything artists ask for is trivial, than i was just trying to paint a more objective picture of the situation from a programmer's stand point. It very well may be an incredibly important feature that should have been in there from the start, but its easy to see from a programmer's perspective, how you could think "Well you guys made it this far without it, do you *really* need it?" or something along those lines. Now i'm always going to be the guy saying YES I NEED IT YOU WANKERS, but its important to understand both sides.
Good luck I hope it works out in your favor.
Ok, solve this simple problem
"A pangram is a sentence which contains every letter of the alphabet. A self-documenting pangram is one which follows the general format of:
This sentence contains <number> a's, <number> b's, <number> c's, ...
For example:
Only a fool would check that this sentence contains exactly six 'a's, one 'b', six 'c's, three 'd's, thirty-four 'e's, five 'f's, two 'g's, ten 'h's, thirteen 'i's, one 'j', two 'k's, five 'l's, one 'm', twenty-two 'n's, seventeen 'o's, one 'p', one 'q', seven 'r's, thirty-two 's's, twenty-six 't's, three 'u's, seven 'v's, eight 'w's, six 'x's, seven 'y's, and one 'z'.
Find the self documenting pangram that begins with "The solution to the pangram problem contains precisely..." "
(totally lifted from Gaia interactive's Puzzle page)
Just because a request is SIMPLE does not make it TRIVIAL.
Just because you can solve one case of a problem does not mean you can create a general case or that there IS a general case.
ZackF: UE3 uses a differed rendering setup and has support for full color spec.
Part of the reason for the resistance is likely that, strictly physically speaking, specular reflection is always the same color as the incoming light itself, all beetle shell or funky car paint effects are due to refraction. That doesn't matter to the end perceived result, but to a purely or at least highly logical mind it DOES make a difference.
Sometimes I think the engineering minds in our field forget we are "faking it" still quite a bit.
* All rendering is HDR
o 7E3 on Xbox 360, FP16 on PC
* All lighting and shadowing options are orthogonal
* Frequent use of deferred rendering techniques
* Very thorough next-gen feature set
"
source (PPT from Unreal Technology website)
also
"PCGH: You are using deferred shading. Will there be any chance to get FSAA working with DX9-Level-cards? What about DX10-cards?
Tim Sweeney: Unreal Engine 3 uses deferred shading to accelerate dynamic lighting and shadowing. Integrating this feature with multisampling requires lower-level control over FSAA than the DirectX9 API provides. In Gears of War on Xbox 360, we implemented multisampling using the platform's extended MSAA features. On PC, the solution is to support multisampling only on DirectX 10."
Source
The studio I worked at previously spent months changing the renderer for UE3 from a forward rendering solution to a Killzone 2-esque deferred shading renderer, and I had extended dialogues with our tech guys over what it changed about the engine and what differences it meant for content creation. By the time I left we had the entire game lit via dynamic lights, which would be wildly impractical using the vanilla UE3 forward rendering pipeline. I'm pretty familiar with what does and doesn't constitute a deferred renderer at this point. But here is some additional reading:
"In deferred shading all the attributes necessary to completely shade a 3-D scene are rendered into off-screen textures called a G-Buffer." Source
Guerrilla Games Killzone 2 Deferred Rendering Presentation
"Tim Sweeney, architect of the Unreal engine, highlights further visual challenges of using deferred rendering. “It’s faster for large numbers of lights and shadows, but the drawbacks are increased video memory usage, and artistic limitations as you force all objects to be rendered with the same material model,” he says “Unreal Engine 3 has an extremely flexible and artist-extensible material system, so we didn’t want to constrain this unnecessarily.”"
http://www.develop-online.net/features/407/BUILD-Defered-rendering
2) I have yet to see an example where colored spec is useful, even at screen-sizes far above what they will appear at in-game (the energy-drink example above looks like more of either a gamma issue, intensity issue, or both).
3) Talking about colored specs being the same cost as grayscale because there's no way to compress a single channel is insane. Let the channel-packing occur in the pipeline, and stop worrying about it.
I'm familiar with deferred shading in theory anyway, and a lot of what I've read on UE3 suggested/said that it did support deferred shading, but apparently its just some deferred shading techniques integrated to the pipeline rather than a purely deferred setup.
but seriously, full color specular and single color specular is just a matter of shader
so quickfix is possible
Huhwha...?!! I guess you've never worked on an FPS game where the weapons, items, arms and hands/gloves take up a large proportion of the screen... the differences between using coloured spec and greyscale spec are painfully obvious at that point, especially when you have objects with a large variety of surface types on one texture.
Try representing copper next to gun-metal next to rubber and polished plastic on a single texture using greyscale specular and let me know how you get on with making those materials actually look correct...
I agree with you here though - it shouldn't matter what methods you're using, the data (whether it's single-channel or greyscale) should be handled nicely by your tools or engine - as Peris said about GRIN, they had "gsm" textures which had 3 different pieces of information in 3 channels, or you can do stuff like put the specular in the 3rd channel of the normal map and derive the last part. There's a ton of options if you need to keep memory down regardless of how many channels you're using.
you obviously haven't heard about our new game red bull drinker 3
Lol another gem man! Classic scenario from my past described there!
Yeah this is another big part of the problem here. No matter the years of visual experience an artist spent carefully balancing colored specular maps to make his or her asset look great in critically acclaimed game engines written by Carmack or Sweeney, there will always be someone with a big mouth and 'real' experience (aka , Senior and/or Programmer stamped on the business card) telling the artists that the problem lies somewhere else, and making the call ultimately. (not saying that you have a big mouth Glib hehe. Just using your quote as an example)
I don't mind different point of views on things like that ; what worries me is, having programers and tech-oriented folks asking artists to prove their point all the time. I mean, in my opinion working as a game programmer or tech/tool guy should mean being up to speed with all the engine developments and asset authoring techniques, and it's clearly not the case this gen and past gen even. I feel like the best tool guys are the ones doing art stuff during their free time, because they see both sides of the coin. They are rare but very VERY valuable when you find them :P I remember great texture painting theory discussions I had with my tech guy some time ago, about an asset he was making on his own, after hours. Truly a great exchange, as we were both growing from it.
Also I am not saying that colored spec is needed all the time ; it's just that it takes more than a few shiny chrome balls to make a call whether or not they are needed. You need real assets and strong art direction for that.
In many studios I feel like the artists are becoming the ones who have the better understanding of the 'big picture' (thanks to places like Polycount) and genuinely caring about making sure that things get done beautifully and efficiently, while code/tech tends to overcomplicate things/reinvent the wheel a bit too much ?
Problem is, programmers smell bad
and artists look good
it's kinda unfair
Our Technical Director keeps sending me links to papers, videos and demos which show off new graphics features and we often get into good discussions about what effects and techniques are required to create great-looking graphics. Maybe I'm spoiled - but it seems like other companies like id, Crytek and Epic also have a big focus on research and development and generally keeping abreast of the latest real-time graphics.
Especially for those guys it's in their interests since they are licensing out engines and they'd be mad not to try and push ahead with new and interesting stuff.
It's a bit of a shame to hear that a lot of people here have had very negative experiences with programmers - in my personal experience they have mostly been very helpful and just as keen to try and make stuff work and look great as any artist.
Right, I didn't say as an artist you should put coders apart from everything you do in the art. But in many cases programmers act ignorantly when you talk about performance vs beauty, at least from coders I worked with. My guess is that you got me wrong Eric.
How do you expect a programmer to act when you look at -them- with an attitude like that? I've had great interactions with programmers at my jobs and you just need to learn to communicate. Sure there are programmers who are hard to deal with but you bet there are artists who are the same way.
I do my best, and yes, I act in a good manner with them, so much that I sometimes ask to understand why "that" or "this" happens on the technical part to not do mistakes.
What I am trying to say is that SOME, not ALL of them are ignorant on explaining why, or even doing because of lazyness. Maybe because of personality? idk
And yes, there are many Ignorant artists as well, that make whatever they think they can do, and blame on the programming part or even other artists.
All I'm saying its from my experience, which was not that good. I hope I cleared it out.
Well you're right, my professional experience is all open-world stuff, so it's usually a question of 'does it even need a normal/spec map?' rather than whether it needs a color spec map or not. I do have a personal interest in this stuff though, and I try to keep myself up-to-date on what other people are doing. Always up for being taught something .
I must admit it is something that interests me, especially since I saw a lot of people's examples where they were using the inverse color of their diffuse to achieve a more 'neutral' highlight. If that's the main use, then that's something to complain to your rendering SEs about since it sounds like a gamma issue in your pipeline (doing your calculations in gamma-space instead of linear-space). I would love to hear examples of what color you would tint a material's specular, and why. Like in your example above, gun-metal vs rubber vs plastic. What colors would you make the diffuse and spec for each, and why?
It's also sad to see so many of you have poor relations with programmers. Making sure there's clear communication from artist -> rendering SE/pipeline programmer/tools programmer/TAD is a huge part of turning out a good final product.
The more tricky stuff is things like these:
Copper pipe (you'd want a saturated light orange specular over a dark, less saturated brown diffuse)
"Beetle shell" effect (where the specular colour is essentially something crazily different and saturated -eg. here you'd have a bright red saturated specular with a green diffuse)
Weird shiny bauble material (saturated purple/pink specular over darker red diffuse)
Where the colour of the specular highlight actually multiplies the saturation of the base colour (but not so much the brightness value, more the saturation - this is an important distinction)
In fact in that bauble example you can clearly see that the highlight of this kind of material is more of a flat purple colour, there's no way you could get that out of a greyscale specular texture without some hefty shader tweakage, which again only works at best "per poly" (and more likely, per surface, which isn't much use for complex things like vehicles, weapons, characters etc. which all have vastly different surface properties).
I wish I wasn't under NDA so could show some examples of what a big difference coloured specular can make to a game asset. We have some stuff in-house which looks really interesting purely because the specular colours are so varied (contrasting colours side by side in the specular can really help sell material differences and make an asset "pop"), and it would lose a lot of that coolness if it was greyscale.
I totally agree with all of those you posted, but I would argue those are very, very specific cases and there are only a handful of materials with that behavior... say 5% of your total assets or less? And most of those could be solved with a specific shader with say a tint value applied to your specular (and you would use this shader only on those specific materials, not the entire texture sheet).
You're at Splashdamage right? So you're talking about using a colored specular for a stylized and 'different' look, rather than a strictly 'real' look? For the average game going for a more 'real' look, I would imagine a B&W spec, a gloss map, and another map in the red channel (heightmap for use in a parallax shader perhaps?) would be a far better use of two channels than a full color spec. Better bang for the buck too IMO.
Yep those are rare cases shown here (christmas ball, redbull can) and obviously they are not the type of asset mostly seen in todays games. But! Mop was just showing the most obvious examples to bring the point across. In fact, full color spec has a huge impact in terms of material contrast perception. (by material contrast I mean : the relative qualities of metal versus skin versus leather for instance). Note that on the examples above only one material is shown at a time. If you were to design some kind of pokeball (!) made of 50% christmas ball material, 25% scarab shine, and 25% human skin, then you would be very stuck if you dont have access to a per-pixel colored specular.
Like most subtle cases in art and color theory, it really becomes obvious with appropriate examples. I will try to post some as soon as possible.
And nope this is not related to real vs stylized look. It really is a matter of good contrast versus poor contrast inside a given object. But if real means dull and lifeless then yeah I guess
Good thread for anyone having to face these neverending discussion at the studio in the future !
Edit : okay not a before/after comparison but still, check this out:
http://www.pioroberson.com/modelpages/info_aquaboy.htm
This is a very old asset but still. It shows a typical setup for a game character, with different materials and paint jobs 'touching' each other on the textures (meaning, no way to setup the shader per-polygon). In the spec pay extra attention to the following parts :
- red pipe on the backpack and thin red shoulder wiring
> spec : deep yellow
- yellow paint job
> spec : pale cream color
- green paint job
> spec : pale green (texture not shown on the page but you can imagine)
- oily metal parts, scarab style
> spec : rainbow colors, not a hue shift (more info in the spec than in diffuse)
Notice that the scarab shine stops where the seashells start, in a way that no per-polygon shader assignement could achieve. (I wanted the stuck seashells to look as dry and dull as possible to bring up as much material contrast as possible, hence their pitch black spec)
- neutral metal parts on green and pink variants
> spec : grey (texture not shown)
- dark rubber part of the diving suit
> spec : blue
- brown part of the diving suit :
>spec : almost black
Will try to post a greyscale spec comparison on that guy if I can find the sources somewhere hehe. You will notice that this spec map is in no way a negative copy or color shifted copy of the diffuse. Each part has been carefully given its appropriate spec color, at the same time that the diffuse map was painted.
Obviously this is a fantasy character but material contrast like above can be seen on any modern weapon, packback, headphones ... and even on some christmas balls :P
Specular level and specular width/gloss should be able to define any materials you need to. I would imagine heavily tinting the specular values *might* make it look better under specific lighting conditions in say your desert level, but it would fall apart when you took it to the forest level. Nearly all materials should be reflecting the light color (with the exception of the above examples... but if you're making a beetle game, I would expect you to have a beetle shader and not globally set up colored spec maps for use on stuff that doesn't need them).
I look forward to your example. But it needs to show a marked difference over a [B&W spec, gloss, and AO] map that would be of the same cost in order to sway me .
This is very true in the realm of ... reality. Yeah, light is defined by the law of physics and optics, so in 'real' practice it is true. But! Rubber, copper, skin, painted metal have some very unique physical qualities in the real world that don't have an equivalent in the game world : microscopic roughness or smoothness, successive coatings (paint/laquer), underlying surface qualities (skin layers and blood), weird color absorbtion ... All these cannot be transposed in the game world, because it would be neverending and too costly, hence we have to find hacks. It turns out that full color spec map is a very handy one, bacause it does the job AND gives full power to the artists. No tech involved, just art theroy and (spectacular-specular) texture painting skills.
In many ways, full colored spec is very similar to artistically painted diffuse maps back in the day. Sure, in real world theory the parts looking 'up' are not painted brighter (even less with a rich color theory shift!!! This one must have given programmers a headache in that time lol). But painting in rich directional light color information proved out to be a powerful game hack, all taken care of by artists, at no cost. One could argue that more polygons could prevent that need, but we all know that it never was true (examples are plenty : ps2 games, WoW, jap game art ...) since gouraud shading is so ugly it destroys shapes anyways.
Hope this helps!
I understand where you're coming from, but what happens when I want to move that asset from your desert level with a strong key, warm fill/bounce to a forest level with a very soft or nonexistant key, green/brown fill. Or how about to my snow level?
Would you expect it to look good in each case, or require a new map to tune each time? As there is no 'right' color for your surfaces (since your metal, rubber etc isn't one of the select few materials that has a specific spec color) I would expect you to need to generate a new map each time I gave you lighting conditions. Sounds like you need bluray and a whole hell of a lot of time to generate one set of spec maps for each prop, for each environment lighting style.
another example :
http://www.pioroberson.com/modelpages/info_fzerochallenge.htm
It pisses me of too, that artists somehow have to 'prove' things like that whereas they should just be trusted for their expertise. But I can assure you that years of senior art experience would never ever win that argument against code or so-called optimisation, without dumbed down examples on actual game assets. With big arrows pointing at suff. And bullet points.
Also showing it on video helps a ton.
I know it's stupid but its true....
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html
"The image on the right made neither of these corrections and exhibits several problems. The skin tone from the color photographs is changed because the lighting was performed in a nonlinear space, and as the light brightened and darkened the color values, the colors were inadvertently changed. (The red levels of the skin tones are higher than the green and blue levels and thus receive a different boost when brightened or darkened by light and shadow.) The white specular light, when added to the diffuse lighting, becomes yellow."
Also when you talk of a traditional artists' understanding of specular, I would raise a big flag of caution. White and black on a specular map isn't just a linear add on your diffuse. A CG artists udnerstanding of what specular is must be different than a traditional artist because the CG artist deals with components that make a whole, while the traditional deals only with the 'whole'.
pior: That's a nice piece, I like it. What material is the outer skin, and why did you choose a green specular value for it to emphasize that material? (It's not made of beetle is it? )
Specularity is an approximation for a perfectly glossy reflection. Light shining on an object is absorbed (diffuse) or bounced (specularity OR reflection). Now really this is more of a diffuse reflection versus direct reflection, but it serves for the current discussion.
A surface with specularity AND reflection doesn't make a whole lot of sense in the physical method of thought, but it does in our domain purely because we don't have enough control over the reflection (usually).
As we've covered, there are a FEW surfaces which don't bounce back the same color that was incident, but they are very definitely the exception, not the rule.
Most tech/art tool guys I met were former animators, not texture artists. So far and over 4+ pro years I met only one who was able to paint good textures ... hence the "prove that!" part.
I think sooner or later someone here will have to do a gameart asset of a terra cotta blob with a metal ring to prove the point :P
more examples, metal1 versus metal2 versus latex versus skin
http://www.pioroberson.com/images/3d_pior_general_collage.jpg
Nope, environment artist. I just like to read so I can hold my own in talks with the rendering guys and the TAD. I generally land in the more bridging-the-gap position. And pior is right, my oldschool hand-painted diffuse maps are pretty shitty. Thankfully I don't have to do them .
The thing is materials cannot be so expensive that the represent each material with 100% accuracy or even CLOSE to it so we need tools like colored specular to approximate the look artistically. Yeah I cant do SSS in realtime, but if I take my diffuse calculation and push the penumbra back a little bit and tint the transition a little red well it looks a little bit more like skin. It's not physically accurate but it's an artistic approximation that works.
I'm wondering if those of you who are advocating for colored specular have primarily worked in smaller studios? It seems like a sort of swiss army knife solution to many issues. It solves none of them perfectly, but it does a decent job and requires no excess rendering SE time.
I would gravitate toward a situation where you have a B&W specular system that covers most materials in the world, then visit special cases in your game that need more attention, such as skin if you're a character heavy game, car paint if you're a racer, beetles if you're a beetle game, etc. Since you have kept the cost down on the assets that *don't* need a colored specular, you are free to spend a bit more on your 'hero' items down the line. But I'm used to 120+ person teams, where you have identified these items and can have an artist and rendering SE sit down to tackle them one at a time.
I also haven't seen a colored spec map example so mind-blowing that I would want to spend the memory on that before I spent it on a gloss map.
This kinda goes back to the original problem of this thread, if artists are craving a tool or a feature as minuscule as colored specular they should probably get it because it's so ridiculously easy to implement and better art will be the result of it.
I think I've learned something, but if anything I've only come to believe my initial assertions more strongly than I did at the start after seeing the arguments against. Thanks for the discussion and I think I'll leave it alone now, before it turns into a flamewar.
My experience with programmers, although somewhat limited compared to many industry vets, has always been a positive one. We had a relationship of mutual respect and collaboration, with both sides being interested in the other's voodoo, and i've on several occations done spare-time experiments to test out stuff with a programmer.
After working for an iphone title i had nightmares of "LESS DRAWCALLS, I DON'T CARE ABOUT MEMORY!".. putting everything on huge texture sheets provided a headache when it came to tiling textures. But thats not really relevant to the discussion, is it now?
Why so many example pictures? This is not a technical discussion but a simple artistically.
you have more artistically freedom with colored specs. Not more not less.
If a programmer wants mono spec than he shrinks down the _possible_ visual quality.
And thats a question that a/the responsible person has to decide.
:poly142:
Oddly I agree with Peris and Glib that most of the photos Per posted originally actually look to me like they'd be fine with a greyscale specular But that's beside the point.
As has been touched on a few times, we're not actually talking about the "realistic" method, we're talking about artistic freedom - the freedom of an artist to make something look cool.
Using entirely grayscale specular for assets as complex as a character, weapon or vehicle is going to end up with it looking overall plasticky and boring. While what Glib says is true, that you could use a single greyscale specular texture and then dividing your surface up into multiple shaders with different tint values, this is not only a really slow and clunky solution (in both workflow and run-time performance, all in order to save a tiny amount of texture memory), but it will also lose all the subtleties of the surfaces (eg. flecks of dark red rust highlight on a bright blue/green metal shine) - that's the sort of thing you can't recreate using any amount of "solid colour" tinting over a greyscale map.
And this is the sort of thing that can make the difference between a "decent" textured asset and an "awesome" textured asset. And using coloured specular means the artist has total freedom and control, rather than being constrained by the shader limitations.
Again, I'm using these specific weapon/character/vehicle examples because in many environment art "generic tiling texture" cases you actually don't need coloured spec if you can tint it in the shader since those surfaces tend to be fairly uniform. Obviously it still helps for providing fine detail, basically any surface which has two or more contrasting materials (peeling paint over metal, or metal rivets in wood, or rust on top of metal, the list can go on and on) will immensely benefit from coloured specular.
It's the material contrasts which the artist controls in the specular colour that make all the difference.
Edit: While I was typing that up, rollin nailed it in a single sentence
so I see it as sacrifices, if I want something extra, I would have to sacrifice some space for it.