! Thank you very much man. Yeah, it sure had been. But most of it was figuring out what to do tbh
Sorry I haven't been on skype much - been crunching to finish this up before some family stuff.
Je suis desole, Jacque
;) I didn't mean to, really. I'm glad you like it though
I appreciate the kind words, dtschultz
Huge thanks, underfox
Thank you very much, Add3r
. I appreciate it, thought I think you ought to change that folders name "People Who's Ass I'm going To Kick Someday". Seriously. I'm waiting for you to. I know you can, so no slacking off.
, man, that was like on of the most awesome things to say, ever. Much appreciated, buddy. I'm glad you liked this stuff and hopefully those "making ofs" will prove useful to you. Oh and I'm stoked you loved those "frozen" moments - I hoped they would be a nice touch
, thanks man! It's very nice of you to say that.
I just wanted to extend a most heartfelt thank you for the time you took to analyze this stuff so deeply, for the feedback and for the questions. It makes me very happy to see someone considering this technology on a practical level.
I'll try to fiddle with screenshots later on and see what I can do
Now your crit is extremely valid. On some surfaces this technology could and should be pushed a great deal(and those Idols are the most obvious examples), the contrast could've been less stark too. I believe that as with everything with this tech there's a learning curve. It's a pretty new approach and it would take sometime to see people really push it to it's true potential. I merely scratched the surface and I've a pretty staggering argument to back it up. The gradient maps I talked about in the paper, I hardly used them here. The majority of details used are plain old heightmaps, without any touchups at all. And let me tell you that heightmaps are far from ideal input for gradient mapping. Now I had to do this to save myself some time, and since a lot of people let it slide, it means that studios could do that too from time to time. But the silver lining here is that all the purposeful artistic editing could bring this Levels Higher. You have to edit your heightmaps in a way that brings out all the local shape relations and reinforces texture detail. You'll have to do this a couple of times to realize what particular consequences your particular edits trigger. It's an unusual thoughtprocess for texture artists and will definitely require some cognitive effort at first. And now I personally feel that with conscious edits people could bring out a lot more then we imagine right now. There are always people who come up with exciting and unexpected ways to use things, and they'll raise the bar even higher. Even compound materials of metal and rock/concrete, as you awesome guys at Epic like to do, are pretty damn possible with this even from a single gradient texture.
Just in case, what do you mean by "allowing the normals to breathe a bit more"?
Now on to your great questions!
1)So far I think that this technique could and should replace 1/2 to 3/4 of the diffuse textures we have in games. Watching through all the E3 videos I was looking at textures and thinking that so many of them could be done "procedurally" with no real loss in quality visible to the final player.
So I would consider it reasonable to use diffuse maps only where gradient maps will prove insufficient.
But if I ever finally get a job someday it probably won't be up to me decide what tech to use.
Now I know I could be wrong and that's actually what I'm trying to do here, to find all the smart people to prove me wrong and explain me why this idea is unreasonable in real-life production. But until that happens you can be sure that I'll bug every single person I know or will work with to try to implement this or find out why we couldn't do this. In fact I would be endlessly indebted to you man, if you could pass this idea on to someone at Epic who might know about this thing more then we do, so he or she could help us straighten things out. I would be endlessly thankful for that.
2.)Defintely redundancies and inefficiencies on my side. But also some on the side of UDK, like why do parameters increase the instruction count? I thought the shader should just bake at level start and not care whether you hardcoded the numbers or input them through a material instance. Also right now you can't input vector parameters(4 channels) into a "custom" node - it only sends 3 channels. To circumvent that you have to append vector parameters to their alphas wasting another bunch of instructions.
I've made a bare bones comparison to give us a more accurate idea of what's going on:
2 point gradient mapping costs almost nothing. So using it at places as such:
Should be a no brainer considering we save a whole diffuse and opacity map for basically no cost at all.
Generally with 4 point gradient mapping replacing a diffuse map will cost us 14 instructions. 16 if we want to add diffuse texture pattern on top, but we could try to incorporate it into the gradient map.
Now would cutting 1/2 of your diffuse texture budget be worth adding extra 14 instructions to 1/2 of your materials?
Seems like a decent trade off to me but I really don't know enough to tell. This could depend on sooo many things.
Now if engine creators would implement gradient mapping themselves it would get even more optimized. And if they allow to compress normal maps with gradient maps into a single RGB texture, the benefits would be just too obvious. I think One texture per material is more then enough for artists to put in. Let artists define the variety, the essence, the seed of the surface and lets make our tech do some work.
I was really hoping that the good people of the internet could help me get to the bottom of this. And even though this environment hasn't been getting much practical interest in it's technology I still have hope.
I'll keep bugging people anyway until they tell my why this is wrong
So yeah, thanks you very-very much once again Paul, you're awesome. And I'm really sorry this turned out into a wall of text.)
p.s. There's a chance that UDK has trouble determining instruction counts for custom nodes, so we might know even less.