Pure 0.222 - New Features and Changes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

What’s new?

Table of contents
Pure Config ...................................................................................................................................................................... 2
AI headlight control ..................................................................................................................................................... 2
Group design ............................................................................................................................................................... 2
Tonemapping control................................................................................................................................................... 2
Exposure fixes ................................................................................................................................................................. 3
CustomPP ........................................................................................................................................................................ 3
pureHDR.......................................................................................................................................................................... 4
pureVR ............................................................................................................................................................................ 5
Sunblinding shader .......................................................................................................................................................... 6
PPfilter “Sunblinding” integration ................................................................................................................................ 8
Complete Changelog Pure 0.205 -> 0.222 ........................................................................................................................ 9
Pure Config
AI headlight control
Finally, headlights can be controlled properly. CSP
now gives control over the scene, so headlights are
controllable, even in replays. You can also control
the high beams and force them to be high or low.

If Pure controls the headlights, they will strictly


follow the logic from the AI page.

If a replay is active and headlights control is set to


“default”, Pure will control the headlights as well.

This control feature does not block the headlights


and high beams control in the photo mode app.
Both apps will accept the control from outside.

Group design
UI groups have a better design. The elements of the
group are shifted, and so it is clear that they are
members of the group.

Tonemapping control
UI elements can be added to the “PP Tonemapping control” group if their names start with “TONEMAPPING__”.
Exposure fixes
The exposure generation of the exposure handling tool is fixed. In mode 1 (eye-based – like in the standard pure filter),
the detection of light at night is improved. The super-exposure (the exposure that is set if the scenery is very dark) is
only achieved if nearly no light is visible, but it will safely come up when looking into the night sky.

CustomPP
AC’s post-processing is done by the Silicon Studio’s YEBIS suite. It’s a nice and powerful post-processing bundle.
It manages tonemapping (the conversion from the internal HDR color range to the LDR output range), picture
adjustments (brightness, saturation, color grading) and several effects like Godrays, Glare and others. But the usage is
limited to the settings file. So, AC’s postprocessing (PP) can’t be used to add own shaders or own HDR conversions.

With the newer CSP versions, YEBIS can be bypassed and a custom PP is possible. Pure’s customPP will do all the basic
things like YEBIS (tonemapping, color adjustment and color grading), but it has some optimizations and new features.
CustomPP uses a very lightweight variant of Glare. It is not as nice as the YEBIS one (maybe in the future), but it will give
some FPS back. It is like a functional Glare.

CustomPP also has an optimized autoexposure (AE) algorithm. It will detect little light sources much better than the
YEBIS AE and so exposure generation is more stable at night.

Due to customPP, HDR mapping and custom HDR mapping are now possible.
The new “pureHDR” PPfilter offers a new way to use HDR in AC.
pureHDR
HDR conversion, to emulate an LDR-like look but with higher tone resolution and precision

The pureHDR filter will force customPP, you don’t need to set anything. It also uses its own tone-mapping function –
coded inside the script, which brings great results, to achieve a functional and aesthetic HDR tone conversion. The
developed code provides a handy control to manage certain dynamic ranges.

The main idea of this PPfilter is to create an LDR-like look with just a little bit more dynamic range while using the higher
precision of the HDR output. The result is a very clear and sharp look with some higher dynamic range and a good
visibility of all parts of the picture.

This filter also has a unique feature. Very low tones will be desaturated. So, this kind of simulates the color-blindness in
the dark. Therefore, night scenes look much more realistic and immersive.

You can control/customize the tonal compression in Pure Config app – “PP” – “PP Tonemapping control”:

Input Brightness
Scales the input, before exponentiation

Output Brightness
Scales the output, before the limiter

Exponent
The exponent of the exponential function
output = inputexponent

Exponent High Falloff


How much the exponent is lowered for high tones

Blacklift Low Exposure


The blacklift in bright sceneries

Blacklift High Exposure


The blacklift in dark sceneries

Debug_clipping
Tones above the maximum are show red
Tones below 0.001 are shown green

Debug_curve
View the tone conversion as a curve
Display some gray bars to measure tone values

Debug_curve Size and Positioning


Customize the position and the size of the curve

For more information about HDR setup and the pureHDR PPfilter, please take a look at the
HDR - Tutorial.pdf
pureVR
This is a filter made for VR to prevent typical distractions.

The YEBIS godrays are reduced. They have a strange geometric effect, and this is confusing in VR. I also adapted the new
Sunblinding shader to have a soft look.

The Uchimura tonemapping was also adapted to gain visibility while leaving a natural contrast. The tonemapping is
adapted to the current exposure and will change settings if “Exposure is driving focused” is set in the script settings.

