SKYRIM
Enhanced ENB Night Eye by scegielski
Skyrim » ENB Preset
Added: 04/02/2014 - 03:13AM
Updated: 16/04/2014 - 04:50PM

64 Endorsements

1.4 Latest version

796 Unique D/Ls

1,046 Total D/Ls

18,833 Total Views

Uploaded by scegielski

Description

Last updated at 16:50, 16 Apr 2014 Uploaded at 3:13, 4 Feb 2014

Important Message
This is not a full ENB preset. It only replaces the enbeffect.fx file that is part of presets and the standard ENB distribution. Either an ENB preset or the standard ENB distribution from www.enbedev.com need to be installed first.

Note:
  • I'm not sure why, but if the ENB Time of Day feature is turned off, then during the night, the day multiplier for will also affect the night. From my tests though, the reverse is not true whereas during the day the night multiplier does not affect the day.
  • Now With Installer App for Easy Integration!


    Installer now makes it easy to integrate with enb presets. Check out the video below!

    Videos:


    April 5, 2014
    Installer App!


    Note:
    If you have problems running the installer, make sure you install the Visual C+ Redistributable Packages from:
    http://www.microsoft.com/en-us/download/details.aspx?id=40784

    April 1, 2014
    ENB Integration and Calibration instructions video


    Version 1.0 Basic Demo


    Version 1.1 Warping and Vignette demo


    Version History:


    1.4
    -Added installer app
    -Renamed some variables for better preset compatibility

    1.3.1
    -Added "Night Eye Calibrate Position X/Y" controls to reposition calibrate text.
    1.3
    -Added calibration controls
    -Now includes EnhancedENBDiagnostics.fxh and EED_verasansmono.bmp to draw text
    -Removed controls:
    _c3.w offset
    _c3.w mult
    -Added controls:
    - Night Eye Calibrate - Shows "NightEye" value which should be 0.0 when night eye is off and 1.0 when on
    - Night Eye Day Offset - During the day, adjust until "NightEye" display is 0.0 when night eye is off
    - Night Eye Night Offset - During the night, adjust until "NightEye" display is 0.0 when night eye is off
    - Night Eye Interior Offset - Whil interior, adjust until "NightEye" display is 0.0 when night eye is off


    1.2.2
    -Fixed bugs in 1.2.1

    1.2.1
    Added controls for:
    -Night Eye _c3.w offset - Offsets _c3.w value before using it in DNI calculations
    -Night Eye _c3.w mult - Multiplies _c3.w

    1.2
    Added controls for:
    -Night Eye Enable Eyes - Separates the vignette and warping effects into two points
    -Night Eye Eyes Separation - Horizontal distance between the points
    -Night Eye Debug - Turns on Debug mode (see below)

    -Fixed bug where warp was on even if enableNightEye was off
    -Renamed t variable to nightEyeT to avoid conflicts

    1.1
    Added controls for:
    -Night Eye Vignette Enable
    -Night Eye Vignette Min Distance
    -Night Eye Vignette Max Distance
    -Night Eye Vignette Distance Power
    -Night Eye Vignette Aspect Ratio Power
    -Night Eye Vignette Value Mult - Multiplies the base color (not the bloom)
    -Night Eye Vignette Mask Mult - Fades the vignette out at 0. At -1 produces inverted vignette which can be useful!
    -Night Eye Bloom Vignette Mult
    -Night Eye Bloom Vignette Mask Mult - Same behavior as base color vignette mask mult which allow one or both to be inverted
    -Night Eye Warp Enable
    -Night Eye Warp Mult
    -Night Eye Warp Shift
    -Night Eye Warp Min Distance
    -Night Eye Warp Max Distance
    -Night Eye Warp Distance Power
    -Night Eye Warp Aspect Ratio Power
    -Removed the _c3.w variable from the APPLYGAMECORRECTION as I describe in the Other Integration Issues below. This should turn off any existing night eye effect.
    -Added a new section for setup and warping. See preset integration section below for details.

    1.0
    Added controls for:
    -Night Eye Enable - Enables/Disables all of the effects
    -Night Eye Day - Mix for night eye during the day
    -Night Eye Night - Mix for night eye during the day
    -Night Eye Interior - Mix for night eye in interiors
    -Night Eye CC Enable - Enable the color correction controls
    -Night Eye Gamma - Controls gamma (applied first)
    -Night Eye Hue Shift - Shift Hue (0 - 1 full spectrum)
    -Night Eye Hue Speed - Speed of hue shift over time (Uses ENB Timer.x variable * 1000.0)
    -Night Eye Saturation - Saturation (0 - 10)
    -Night Eye Value - Brightness control (0-100)
    -Night Eye Tint - Color which is multiplied with HSV result.
    -Night Eye Bloom Enable - Enable Bloom Effect
    -Night Eye Bloom Gamma - Applies gamma to the bloom
    -Night Eye Bloom Hue Shift
    -Night Eye Bloom Hue Speed
    -Night Eye Bloom Saturation
    -Night Eye Bloom Value
    -Night Eye Bloom Tint
    -Night Eye Noise Enable
    -Night Eye Noise Mult
    -Night Eye Noise Tint

    Description:


    Many ENBs do not show the game's Khajiit night eye effect which makes playing that race less than desirable if using ENB. This mod will aims to make it more enjoyable by letting you easily configure it to suit your taste via the shader window that is part of ENB. The controls and features let you make it as subtle or ridiculous as you want.


    Usage:


    Use the in game ENB GUI by pressing SHIFT and ENTER. Make sure the "Show shaders window" control is checked in the main interface. See screenshots for some common settings.

    Features:


    * Day/Night/Interior multipliers
    * HSV, gamma, and tint color correction
    * Bloom with HSV, gamma, and tint color correction
    * Noise intensity with tint
    * Hue Speed control which cycles the hue over time


    Installation:


    The included enbeffect.fx file is a modified version of the default file obtained from [url]www.enbdev.com[/url]. Use the installer or see the manual integration video for more help.

    Debug Mode:


    Some people report night eye is always on during the day. Hopefully this will help.


    Preset Integration:


    Use the installer or follow the instructions in the video. I'll keep the advice below just for reference.

    1. Backup your preset enbeffect.fx file in game folder

    2. Open both your preset enbeffect.fx and the night eye version in a text editor

    3. Optional - Remove any existing night eye effect.
    If the ENB preset you are using already has night eye enabled, chances are that it is being enabled in a block of code within the pixel shader. This block of code is enabled and disabled by commenting this line which is typically near or at the top of the file:


    #define APPLYGAMECOLORCORRECTION


    (commented version would look like this:


    //#define APPLYGAMECOLORCORRECTION


    If it's enabled, that means the game's color correction is likely being applied to the resulting color you are seeing. If it's enabled, search for _c3.w and find the code in the pixel shader that looks like this:

    r1=_c3.w * r1 - r0.y;


    To remove the games night eye effect remove the _c3.w variable so that it looks like this:

    r1=r1 - r0.y;


    Search for other instances of _c3.w in the file. It only occurs this once in the default enbeffect.fx file.

    4. Find the the sections of code that I added which are between commented blocks with the words BEGIN NIGHTEYE and END NIGHTEYE.

    5. There are 4 sections that I added. The first is near the top labeled BEGIN NIGHTEYE UTILITIES, the second is BEGIN NIGHTEYE PARAMETERS, the third is, BEGIN NIGHT EYE SETUP AND WARPING, and the fourth is BEGIN NIGHTEYE IMPLEMENTATION.

    6. These sections should be copied and pasted into your preset ENB enbeffect.fx file into the appropriate places based on the guidlines below. Most enbeffect.fx files in presets follow the same basic structure as the default one.

    7. Here is more information about the code blocks
    In my first block BEGIN NIGHTEYE UTILITIES are functions that can be pasted near the top of your preset file outside of any existing functions.

    The second block BEGIN NIGHTEYE PARAMETERS are the GUI parameters and should be placed after the preset's own GUI parameters or, if they don't exist, then just before the global variables like tempF1, tempF2, Timer, etc.

    The third block BEGIN NIGHT EYE SETUP AND WARPING goes right after where _V0 is set to the texture coordinates which get replaced by the night eye warped coordinates for the color tex2D call.

    The fourth block BEGIN NIGHTEYE IMPLEMENTATION is placed at the end of the pixel shader function which typically looks like this:


    float4 PS_D6EC7DD1(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
    {
    ...
    }


    You should place the BEGIN NIGHTEYE IMPLEMENTATION code near the end of the pixel function right before the final color is set with code that looks like this:


    _oC0.w=1.0;
    _oC0.xyz=color.xyz;
    return _oC0;


    As long as the color.xyz variable is being used above it, then it should work. Otherwise you may have to change some names around.





    Please post any questions in the forum. Good luck!



    Future Development Ideas:


    • Separate vampire effect
    • Night Eye passthru to downstream ENB pipeine (i.e. enblens.fx and effect.txt)
    • Presets
    • Use adaptation to control effect




    Final Words:


    ENB Authors, please feel free to use this code or a modified version in your presets. Everyone please post screenshots. Be sure to try out the Hue Speed with lots of bloom for trippy effects. Enjoy!



    Credits:


    Boris Vorontsov for ENB
    [url]www.enbdev.com[/url]

    RGB to HSV code converted from here:
    [url]http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl[/url]

    Random number generator adapted from code here:
    [url]http://gamedev.stackexchange.com/questions/32681/random-number-hlsl[/url]



    My Other Mod


    Enhanced ENB Diagnostics
    www.nexusmods.com/skyrim/mods/50991