Home Technical Talk

what would be the best way to get this effect?

ngon master
Offline / Send Message
almighty_gir ngon master
carbon_kevlar3.jpg
passwordjdm_carbon_kevlar_engine_upgrade_evo_x_4.jpg

it's a kevlar underlay, coated with carbon fibre. getting the underlay is fairly easy... you could zbrush the pattern onto whatever it is you need it on, and use the normalmaps to create the affect with a decent specular to go with it.

the problem is though, how would i create the effect of having the kevlar underlay, AND the transparrent/translucent overlay which is completely smooth with a higher gloss value?

Replies

  • fearian
    Options
    Offline / Send Message
    fearian greentooth
    Setting up a fresnel reflection springs to mind... ah, except that would still use normals from the underlay. :/

    It would definitely require some shader tinkering. what do you plan on rendering with?
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    unreal, FOR SHIZZLE!
  • fearian
    Options
    Offline / Send Message
    fearian greentooth
    Haha of course! I'm sure it's doable. maybe with two sets of normal maps. But I'm not 1337 enough with the material editor to even get started on how! :)
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    you could use a different normalmap for the diffuse (underlay) and one without the detail for the specular/reflection (coating)
  • maze
    Options
    Offline / Send Message
    I remember some time ago I tried doing something like that:

    (2.jpg

    not sure if it went the way I wanted but I basically created a pattern in photoshop, then applied it to my metal material with overlay and reducing opactity to make it blend slightly, then use subtle color reflections on the spec. hope this helps

    Edit: to get that pattern, you can play with the pattern size/distribution, the one in the example is a lot smaller and have less presence.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    the pattern itself isn't so much of a problem. but if i were to paint over your mesh just to give an example:
    kevlar.jpg

    having the reflections and details of the kevlar, but at the same time having a glossy overlay that's independant of that detail.
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    i could quote myself, but i won't - this would be the way to go if you want it to look somewhat correctly, you'd have to build you own custum shading network and use different normalmaps for the coating (specular shading or reflection) and for the kevlar (diffuse shading). its somewhat memory intensive though. so maybe doing the kevlar diffuse with a smaller tileable detail texture would be a better solution to keep the memory footprint small.
  • PhattyEwok
    Options
    Offline / Send Message
    PhattyEwok polycounter lvl 9
    You could fake the bumpy Kevlar in the diffuse and then use a smooth shiny norm/spec Probly Wouldn't look too hot though....
  • FicWill
    Options
    Offline / Send Message
    FicWill polycounter lvl 17
    I think folks might be over-thinking this. Diffuse + Normal + Specular + Cubemap. Done!
  • r_fletch_r
    Options
    Offline / Send Message
    r_fletch_r polycounter lvl 9
    A highly glossy cubemap reflection which doesnt use your normal map should do it
  • rollin
    Options
    Offline / Send Message
    rollin polycounter
    additive instead of multiplicative specular :poly142:
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    FicWill wrote: »
    I think folks might be over-thinking this. Diffuse + Normal + Specular + Cubemap. Done!

    that doesn't work, the normal affects the cubemap.
  • fearian
    Options
    Offline / Send Message
    fearian greentooth
    I think what he meant was, have a snooth normal map and just fake the pattern's depth. How close will the camera get to this?
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Thats the trick - even tho it looks like it, you really don't need a normalmap at all for the small tileable pattern. Just diffuse and spec is enough. Then, the normals on top for the big smooth glossy shape.
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    that doesn't work, the normal affects the cubemap.

    not if you build your own shader in unreal, then you can plug in a different normalmap or try if you can get away with the normals of your mesh, i guess if its dense enough it could work.
    But its mostly just a matter of what you think you can do, my solution would usually not end up in a game for beeing pretty heavy on the performance, extra shader for this specific material + extra maps etc. must be some sort of Hero Asset to deserve this treatment.
    I guess you could fake it well enough, but it really depends on how close you can get and how big the asset is.
  • EarthQuake
    Options
    Offline / Send Message
    I dont see why you would want additional normal map detail there, its a painted on pattern, with a glossy coating. This is very simple to do with diff+spec+gloss. There isn't any geometric detail in the pattern, just diffuse detail.

    The important thing here is the high contrast reflection, which is achieved by a high gloss value, and high spec value. Using a cubemap/IBL will help, but it can be done with a simple point light setup as well.

    Even if this isn't "accurate" to what is really going on there, analyzing the ref posted, this is the end result.
  • maze
    Options
    Offline / Send Message
    I agree with earthquake.
  • Ghostscape
    Options
    Offline / Send Message
    Ghostscape polycounter lvl 13
    I've done this with a painted diffuse/spec of the weave pattern, and then a cube map on top. The normals did not have the weave pattern in them, just the normal shapes. If I'm going to eye-fuck it as an FPS weapon I would want a custom shader, but if each ribbon of the weave isn't going to take up more than 1-2 pixels in screenspace I think you're not going to get much out of a custom shader.
  • Snader
    Options
    Offline / Send Message
    Snader polycounter lvl 15
    If you've got enough geometry to split materials you could go for a large texture for the normal map, and small tiling textures for the diffuse and spec.
  • Brendan
    Options
    Offline / Send Message
    Brendan polycounter lvl 8
    If it's just the raw carbon weave, then you can do it easily, with the carbon's normals, low (really low, like a matte finish) spec and a diffuse.

    For the coated carbon, the clearcoat has to be it's own geometry. Sorry, but for the good results you're going to have to do the carbon normally, then another mesh .1cm above that with a very slight yellowish tinge, 98% transparent, and higher spec, and that's what you do the reflections off.
  • mbullister
    Options
    Offline / Send Message
    mbullister polycounter lvl 18
    This will do what you want:

    customLighting.jpg


    By taking the dot product of your light vector and your second normal, you can create a normal which only affects the channels you designate.

    Make sure you need to do this, though. It's an extra texture you have to load, an extra texture sampler, and several extra instructions. Faking it should be good enough in most situations.

    Edit:

    Just for fun, I'm going to try to whip up a more accurate material for this-- something really expensive and impractical. I'll post what I come up with.
  • popngear
    Options
    Offline / Send Message
    I've done this before but to save memory and the extra texture call, the cubemap UVs were driven by the vertex normal so the reflection itself was smooth (though of course your geometry would have to be dense enough to support this). Either way, it's pretty much what mbullister suggested; You need the reflection to have a different normal (the smooth one) while the surface beneath uses the subtle carbon fibre weave detail for both diffuse shading and specular properties.
  • fearian
    Options
    Offline / Send Message
    fearian greentooth
    mbullister wrote: »
    This will do what you want:

    customLighting.jpg


    By taking the dot product of your light vector and your second normal, you can create a normal which only affects the channels you designate.

    Make sure you need to do this, though. It's an extra texture you have to load, an extra texture sampler, and several extra instructions. Faking it should be good enough in most situations.

    Edit:

    Just for fun, I'm going to try to whip up a more accurate material for this-- something really expensive and impractical. I'll post what I come up with.

    Hells yeah! I know alot of people say it's not neccessary for this situation, but it's always good to see how it would be done anyway - just another shader trick to add to the arsenal!

    Might give this ago later!
  • mbullister
    Options
    Offline / Send Message
    mbullister polycounter lvl 18
    Here's a quick and dirty solution-- it's based on the first thing I saw while Googling for reference, but it should be easy to get the kinds of patterns Gir wants.

    carbonShotgun.jpg

    It's got separate anisotropic and phong specularity for the carbon and the clearcoat-- you can plug in your own diffuse, spec and normal, which drive a reflection cube and aren't affected by the normal of the carbon, which can be scaled to whatever you want.

    It's also ~120 instructions, which is a bunch.

    CarbonMaterial.jpg

    Fun for showoff renders, maybe less good for actual games.
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    well, i wanted to use it for my BRAWL! entry :D

    so thanks very much man!
  • Mark Dygert
    Options
    Offline / Send Message
    3dsmax 2012 has an awesome carbon fiber substance material that you can bake. Outside of that I really don't see much of a need for complex shaders or even a normal map for the pattern. Often when you coat something it looses its specular properties.

    If I was to start dreaming up shaders, I would start looking into adding camera angle falloff to the diffuse to get this effect:
    airbox-bmw-e30-m3-carbon-fiber.jpg

    The falloff trick gets used all the time to rim light characters, most prominently in TF2. I used the falloff option in shaderFX on my DW entry 2 years ago. It's the green rim light glow, you basically set it so that its based off of the camera/player view angle and define how tight or wide the effect is with a gradient ramp. A few other shaders have options for it too, it can be done in 3dsmax, Maya and in Unreal.
  • maze
    Options
    Offline / Send Message
    hey good tip there Mark, havent try 2012 yet! thanks.
  • Mark Dygert
    Options
    Offline / Send Message
    EXACTLY what I was talking about! Awesome example Per. The effect that it delivers reads a lot better and more like the actual material, than trying to layer normal maps.
  • commander_keen
    Options
    Offline / Send Message
    commander_keen polycounter lvl 18
    I think mbullister's example shows that a multilayered surface does look much better and more realistic than just diffuse with a flat normal. Sure its more expensive, but thats what fallbacks are for. Having the extra specular layer really helps the perception of the material.

    On a side note, with unreal moving to deferred shading doesnt that mean that they have to remove all material nodes related to light properties?
Sign In or Register to comment.