The displays of HMDs are very different. Please use the “pp adjustments” in the Pure Config app “PP” tab to adjust your
preferred look.

If you usually switch between VR and Screen mode, you can use Pure’s video-related config option. This will separately
save Pure configs per video mode:
Sunblinding shader

A new Pure shader to gain immersion and feel the power of the sun.

The sunblinding shader consists of 3 parts:

- Analysing the Sun’s position and coverage


- A godrays shader to generate a mask for the final visuals
- The final overlay to draw godrays and some other visuals

After analyzing the Sun’s position and its coverage, Pure knows if the camera is looking directly into the sun. If the
Sunblinding shader is active, the already existing pure.utils.CamFacesSun() will then return the result of the
analyzation.

An optimized godrays shader is used to create a mask for the final visuals. This shader will take the Sun’s coverage into
account. And unlike the YEBIS godrays shader, wrong geometrics can be prevented.

YEBIS godrays:

Pure’s customPP
godrays:
Immersion is mostly subjective, and so the Sunblinding shader has many parameters to customize its look and feel.

active
Activate/Deactivate the sunblinding shader

allow_control
If unchecked, the shader cannot be manipulated by a
ppfilter. Your settings are fixed with any ppfilter/script.

sensitivity
adjust the trigger level

horizontal / vertical
limit the local recognition of the sun

time_up / time_down
the fade in and fade out time of the effect

cover
a simple overlay, which appears and disappears
immediately

blinding
a complex overlay, which takes fade times into
account. With extreme values a noise effect is added.

iris
darken the whole screen

opacity
the opacity of the star/godrays visuals

size
the size of the star

blur
the godrays streaks can be blurred to achieve a
seamless look

style
add a streaks mask, to force the streaks look

star_adapt_coverage
if the sun is hidden, this will control the reduction of
the godrays effect

star_caver_damping
if the sun is hidden, this will control the reduction of
the top streaks

color
adding more warm color to the visuals

half_resolution
This will only use half of the resolution for the final
visuals (maybe use this in TripleScreen mode)

debug
Activates the debug and shows the Sun recognition
area.
PPfilter “Sunblinding” integration

PPfilters can control the Sunblinding look. All Pure PPfilters have their own Sunblinding look and feel. In most of the
Pure filters, I added a “sunblinding” slider. With it, you can adjust the strength of the effect from 0 to the filter’s desired
maximum.

“sun blinding” slider in “pure”, “pureHDR”, “pureVR”:

In the “pureCandy” filter, the effect strength is linked to the “candy” slider.

If you don’t want visually different “Sunblinding” effects in PPfilters, you can uncheck this option in the “Sunblinding”
shader settings:
Complete Changelog Pure 0.205 -> 0.222

##### A P P S #####

- apps: Pure Config:


# added more settings to check
- YEBISEST, must be activated
- PARTICLESFX, Soft particles must be activated
- farplane settings, first value must be smaller than the second value
- checking clipplanes not bigger than 30000, 40000
- changed the way how the automatic settings correction works
# added error state to shader groups
# integrated a bridge to call PhotoMode CPL, set the [CORE] LAZY = NONE, so it will work, if
PureConfig is hidden
# don't show pp vignette warning if customPP is used
# always show pp debug options if customPP is used
# "PP", "PP tonemapping control", sliders for debug curve positioning are only shown, if debug
curve is active
# "PP", Custom Script slider with "TONEMAPPING__" will be added to the tonemapping control group
# tweaked the UI groups look
# pressing "Reset Pure" will also clear the parameter backup, so Pure starts clean again
# added car headlights and high beams control to the "AI" page.

- apps: Pure Planner:


# weather from the replay is used, to set the weather in the plan, if a replay is loaded and Pure
Planner is switched to "replay mode"
# fixed humidity and mist control in replays
# fixed working of CM-Drive start wetness and puddles
# removed correction of ISS position with CSP 0.1.80p403
# manual is hidden, if run mode is "none"
# added dynamic weather calculations parameter to the settings
# added an option to link Planner time multiplier and Weather dynamics time multiplier
# changed settings saving routine
# activated dynamic calculation of weather parameters by default
# fastly changing dynamic weather, if weather is changed manually in the active slot

##### C O N T R O L L E R #####

- controller: pureCtrl
# reset the road temperature, if dynamic controller is used

##### C O N F I G #####

- config:
# fixed a bug, where ppf related configs are not loaded, if video mode separation was activated
# track specific loading of configs is deactivated, if a ppf related config is loaded

- config/states: fixed states are not set to initial values

##### E X P O S U R E #####

- exposure: added a code to prevent different AE values when changing cameras

- exposure handling: added some tweaks in mode 1 (eye-based)


