Jump to content


Photo

Custom frob idea

frob shader

3 replies to this topic

#1 Judith

Judith

    Advanced Member

  • Member
  • PipPipPip
  • 516 posts

Posted 16 July 2017 - 06:07 AM

*
POPULAR

Lately, I was fiddling with TDM frob shader, because often I find it too subtle for my taste. Don’t get me wrong, it works as intended, but it looks best in complete darkness. In more lit rooms, e.g. while putting out candles, it’s a bit hard to see whether you’re able to interact with an object or not. Modern games use Fresnel-based shader to achieve this, so an object gets a bright outline. This is very in-your-face and something more like the “atomic-blue frob” from Thief Deadly Shadows we all hated back in the day. That said, I think you can achieve some middle ground here.

 

I couldn’t get the proper fresnel program to work, since I’m not that good at shaders, but I don’t think I will need it. Instead, I created a “fake Fresnel” cubemap, which looks like this:

 

fres_back.png

 

You can easily make it in Gimp. It’s a 256 texture with radial gradient from black to white, and offset of 50, so the color transition starts further away from the center. If you just want an outline, use pure black as starting color. I wanted both some highlight and an outline, so I used RGB 32. Now you have to save it 6 times with _back, _down, _forward etc., so it gets recognized as a cubemap.

Then you have to go to your material definition and put this instead of standard frob code:

 // This is the code required for frob highlighting this texture
{
  if ( parm11 > 0 )
  maskcolor
  map makealpha (_white)
  alpha .2  // modify it as you wish
}
{
        if ( parm11 > 0 )
  blend gl_dst_alpha, gl_one
  maskalpha
  cameraCubeMap cubemap/path/here
  texgen  reflect
}

 

Cool thing is, you can tweak the cubemap intensity with alpha parameter, so you’ll get more consistent look when you need different values for e.g. wooden and glass objects (the latter typically require more visible frob). This effect also looks a bit different on .ase models and on brushes / func_statics made in DR, so you can tweak it to look the same across all materials and types of surfaces.

 

Small comparison:

 

Clipboard01.png


  • Bikerdude, HMart, jaxa and 2 others like this

#2 Bikerdude

Bikerdude

    Mod hero

  • Member
  • PipPipPipPipPip
  • 18453 posts

Posted 16 July 2017 - 08:28 AM

Ohh I see where your going, its like the frob we have seen in a lot of other games.

 

Also what the heck is that thing...?



#3 Judith

Judith

    Advanced Member

  • Member
  • PipPipPip
  • 516 posts

Posted 16 July 2017 - 09:40 AM

Yup, this is more like Bioshock / Dishonored kind of frob, only not that super shiny. I don't have any interactive objects in my FM yet, so I use what I can ;) This is my electric lamp model. It's a good example of an object with high specularity. Notice that standard TDM frob highlights mostly the shiny parts, while contrast remains similar. Cubemap frob looks more like a layer put on top of the object, that's why it's more distinct.


  • Bikerdude likes this

#4 HMart

HMart

    Advanced Member

  • Member
  • PipPipPip
  • 521 posts

Posted 16 July 2017 - 08:18 PM

Nice done, not exaggerated like i like it, btw while editing the fhDoom engine, i found idsoftware played with item highlight for Doom 3, but disabled it for the final game, i was able to enable it again and it was just the case of changing a bool from false to true, i also found that the material shader for it is still in the game and it also uses a cubemap.

itemHighlightShell
{
   nonSolid
	{
     	    blend add
	    cubeMap	env/sheen
            texgen	reflect
	    rgb		parm4
	}
} 

Unfortunately, is a pulse based highlight (on and off) system so it looks to obvious and in your face, but was cool to find how they did it.  


Edited by HMart, 16 July 2017 - 08:19 PM.

  • Judith likes this



Reply to this topic



  



Also tagged with one or more of these keywords: frob, shader

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users