Jump to content

shadmar

Members
  • Posts

    3,618
  • Joined

  • Last visited

Blog Entries posted by shadmar

  1. shadmar
    The most used wokflow is metal/roughness (I think)
    metalness gives the environment reflection amount.
    roughness does two things
    spreads the light so environment reflection would be more blurred
    spreads the light so specular reflection from light sources would be spread/blurred



    .
    Like this:

     
    I'm not doing PBR discussion on how to correctly compute energy conservation and all that. It's not really important. But looking at some of the methods anyway on how metal and roughness workflow works.
    The shader I have used is not accurate PBR shader, but the results are almost similar from what I can tell
     
    Usage in Leadwerks
     
    1. Download and install the substance addon from the workshop. [ http://www.leadwerks.com/werkspace/page/viewitem?fileid=658772226 ]
    WARNING, this will overwrite lighting shaders for directional, point and spotlight in order to read GLOSS
    However all your old materials not using substances will look almost the same so you don't need to do an all substance game if you don't want to, you can mix.
     
    2. Export materials from tools like Substance Designer (they will fit right in) using the metalness/roughness workflow or just create your own from scratch, metals are pretty easy to do using just Leadwerks.
     
    Exports from Substance Designer should be set up like this with 7 textures:
     
    Texture Tab

     
    slot 0 (Diffuse) - diffuse/color/albedo map
    slot 1 (Normal) - normal map
    slot 2 (Specular) - roughness map
    slot 3 (Displace) - height map (this texture isn't used, but will be here for future use)
    slot 4 (Texture 4) - metal map, black is non metal, white is full metal
    slot 5 (Texture 5) - AO map, this is multiplied by diffuse/color, so use a white if you don't have an AO one.
    slot 6 (Texture 6) - ***Environment map, used for reflection and ambient, this map must have (important settings)
    Compression : uncompressed
    FilterMode : smooth
    Generate mipmaps, yes
    Clamp : X,Y,Z
    ps! Leadwerks default skybox doesn't contain any mipmps and source is not provided and therfore is is useless for usage with substances

    .
    ***In game environment mapping (for slot 6)
    Not so smooth but a possible way:
    http://www.leadwerks.com/werkspace/topic/11224-skybox-rendering/#entry82736
     
     
    Properties Tab
     
    Usually Leadwerks created materials have Specular values set to 128,128,128,128
    But we're using these for tuning/offsetting substances, so a good starting point is 255 across the board.

     
    A = modifier for ambient envmap lighting (multipled by texture value)
    R = modifier for the roughness value after specular is read from texture and modified by S
    S = modfier for the specular term (multipled by texture value)
    M = modfier for metalness (multipled by texture value)
     
    Usually you do not need to tune these since metal, roughness and env are all read from textures, but they are there if you want to fine tune.
     
    Shaders Tab
    Two choices,
    substance_static.shader for most models
    substance_anim.shader for bone animated models.


     
    Don't have Substance Designer? (neither do I)
     
    Ok, very well but I don't have Substance Designer and I need to make gold and iron. That is quite easy:
     
    Creating metals from scratch using just Leadwerks, lets make gold:
    Gold RGB color (google the values):
    Normalized = 1.000,0.766,0.336 or RGB = 255,195,86
     
    1. Create a new material
    2. Assign basic textures an all 7 slots.
    0 - white.tex
    1 - any normal texture
    2 - black.tex
    3 - -
    4 - white.tex
    5 - white.tex
    6 - env.tex

    3. Adjust diffuse color to 255,195,86,255 (gold color) and Specular to 255,220,255,255 (applying abit roughness)
    4. Assign the substance_static.shader:
     

     
    For Iron, use same setup in textures, but these values for diffuse/specular:
     

  2. shadmar
    I thought of trying out Bryce7 for creating terrains in LE3 since we don't get the chunked-lod terrain we have in LE2 to go at first.
     
    So here is my initial tests using a custom splat shader for RGB only. Bryce has an very advanced material generator so I think RGBA (4) or 2xRGBA (8) is within reach too (haven't tested yet)
     
    Anyway here is my first try exported an 32k vertex mesh (fbx) from Bryce7 (it's not LE terrain, just a mesh)
     
    Bryce7 is still free over at DAZ. (so go grab it)
     
    1. Creating an heightmap using the advanced generators in Bryce
     

     
    2. Setting up slope material to map RGB
     

     
    3. Checking fast render in Bryce, colors seem mapped ok
     

     
    4. Exported fbx and converted to gmf, applied my splat shader matching one texture per color repeated in the shader.
     
    5. Walking around on the terrain in LE
     

     
    5. Closeup of the ground (no normalmapping applied here yet)
     

     

  3. shadmar
    My first blog entry yaay
    Testing some shaders I did for an another direct3d engine a while back.
     
    Rim lights or reflection are kind of cool because in real life when you look at a shiny car the reflections gets more intense the lower angle of attack you look at the surface.
     
    So this is an attamept to mimic this, but you can also use it to background light your meshes.
     
    To control amount of rim light I use some fresnel settings like this in the shader:
     

    float Fresnel_Start = -0.1; //rim start lowest angle float Fresnel_End = 0.70; //rim end widest angle float Fresnel_Multiplier = 2.0; vec4 Fresnel_Color = vec4(1,1,1,1); float Fresnel_Cubemix = 0.15;
     
    I didn't have a suitable sportscar to demonstrate it properly but a statue and a sphere will do just fine.
     
    Rim Reflections using cubemap
     

     
     
    Red rim-light (no reflections)
     

     
    Pure rim light no ambient or other light sources
     

×
×
  • Create New...