# matching AE values with interior and exterior cameras
# fixed superexposure behavior
# fixed exposure calculation in night times, if "Exposure is driving focused" is activated
##### S H A D E R #####

- shader: "sunblinding"
# added support for Triple Screen, memory optimization when CSP is switching triples mode
# added support for VR
# added an option to prevent control from a ppfilter script
# overrides the "pure.utils.CamFacesSun()" value if active
# automatic deactivating if sun is under -2°
# added skydomes mask
# taking clouds sun cover into account
# change sun position code to CSP's render.projectPoint(), more stable and works in all screen
modes
# added CSP's fake shadows control
# added a decent fog handling

- shader: landscape
# fixed some bugs with the horizon line

- shaders:
# added resolution change management (will free unused memory after resolution change, like after
taking a screenshot)
# added checking functions, a shader can tell its compatibility before it is added to the shader
list
# sunblinding and landscape shaders are deactivate if VR - Single Pass Stereo is used
# blinking red and showing a message, if SinglePassStereo is active

##### P P #####

- pp:
# added brightness bars to the tonemapping debug curve
# added customizable coordinates and size to tonemapping debug curve

##### C U S T O M P P #####

- first integration of "customPP"


# customPP is a special render mode of CSP 0.1.80p386+, where YEBIS can be bypassed
# This special render method is activated in weatherFX settings ("Replace YEBIS with simple post-
processing"
# Every wfx could possibly add its own pp effects
# can be forced by a ppf script
# Added shaders to customPP:
## Glare, a simple threshold based blurring (needs still much work)
## Autoexposure (calibrated to work nearly like the Yebis one, but much better working in night
times)
## all tonemapping from CSP+Yebis (the mapping curve will now be displayable)
## Color Corrections / All wfx ColorCorrectionFilters
## Color Grading

# The shaders are controlled via the ppfilter parameters. So you are still able to set it via the
ini or with the current wfx functions
# The shaders are coded much simpler to gain fps, so they have very less parameters

### General Tonemapping


### - Exposure
### - Gamma
### - Tonemapping function (the same like Yebis/CSP)
### - MappingFactor
### - Brightness, Saturation, Contrast, Hue ....

### Glare working parameters:


### - Enabled
### - Threshold
### - Luminance ([GLARE] Luminance * [GLARE] ShapeBloomLuminance)
### - Quality (radius of bright pixel detection)

### Autoexposure working parameters:


### - Target
### - Minimum
### - Maximum
##### P P FILTERS / SCRIPTS #####

- ppf/script:
# adding sunblinding effect to all Pure PPfilters
# better dynamic cps emissives in all Pure PPfilters
# prepared tonemapping sliders to show in tonemapping control
# HDR tweaks:
- better CSP HDR settings
- more blacklift to use less gamma

- ppf/script: new pureHDR


# works only in customPP, forces using customPP by itself
# made for DXGI HDR mode!
# dynamic HDR parameters influenced by exposure
# desaturation of lowest tones
# ! I recommend to calibrate the monitor with Windows HDR Calibration Tool !
# Please read the "HDR - Tutorial.pdf" !

- ppf/script: new pureVR


# made to use in VR, special settings for VR
# more advanced ambient light

- ppf/script: pure
# dynamic tonemapping tweaks

##### S K Y D O M E S #####

- skydomes sets:
# better directional ambient light settings and more detailed light LUTs
# fixed a bug with to much saturation of dir. ambient light with Squalls weather
# added 2 missing masks for overcast weather
# 180909074, removed some birds
# 231158888, removed a fly

##### W O R L D L I G H T #####

- fog: fixed a bug when limiting backlit


- directional ambient light: fixed a bug with negative values
- stellar: tweaked adaptive stars multi

##### S C R I P T I N G #####

- sdk: added
# pure.system.isHDR (return true, if DXGI HDR mode is activated)
# pure.pp.advancedTonemappingUsed (returns true, if Pure's tonemapping is used)
# a bridge to set Photo Mode CPL in a ppfilter script, pure.camera.setCPL(0, 0, 0, 1)
# pure.world.getFogOfLightsourse(), to get the fog value at lightsource's position
# pure.pp.forceYEBISBypass(), this will activate customPP

- scripting: sliders can be added to the tonemapping control group, if the name starts with
"TONEMAPPING__"

- UI:
# State String elements are shown red or orange, if "ERROR" or "WARNING" is used as name.
- pure.script.ui.addStateString("ERROR", "HDR not properly set!!!")
- pure.script.ui.addStateString("WARNING", "HDR not properly set!!!")
# fixed a bug with script and shader text element output

##### F I L E S #####

- files:
# added HDR - Tutorial.pdf
# added pure\sdk\PURE SDK - import this in your workspace.lua

You might also like