Skip to content

Auto preset and scene detection

llyzs edited this page Jul 5, 2017 · 5 revisions

It is very common that different convergence and separation should be applied to difference scenes in many games. For example, while many prefer high convergence and separation in game, menus and cut-scenes often require low convergence and separation, while aiming using a sniper rifle requires low convergence but high separation; etc.

To make switching between different convergence/separation presets a bit easier and smarter, a new feature called "Automatic Presets" was added since version 1.2.62. The feature allows 3Dmigoto to activate settings in a certain preset overriding the entire frame, whenever some ShaderOverride section is activated; and restore the settings once that ShaderOverride is no longer activated. To use the feature:

  1. Define the convergence, separation and other settings in [Preset*] sections. It is similar to the [Key*] sections, only you do not have to specify a key. Other settings such as x, y, z, w, transition, transition_type should also be supported. Examples:
[PresetMenu]
separation = 5.0
convergence = 1.2

[PresetCutscene]
separation = 1.0
convergence = 0.3
  1. Find out the VS, PS or VS/PS pair that only appears in the scene in which you want to apply a preset. This part might be a little tricky because sometimes you think you found a particular VS/PS pair that only appears in a scene but only later discover that it is also used somewhere else. Use frame analyse and IndexBufferFilter if you have to. Once you think you found the right one, add the following sections:
[ShaderOverridePresetMenu1]
Hash = psxxxx
Partner = vsxxxx ;optional
;IndexBufferFilter = xxxxx ;optional
Preset = Menu

[ShaderOverridePresetCutscene1]
Hash = psxxxx
Partner = vsxxxx ;optional
;IndexBufferFilter = xxxxx ;optional
Preset = Cutscene

The "Preset = ?" references the name in the [Preset*] sections. It is also possible to reference the same preset in multiple ShaderOverride sections. However, the shader itself does not have to be actually overridden, meaning you do not need to put a replace shader in "ShaderFixes" folder. As long as the criteria in the ShaderOverride qualifies, the preset will be automatically activated, and once it is not qualified, the settings will be restored to original.