Thanks a lot for this link! Very interesting! I guess we control size and intensity separately because the calculation isn't very accurate in some games and this is the only way to tweak it out, would be my thought...
But you need to abstract away from microfacets in CG, so only having intensity and deriving gloss from that is a really limited and strange way of working.
I spotted a cool trick in Doom3. Doom3 has a fixed gloss falloff which was fairly wide. But they managed to have sharp speculars on fleshy bits by simply having very tight highlights painted into the specular maps. That's totally unrealistic, but it looked perfectly convincing. They cheated the trick even further in Rage by prebaking static specular highlights into stuff (!!) and it didn't look wrong at all. They also did the same thing with really wide specular reflections in some spots. There's something interesting at work... It seems if you make speculars really sharp or really wide you can get away with a lot.
That reminds me of an old not well known trick by 2D animators called the 'scribble cell'; you scribble some random lines and use those as a mask for a second drawing with white dots, which pan across the scene. Through the gliding in and out of existance due to the scribble mask it looks like tight specular reflections on water.
About Doom 3: I checked out the ID DevNet but only found textures from Quake 4. There i couldn't see the white spots in the specular (only some in the diffuse) but maybe that because they didn't do it like you said in Q4 or the resolution of the texture in the article i too low. I have to checkout the D3 textures...sounds interesting! Here's the link to the dev net (textures in the lower part of the article): http://www.iddevnet.com/quake4/ArtReference_CreatingModels
Wow, this cell trick is awesome! I think this is worth a small article here on the blog...i really like this trick, even maybe i'm the only person which didn't know it :D awesome! It look so great...to be honest, exactly this is something i thought about sometimes in the past...how to get these nice animated sparkles into water. :)
We did something similar to this for specular in The Chronicles of Spellborn. I'm not in touch with the technical artist/programmer anymore or I'd ask him how it was done, but basically: our specular texture masked a small scribbly texture that moved somehow (with the camera vector?) so you got some quite convincing motion within the specular highlights. We'd really only have thin highlights painted into the specular texture, never large areas. It worked really well on dark metals like gold!
Actually you don't need to separate specular intensity and size of the specular spot. This is related values because the energy conservation law.
ReplyDeleteFor example see slides 35 and 37
http://renderwonk.com/publications/s2010-shading-course/snow/sigg2010_physhadcourse_ILM_slides.compressed.pdf
So programmers can write shader and use single texture for specular intensity and specular spot size, this is called normalized specular.
Thanks a lot for this link! Very interesting! I guess we control size and intensity separately because the calculation isn't very accurate in some games and this is the only way to tweak it out, would be my thought...
DeleteBut you need to abstract away from microfacets in CG, so only having intensity and deriving gloss from that is a really limited and strange way of working.
ReplyDeleteSame method as in terminator salvation also used in many modern games.
DeleteHere link for some gamedev papers
http://renderwonk.com/publications/s2010-shading-course/hoffman/s2010_physically_based_shading_hoffman_b_notes.pdf
http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/
That's certainly the way one should go about it, but I fail to see how this removes the need for a gloss map?
DeleteReally interesting links! Thank you for sharing! As more a i read about it, i wonder why this isn't standard implementation for the specular :D
DeleteI spotted a cool trick in Doom3. Doom3 has a fixed gloss falloff which was fairly wide. But they managed to have sharp speculars on fleshy bits by simply having very tight highlights painted into the specular maps. That's totally unrealistic, but it looked perfectly convincing. They cheated the trick even further in Rage by prebaking static specular highlights into stuff (!!) and it didn't look wrong at all. They also did the same thing with really wide specular reflections in some spots. There's something interesting at work... It seems if you make speculars really sharp or really wide you can get away with a lot.
ReplyDeleteThat reminds me of an old not well known trick by 2D animators called the 'scribble cell'; you scribble some random lines and use those as a mask for a second drawing with white dots, which pan across the scene. Through the gliding in and out of existance due to the scribble mask it looks like tight specular reflections on water.
About Doom 3: I checked out the ID DevNet but only found textures from Quake 4. There i couldn't see the white spots in the specular (only some in the diffuse) but maybe that because they didn't do it like you said in Q4 or the resolution of the texture in the article i too low. I have to checkout the D3 textures...sounds interesting! Here's the link to the dev net (textures in the lower part of the article):
Deletehttp://www.iddevnet.com/quake4/ArtReference_CreatingModels
Here's an explanation of the scribble cell thing, seems i got it backwards, it's the dots that are static.
ReplyDeletehttp://www.newgrounds.com/bbs/topic/550605
Wow, this cell trick is awesome! I think this is worth a small article here on the blog...i really like this trick, even maybe i'm the only person which didn't know it :D awesome! It look so great...to be honest, exactly this is something i thought about sometimes in the past...how to get these nice animated sparkles into water. :)
DeleteWe did something similar to this for specular in The Chronicles of Spellborn. I'm not in touch with the technical artist/programmer anymore or I'd ask him how it was done, but basically: our specular texture masked a small scribbly texture that moved somehow (with the camera vector?) so you got some quite convincing motion within the specular highlights. We'd really only have thin highlights painted into the specular texture, never large areas.
DeleteIt worked really well on dark metals like gold!
Sad that the game isn't playable anymore :,( Would love to check it out in the game...
Delete