Difference between revisions of "Lighting Profiles.tbl"

From FreeSpace Wiki
Jump to: navigation, search
($PPC Shoulder Angle:)
m (#END DEFAULT PROFILE)
 
(17 intermediate revisions by 4 users not shown)
Line 23: Line 23:
 
**Reinhard Jodie: Another version of Reinhard that makes bright colors less saturated than Reinhard Extended
 
**Reinhard Jodie: Another version of Reinhard that makes bright colors less saturated than Reinhard Extended
 
**PPC: Piecewise power curve, a configurable curve meant to give artists flexible and simple control over the look. Applies to pixel luminance. Configuration options are also available in this table. See [http://filmicworlds.com/blog/filmic-tonemapping-with-piecewise-power-curves/] for detailed breakdown of what this is doing.
 
**PPC: Piecewise power curve, a configurable curve meant to give artists flexible and simple control over the look. Applies to pixel luminance. Configuration options are also available in this table. See [http://filmicworlds.com/blog/filmic-tonemapping-with-piecewise-power-curves/] for detailed breakdown of what this is doing.
**PPC RGB: As with PPC, except applying to each color channel individually rather than combined luminance.
+
**PPC RGB: As with PPC, except applying to each color channel individually rather than combined luminance, which gives a more vibrant look.
 +
 
 +
The best way to view the differences between all of these is to open the F3 lab.  
 
}}
 
}}
 +
 
===$Exposure:===
 
===$Exposure:===
 
