Lesson 1 - material params: specular light.

New Renderer » Lesson 1 - material params: specular light.

  • Light reflections on "Slug"
    Light reflections on "Slug"

Single pixel  objects have more params, than just color. Some of them control reflection of lights. In pure FP, you have very limited control over it. You can select between 4 material types: Metal, Wood, Plastic and Rubber. These 4 material types differ only in one param: "shininess". 

Here is list of params, that can be set:

  • shininess - controls size of reflection on object surface
  • color of reflection - in FP, it is always color of light source. This means that all objects have white color. In my "BAM-demo" table, the second "slug" from left has "green" reflection. By changing this color, you not only change color, but also make reflection brighter or darker (less visible).

 Now you have control over the params per object.


How to set material params for BAM New Renderer.

  1. BAM has to identify object. Bad news is that BAM can only recognize texture name. So you can't tell BAM: set params for object Slug-1, but you can tell BAM: set params for object with texture "Slug-diffuse". In FP when you load texture, you give it a name and select this name on object. Remember that name.
  2. BAM can read script for table. In script you can put comments. The comments are not important for FP, but  here you can pass additional information for BAM. Every line interpreted by BAM starts with: '[BAM] ..... (see script in BAM-demo table). BAM search form syntax: !paramName = value.  All param names start with exclamation mark. So all important lines look like this: '[BAM]   !paramName = value
  3. To set params, you have to point to texture with command: !texture = textureName. This will do 2 things: all params set after this line will change params for this texture and ...
  4. ... it will add this texture to list in BAM where you can change params "on the fly". In BAM menu,  you can go to [Rendering Engine] -> [DEV options], select texture name. Experiment,  manipulate and test what happens when you change values. Whatever you change, will not be stored. All names in that menu are same as param names that you can use in script.

List of params for Specular Lighting:

  • !shininess - smaller values will increase "reflection" spot
  • !specularColorRed, !specularColorGreen, !specularColorBlue - RGB values of material "specular" param. Normaly the values are between 0.0 and 1.0. It is same as 0 - 255 on  bitmap. But you can set values higher than 1.0 and it will work as you expect: bigger value -> more of that color.
  • !specularLevel - is multiplier for values !specularColorRed/Green/Blue. It is easier to change one value than 3 when you only want change of brighness. 
  • !specularBalance - this value is result of error in previous BAM releases. In first New Renderer release as specular color, BAM uses diffuse color (color of texture). When I tried to fix it, many users didn't like increase of light reflections. So this value is used to control it. We have 2 colors: diffuse color (from texture) and specular color. !specularBalance = 0.0 means: "use diffuse color", = 1.0 means: "use specular color". You can also "blend"  two colors.

What you can do with that: You can for example set !shininess low (for example = 1.0) and set !specularLevel also low (=0.1) this makes material look more like skin than shiny plastic. Go ahead and experiment.


Some of the params are connected to global values. !specularBalance is same thing as "Specular Color" in [Lighting model], but it controls the param only for one selected texture. Same thing  with !specularLevel and "Speclular Level".