{{Table220|
 
{{Table220|
Line 53: Line 56:
 
===$PPC Toe Length:===
 
===$PPC Toe Length:===
 
{{Table220|
 
{{Table220|
Toe length adjusts the area in which Toe Strength does it's thing. A very low setting will mean that only the darkest areas of the image are affected by the toe strength setting and vice-versa.
+
Toe length determines the mid-point where the toe stops and the shoulder begins. In layman's terms, this determines what the renderer considers "dark" areas and what it considers "bright" areas.  
 
*Syntax: '''''Float'''''
 
*Syntax: '''''Float'''''
 
*Default: 0.5
 
*Default: 0.5
Line 60: Line 63:
 
===$PPC Shoulder Length:===
 
===$PPC Shoulder Length:===
 
{{Table220|
 
{{Table220|
Shoulder length adjusts how gradual the overexposure compensation works. A higher setting means a smoother transition from "visibly bright" to "blindingly bright", at the cost of making said transition more dull.
+
There's no such thing as finite brightness in space, but there is on your monitor. Shoulder length determines at which point the tonemapper stops adjusting for overexposure and simply lets it happen. If you set this to a low value you'll see a lot of bright white spots, as the amount of lights that the tonemapper considers 'too bright to handle' increases. Settings this high means you'll see less full white areas, at the risk of making highlights look a bit dull as they're being compressed in order to fit within the displayable range.  
 
*Syntax: '''''Float'''''
 
*Syntax: '''''Float'''''
 
*Default: 0.5
 
*Default: 0.5
Line 67: Line 70:
 
===$PPC Shoulder Strength:===
 
===$PPC Shoulder Strength:===
 
{{Table220|
 
{{Table220|
Shoulder strength adjusts how strongly the tonemapper compensates for bright areas. A high value means that brighter areas will be made less bright. A low value means that there's more "blindingly bright" areas in the scene. This setting gradually has more effect as exposure increases.
+
Shoulder strength adjusts how strongly the tonemapper compensates for bright areas. A high value means that brighter areas will be made less bright. A low value means that there's more "blindingly bright" areas in the scene. It differs from shoulder length in that shoulder length 'selects' the areas in which the shoulder should be applied, and shoulder strength determines how strongly it should be applied.
 +
This setting gradually has more effect as exposure increases.
 
*Syntax: '''''Float'''''
 
*Syntax: '''''Float'''''
 
*Default: 0.0
 
*Default: 0.0
Line 74: Line 78:
 
===$PPC Shoulder Angle:===
 
===$PPC Shoulder Angle:===
 
{{Table220|
 
{{Table220|
Shoulder angle adjusts the compensation for overshoot: When the image becomes too bright for the tonemapper to handle, a higher setting here will try to bring the detail in those overly bright areas back, whilst a lower setting will desaturate bright areas.
+
Raising shoulder angle means that less bright in the shoulder are adjusted less, whilst very bright areas are compressed into a smaller range. In FS2 this is very noticable in backgrounds, which become more saturated (and eventually oversaturated) as shoulder angle increases.  
 
*Syntax: '''''Float'''''
 
*Syntax: '''''Float'''''
 
*Default: 0.1
 
*Default: 0.1
Line 138: Line 142:
 
===$Point light radius:===
 
===$Point light radius:===
 
{{Table222|
 
{{Table222|
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the radius of all point lights, such as light cast by non-beam weapon. It is applied after any more specific adjustments such as $laesr light radius:.
+
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the radius of all point lights, such as light cast by non-beam weapon. It is applied after any more specific adjustments such as $laser light radius:.
 
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 
*Default values: '''+multiplier: 1.25'''
 
*Default values: '''+multiplier: 1.25'''
Line 157: Line 161:
  
 
===$Directional light brightness:===
 
===$Directional light brightness:===
{{Table222|
+
{{Table224|
 
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the brightness of all directional lights, such as level suns.
 
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the brightness of all directional lights, such as level suns.
 
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
Line 164: Line 168:
  
 
===$Ambient light brightness:===
 
===$Ambient light brightness:===
{{Table222|
+
{{Table224|
 
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the brightness of ambient level lighting.
 
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the brightness of ambient level lighting.
 +
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 +
}}
 +
 +
 +
===$Overall brightness:===
 +
{{Table224|
 +
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to all adjustable light.
 +
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 +
}}
 +
 +
===$Cockpit light radius modifier:===
 +
{{Table224|
 +
*An [[Lighting_Profiles.tbl#Adjustable values|Adjustable value]] applied to the radius of all lights, only applied when rendering the player ships cockpit and "show ship" model
 
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 
*Syntax: See [[Lighting_Profiles.tbl#Adjustable values|Adjustable values]]
 
}}
 
}}
Line 172: Line 189:
 
{{Table220|
 
{{Table220|
 
Required to close the default profile section.
 
Required to close the default profile section.
 +
}}
 +
 +
==#PROFILES==
 +
{{Table232|
 +
Begins the standard, named profiles section. Named profiles can have all the same profile values set, but must be given a name. The name "Default Profile" can be used to define, or alter, the primary default profile. Other profiles can by assigned on a per-mission basis or viewed in the F3 lab.
 +
}}
 +
 +
===$Profile:===
 +
{{Table232|
 +
The name of the profile being defined or modified. See the values above in the default profiles section for documentation on available settings.
 +
}}
 +
 +
==#END PROFILES==
 +
{{Table232|
 +
Required to close the profiles section.
 
}}
 
}}
  
Line 215: Line 247:
  
 
$Missile Light Radius:
 
$Missile Light Radius:
   +Base: 20
+
   +default: 20
  
 
$Laser Light Radius:
 
$Laser Light Radius:
   +Base: 100
+
   +default: 100
  
 
$Beam Light Radius:
 
$Beam Light Radius:
   +Base: 37.5
+
   +default: 37.5
  
 
$Point Light Radius:
 
$Point Light Radius:
Line 231: Line 263:
 
#END DEFAULT PROFILE
 
#END DEFAULT PROFILE
 
</pre>
 
</pre>
 +
 
== References ==
 
== References ==
 
# [http://filmicworlds.com/blog/filmic-tonemapping-with-piecewise-power-curves/ Filmic Tonemapping with Piecewise Power Curves], John Hable
 
# [http://filmicworlds.com/blog/filmic-tonemapping-with-piecewise-power-curves/ Filmic Tonemapping with Piecewise Power Curves], John Hable

Latest revision as of 00:58, 21 May 2023

This feature requires FreeSpace Open
List of Tables and related code files
* Notes Modular Tables
** Notes tables which only use modular tables
Ai.tbl* /ai/aicode.cpp
Ai_profiles.tbl* /ai/ai_profiles.cpp
Animation.tbl** /model/modelanimation.cpp
Armor.tbl* /ship/ship.cpp
Asteroid.tbl* /asteroid/asteroid.cpp
Autopilot.tbl* /autopilot/autopilot.cpp
Cheats.tbl* /cheats_table/cheats_table.cpp
Colors.tbl* /globalincs/alphacolors.cpp
Curves.tbl* /math/curves.cpp
Controlconfigdefaults.tbl /controlconfig/controlsconfigcommon.cpp
Credits.tbl* /menuui/credits.cpp
Cutscenes.tbl* /cutscene/cutscenes.cpp
Decals.tbl** /decals/decals.cpp
Fireball.tbl* /fireball/fireballs.cpp
Fonts.tbl* /graphics/font.cpp
Game_settings.tbl* /mod_table/mod_table.cpp
Glowpoints.tbl* /model/modelread.cpp
Help.tbl* /gamehelp/contexthelp.cpp
Hud_gauges.tbl* /hud/hudparse.cpp
Icons.tbl* /mission/missionbriefcommon.cpp
Iff_defs.tbl* /iff_defs/iff_defs.cpp
Keywords.tbl* Not In Codebase
Lighting_Profiles.tbl* /lighting/lighting_profiles.cpp
Lightning.tbl* /nebula/neblightning.cpp
Mainhall.tbl* /menuui/mainhallmenu.cpp
Medals.tbl* /stats/medals.cpp
Messages.tbl* /mission/missionmessage.cpp
Mflash.tbl* /weapon/muzzleflash.cpp
Music.tbl* /gamesnd/eventmusic.cpp
Nebula.tbl* /nebula/neb.cpp
Objecttypes.tbl* /ship/ship.cpp
Options.tbl* Not In Codebase
Particle effects(-part.tbm)** /particle/effects...
Post_processing.tbl /graphics/gropenglpostprocessing.cpp
Rank.tbl* /stats/scoring.cpp
Scpui.tbl* Not In Codebase
Scripting.tbl* /parse/scripting.cpp
Ships.tbl* /ship/ship.cpp
Sexps.tbl** /parse/sexp/sexp_lookup.cpp
Sounds.tbl* /gamesnd/gamesnd.cpp
Species_defs.tbl* /species_defs/species_defs.cpp
Species.tbl* /menuui/techmenu.cpp
Ssm.tbl* /hud/hudartillery.cpp
Stars.tbl* /starfield/starfield.cpp
Strings.tbl* /localization/localize.cpp
Tips.tbl* /menuui/playermenu.cpp
Traitor.tbl* /stats/scoring.cpp
Tstrings.tbl* /localization/localize.cpp
Virtual_pofs.tbl* /model/modelreplace.cpp
Weapon_expl.tbl* /weapon/weapons.cpp
Weapons.tbl* /weapon/weapons.cpp

The lighting_profiles.tbl provides controls for the game's lighting and rendering pipeline. The current version only allows fixed settings, but expansion to allow runtime adjustment and swapping between different profiles is planned.

This table is one of the Modular Tables and can be extended with xxx-ltp.tbm

#DEFAULT PROFILE

FS2 Open, 22.0:

This section defines the settings used by default. Entries may be included in any order, and the section must by closed by a #END DEFAULT PROFILE line.

$Tonemapper:

FS2 Open, 22.0:

Sets the algorithm used for the tonemapping stage of rendering. See Tonemapping for more information on what this means in detail and comparisons of the options.

  • Syntax: Str
  • Options:
    • Linear: Simple clamping and gamma correction. Not recommended in most cases.
    • Uncharted 2: FSO's default tonemapper, a filmic look created by John Hable for the game of the same name. This option can also be selected with simply "uncharted"
    • ACES: A filmic tonemapper that is the default for Unreal Engine 4, based on film industry standards. Good for high contrasts, has the quirk that it quite visibly desaturates bright colored lights towards white. This is especially visible in Freespace with red Shivan glows, which are bright enough to turn orange.
    • ACES Approximate: A simplification of ACES featuring more saturated bright colors and faster rendering. Does not desaturate bright colors.
    • Cineon: Another filmic option, similar to ACES it provides high contrast and vibrant colors, it preserves deep blacks but isn't quite as aggressive as ACES on dimly lit scenes.
    • Reinhard Extended: A version of a common tonemapper that acts on luminance
    • Reinhard Jodie: Another version of Reinhard that makes bright colors less saturated than Reinhard Extended
    • PPC: Piecewise power curve, a configurable curve meant to give artists flexible and simple control over the look. Applies to pixel luminance. Configuration options are also available in this table. See [1] for detailed breakdown of what this is doing.
    • PPC RGB: As with PPC, except applying to each color channel individually rather than combined luminance, which gives a more vibrant look.

The best way to view the differences between all of these is to open the F3 lab.

$Exposure:

FS2 Open, 22.0:

The rendered scene is multiplied by this value before being tonemapped. Conceptually similar to the exposure time on a camera, higher numbers mean a brighter scene. By using lower exposure and higher values for static lights you could create a otherwise similar scene with more muted lights from ship glows, level backgrounds and weapons fire, or conversely using dim lights and high exposure would emphasize those other light sources.

  • Syntax: Float
  • Default: 4.0

PPC Adjustments

If you want to adjust the look of the PPC tonemapper, you can easily see what these settings do by using the F3 main lab.

  • When in the main menu, press F3
  • Select a ship class
  • Select a background from a mission of your choice.
  • Tweak settings and the desired tonemapper from the "Render Options" menu.
    • Start by setting your desired exposure
    • Set toe and shoulder strength to 0, then increase them slowly to see their effects in action.
    • Adjust Exposure, Toe and Shoulder strength as desired.
      • Use the length and angle settings for fine-tuning after you've honed down your desired look.
    • Note the settings used and type them into this table.

$PPC Toe Strength:

FS2 Open, 22.0:

Toe Strength adjusts how dark the shadows of a scene are. The higher the toe strength, the darker, and harder to distinguish from black, dark areas in the scene become. Conversely, a low value means that lowly lit objects are easier to distinguish from full black and eachother, but setting it too low can make areas that should be black look greyish. This setting is very sensitive to exposure. If you lower exposure, you will want to lower toe strength to get some visibility back.

  • Syntax: Float
  • Default: 0.5

$PPC Toe Length:

FS2 Open, 22.0:

Toe length determines the mid-point where the toe stops and the shoulder begins. In layman's terms, this determines what the renderer considers "dark" areas and what it considers "bright" areas.

  • Syntax: Float
  • Default: 0.5

$PPC Shoulder Length:

FS2 Open, 22.0:

There's no such thing as finite brightness in space, but there is on your monitor. Shoulder length determines at which point the tonemapper stops adjusting for overexposure and simply lets it happen. If you set this to a low value you'll see a lot of bright white spots, as the amount of lights that the tonemapper considers 'too bright to handle' increases. Settings this high means you'll see less full white areas, at the risk of making highlights look a bit dull as they're being compressed in order to fit within the displayable range.

  • Syntax: Float
  • Default: 0.5

$PPC Shoulder Strength:

FS2 Open, 22.0:

Shoulder strength adjusts how strongly the tonemapper compensates for bright areas. A high value means that brighter areas will be made less bright. A low value means that there's more "blindingly bright" areas in the scene. It differs from shoulder length in that shoulder length 'selects' the areas in which the shoulder should be applied, and shoulder strength determines how strongly it should be applied. This setting gradually has more effect as exposure increases.

  • Syntax: Float
  • Default: 0.0

$PPC Shoulder Angle:

FS2 Open, 22.0:

Raising shoulder angle means that less bright in the shoulder are adjusted less, whilst very bright areas are compressed into a smaller range. In FS2 this is very noticable in backgrounds, which become more saturated (and eventually oversaturated) as shoulder angle increases.

  • Syntax: Float
  • Default: 0.1

$Missile light brightness:

FS2 Open, 22.2:
  • An Adjustable value applied to the brightness of dynamic lights for missile weapons (any weapon using a model rather than a laser bitmap or beam).
  • Syntax: See Adjustable values

$Missile light radius:

FS2 Open, 22.2:
  • An Adjustable value applied to the light radius dynamic lights for missile weapons (any weapon using a model rather than a laser bitmap or beam). +Default: is used for any such weapons not given specific sizes in the weapon tables.
  • Syntax: See Adjustable values
  • Default values: +default: 20

$Laser light brightness:

FS2 Open, 22.2:

$Laser light radius:

FS2 Open, 22.2:
  • An Adjustable value applied to the light radius dynamic lights for laser weapons (weapons using a laser bitmap). +Default: is used for any such weapons not given specific sizes in the weapon tables.
  • Syntax: See Adjustable values
  • Default values: +default: 100

$Beam light brightness:

FS2 Open, 22.2:

$Beam light radius:

FS2 Open, 22.2:
  • An Adjustable value applied to the light radius dynamic lights for beam weapons. Unless set otherwise on the specific weapon this is multiplied by the beam's width. +Default: is used for any such weapons not given specific sizes in the weapon tables.
  • Syntax: See Adjustable values
  • Default values: +default: 37.5

$Tube light brightness:

FS2 Open, 22.2:
  • An Adjustable value applied to the brightness of all tube lights, such as light cast by beam weapons. It is applied after any more specific adjustments such as $Beam light brightness:
  • Syntax: See Adjustable values

$Tube light radius:

FS2 Open, 22.2:
  • An Adjustable value applied to the radius of all tube lights, such as light cast by beam weapons. It is applied after any more specific adjustments such as $Beam light radius:.
  • Syntax: See Adjustable values

$Point light brightness:

FS2 Open, 22.2:
  • An Adjustable value applied to the brightness of all point lights, such as light cast by non-beam weapons. It is applied after any more specific adjustments such as $laser light brightness:
  • Syntax: See Adjustable values

$Point light radius:

FS2 Open, 22.2:
  • An Adjustable value applied to the radius of all point lights, such as light cast by non-beam weapon. It is applied after any more specific adjustments such as $laser light radius:.
  • Syntax: See Adjustable values
  • Default values: +multiplier: 1.25

$Cone light brightness:

FS2 Open, 22.2:

$Cone light brightness:

FS2 Open, 22.2:
  • An Adjustable value applied to the brightness of all cone lights. It is applied after any more specific adjustments that might exist.
  • Syntax: See Adjustable values
  • Default values: +multiplier: 1.25

$Directional light brightness:

FS2 Open, 23.0:


$Ambient light brightness:

FS2 Open, 23.0:


$Overall brightness:

FS2 Open, 23.0:

$Cockpit light radius modifier:

FS2 Open, 23.0:

#END DEFAULT PROFILE

FS2 Open, 22.0:

Required to close the default profile section.

#PROFILES

FS2 Open, 23.2:

Begins the standard, named profiles section. Named profiles can have all the same profile values set, but must be given a name. The name "Default Profile" can be used to define, or alter, the primary default profile. Other profiles can by assigned on a per-mission basis or viewed in the F3 lab.

$Profile:

FS2 Open, 23.2:

The name of the profile being defined or modified. See the values above in the default profiles section for documentation on available settings.

#END PROFILES

FS2 Open, 23.2:

Required to close the profiles section.

Adjustable values

Many profile values allow for a flexible set of configurable adjustments to existing values. These are applied to their inputs in a specific order and will be listed here in that order they, but can be defined in the tables in any order.

+default:

FS2 Open, 22.2:
  • For values that can be configured more specifically elsewhere, such as the sizes of dynamic weapon lights. Defaults are only meaningful for those proprties that list one in their default settings.
  • Syntax: Float

+Multiplier:

FS2 Open, 22.2:
  • The input value will be multiplied by this amount
  • Syntax: Float

+Adjustment:

FS2 Open, 22.2:
  • This amount will be added to the input value. Negative values allow for downward adjustments.
  • Syntax: Float

+Minimum:

FS2 Open, 22.2:
  • Inputs below this amount will be set to it.
  • Syntax: Float

+Maximum:

FS2 Open, 22.2:
  • Inputs above this amount will be set to it.
  • Syntax: Float

Sample Entry

#DEFAULT PROFILE

$Tonemapper: Uncharted 2
$Exposure: 4.0

$Missile Light Radius:
  +default: 20

$Laser Light Radius:
  +default: 100

$Beam Light Radius:
  +default: 37.5

$Point Light Radius:
  +Multiplier: 1.25

$Cone Light Radius:
  +Multiplier: 1.25

#END DEFAULT PROFILE

References

  1. Filmic Tonemapping with Piecewise Power Curves, John Hable
  2. Tone Mapping, 64
  3. Filmic Tonemapping Operators, John Hable