diff --git a/Logo.png b/Logo.png new file mode 100644 index 0000000..dba3d72 Binary files /dev/null and b/Logo.png differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..56118da --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +![logo](Logo.png) + +This repo contains every single version of MariENB ever made. +For the sake of neater organization, they are divided in specific branches: + +- **historic**: Alpha versions of MariENB. +- **legacy**: 1.x releases. +- **twopoint-modular**: 2.0.x releases that used a modular packaging model. +- **twopoint-dust**: 2.x releases for Fallout: DUST. +- **twopoint-fnv**: 2.x releases for Fallout: New Vegas. +- **twopoint-skyrim**: 2.x releases for Skyrim. +- **threepoint-frost**: 3.x releases for Fallout: FROST. +- **threepoint-fo4**: 3.x releases for Fallout 4. \ No newline at end of file diff --git a/enbseries.ini b/enbseries.ini deleted file mode 100644 index 8bcf147..0000000 --- a/enbseries.ini +++ /dev/null @@ -1,296 +0,0 @@ -[GLOBAL] -UseEffect=true - -[EFFECT] -UseOriginalObjectsProcessing=false -UseOriginalPostProcessing=false -UseOriginalColorFilter=false -UseOriginalBloom=false -UseOriginalAdaptation=false -EnablePostPassShader=true -EnableDithering=true -EnableAdaptation=true -EnableBloom=true -EnableDepthOfField=true -EnableLens=false -EnableSSAO=true - -[COLORCORRECTION] -UseProceduralCorrection=true -Brightness=1.0 -GammaCurve=1.0 - -[TIMEOFDAY] -DawnDuration=2.0 -SunriseTime=7.0 -DayTime=13.0 -SunsetTime=19.0 -DuskDuration=2.0 -NightTime=1.0 - -[ADAPTATION] -AdaptationSensitivity=0.35 -AdaptationTime=2.2 -ForceMinMaxValues=false -AdaptationMin=0.00001 -AdaptationMax=1.0 - -[DEPTHOFFIELD] -FocusingTime=0.4 -ApertureTime=1.0 - -[BLOOM] -IgnoreWeatherSystem=true -AmountDawn=1.0 -AmountSunrise=1.0 -AmountDay=1.0 -AmountSunset=1.0 -AmountDusk=1.0 -AmountNight=1.0 -AmountInteriorDay=1.0 -AmountInteriorNight=1.0 - -[LENS] -IgnoreWeatherSystem=true -AmountDawn=1.0 -AmountSunrise=1.0 -AmountDay=1.0 -AmountSunset=1.0 -AmountDusk=1.0 -AmountNight=1.0 -AmountInteriorDay=1.0 -AmountInteriorNight=1.0 - -[SKY] -IgnoreWeatherSystem=true -Enable=true -GradientIntensityDawn=0.91 -GradientIntensitySunrise=0.97 -GradientIntensityDay=1.01 -GradientIntensitySunset=0.970001 -GradientIntensityDusk=0.930001 -GradientIntensityNight=0.940001 -GradientIntensityInteriorDay=1.02 -GradientIntensityInteriorNight=0.9 -GradientDesaturationDawn=0.0 -GradientDesaturationSunrise=0.0 -GradientDesaturationDay=0.0 -GradientDesaturationSunset=0.0 -GradientDesaturationDusk=0.0 -GradientDesaturationNight=0.0 -GradientDesaturationInteriorDay=0.0 -GradientDesaturationInteriorNight=0.0 - -GradientTopIntensityDawn=0.59 -GradientTopIntensitySunrise=0.77 -GradientTopIntensityDay=0.980001 -GradientTopIntensitySunset=0.78 -GradientTopIntensityDusk=0.52 -GradientTopIntensityNight=0.43 -GradientTopIntensityInteriorDay=0.97 -GradientTopIntensityInteriorNight=0.97 -GradientTopCurveDawn=0.87 -GradientTopCurveSunrise=0.82 -GradientTopCurveDay=0.95 -GradientTopCurveSunset=0.88 -GradientTopCurveDusk=0.86 -GradientTopCurveNight=0.89 -GradientTopCurveInteriorDay=0.98 -GradientTopCurveInteriorNight=0.67 -GradientTopColorFilterDawn=0.984, 0.757, 0.925 -GradientTopColorFilterSunrise=0.973, 0.765, 0.706 -GradientTopColorFilterDay=0.969, 0.871, 0.812 -GradientTopColorFilterSunset=0.961, 0.702, 0.663 -GradientTopColorFilterDusk=0.969, 0.812, 0.878 -GradientTopColorFilterNight=0.816, 0.8, 0.839 -GradientTopColorFilterInteriorDay=0.996, 0.886, 0.808 -GradientTopColorFilterInteriorNight=0.871, 0.843, 0.898 - -GradientMiddleIntensityDawn=0.71 -GradientMiddleIntensitySunrise=0.8 -GradientMiddleIntensityDay=1.11 -GradientMiddleIntensitySunset=0.94 -GradientMiddleIntensityDusk=0.73 -GradientMiddleIntensityNight=0.9 -GradientMiddleIntensityInteriorDay=1.1 -GradientMiddleIntensityInteriorNight=0.54 -GradientMiddleCurveDawn=0.86 -GradientMiddleCurveSunrise=0.89 -GradientMiddleCurveDay=0.83 -GradientMiddleCurveSunset=0.85 -GradientMiddleCurveDusk=0.8 -GradientMiddleCurveNight=0.93 -GradientMiddleCurveInteriorDay=0.89 -GradientMiddleCurveInteriorNight=0.64 -GradientMiddleColorFilterDawn=0.929, 0.812, 0.922 -GradientMiddleColorFilterSunrise=0.965, 0.792, 0.745 -GradientMiddleColorFilterDay=0.953, 0.882, 0.851 -GradientMiddleColorFilterSunset=0.969, 0.831, 0.788 -GradientMiddleColorFilterDusk=0.937, 0.741, 0.827 -GradientMiddleColorFilterNight=0.922, 0.898, 0.953 -GradientMiddleColorFilterInteriorDay=1, 0.867, 0.788 -GradientMiddleColorFilterInteriorNight=0.906, 0.882, 0.945 - -GradientHorizonIntensityDawn=1.21 -GradientHorizonIntensitySunrise=1.17 -GradientHorizonIntensityDay=1.060001 -GradientHorizonIntensitySunset=1.18 -GradientHorizonIntensityDusk=1.21 -GradientHorizonIntensityNight=1.09 -GradientHorizonIntensityInteriorDay=1.1 -GradientHorizonIntensityInteriorNight=1.39 -GradientHorizonCurveDawn=0.43 -GradientHorizonCurveSunrise=0.57 -GradientHorizonCurveDay=0.94 -GradientHorizonCurveSunset=0.47 -GradientHorizonCurveDusk=0.51 -GradientHorizonCurveNight=0.88 -GradientHorizonCurveInteriorDay=0.86 -GradientHorizonCurveInteriorNight=0.65 -GradientHorizonColorFilterDawn=0.878, 0.8, 0.82 -GradientHorizonColorFilterSunrise=0.953, 0.769, 0.639 -GradientHorizonColorFilterDay=0.98, 0.898, 0.863 -GradientHorizonColorFilterSunset=0.914, 0.737, 0.647 -GradientHorizonColorFilterDusk=0.953, 0.882, 0.875 -GradientHorizonColorFilterNight=0.812, 0.835, 0.882 -GradientHorizonColorFilterInteriorDay=0.988, 0.831, 0.753 -GradientHorizonColorFilterInteriorNight=0.851, 0.863, 0.89 - -CloudsIntensityDawn=0.78 -CloudsIntensitySunrise=0.7 -CloudsIntensityDay=0.910001 -CloudsIntensitySunset=0.610001 -CloudsIntensityDusk=0.760001 -CloudsIntensityNight=0.850001 -CloudsIntensityInteriorDay=0.94 -CloudsIntensityInteriorNight=0.04 -CloudsCurveDawn=1.37 -CloudsCurveSunrise=1.18 -CloudsCurveDay=0.79 -CloudsCurveSunset=1.15 -CloudsCurveDusk=1.23 -CloudsCurveNight=1.07 -CloudsCurveInteriorDay=1.31 -CloudsCurveInteriorNight=2.39 -CloudsDesaturationDawn=0.34 -CloudsDesaturationSunrise=0.17 -CloudsDesaturationDay=0.09 -CloudsDesaturationSunset=0.21 -CloudsDesaturationDusk=0.39 -CloudsDesaturationNight=0.16 -CloudsDesaturationInteriorDay=0.14 -CloudsDesaturationInteriorNight=0.16 -CloudsOpacityDawn=1.13 -CloudsOpacitySunrise=0.98 -CloudsOpacityDay=0.75 -CloudsOpacitySunset=0.96 -CloudsOpacityDusk=1.19 -CloudsOpacityNight=1.11 -CloudsOpacityInteriorDay=1.0 -CloudsOpacityInteriorNight=1.0 -CloudsColorFilterDawn=0.996, 0.816, 0.816 -CloudsColorFilterSunrise=0.992, 0.835, 0.718 -CloudsColorFilterDay=0.996, 0.918, 0.855 -CloudsColorFilterSunset=0.984, 0.737, 0.545 -CloudsColorFilterDusk=0.965, 0.729, 0.729 -CloudsColorFilterNight=0.953, 0.925, 0.98 -CloudsColorFilterInteriorDay=0.953, 0.835, 0.718 -CloudsColorFilterInteriorNight=0.953, 0.933, 0.98 - -SunIntensityDawn=4.0 -SunIntensitySunrise=6.0 -SunIntensityDay=5.0 -SunIntensitySunset=6.0 -SunIntensityDusk=4.0 -SunIntensityNight=3.0 -SunIntensityInteriorDay=5.0 -SunIntensityInteriorNight=3.0 -SunDesaturationDawn=0.0 -SunDesaturationSunrise=0.0 -SunDesaturationDay=0.0 -SunDesaturationSunset=0.0 -SunDesaturationDusk=0.0 -SunDesaturationNight=0.0 -SunDesaturationInteriorDay=0.0 -SunDesaturationInteriorNight=0.0 -SunColorFilterDawn=0.953, 0.098, 0.0353 -SunColorFilterSunrise=0.98, 0.455, 0.322 -SunColorFilterDay=1, 0.647, 0.38 -SunColorFilterSunset=0.969, 0.471, 0.38 -SunColorFilterDusk=0.969, 0.161, 0.161 -SunColorFilterNight=0.839, 0.0275, 0.0157 -SunColorFilterInteriorDay=0.988, 0.627, 0.369 -SunColorFilterInteriorNight=0.859, 0.0471, 0.00392 - -MoonIntensityDawn=1.77 -MoonIntensitySunrise=1.39 -MoonIntensityDay=1.0 -MoonIntensitySunset=1.48 -MoonIntensityDusk=1.9 -MoonIntensityNight=2.4 -MoonIntensityInteriorDay=1.0 -MoonIntensityInteriorNight=2.47 -MoonDesaturationDawn=0.0 -MoonDesaturationSunrise=0.0 -MoonDesaturationDay=0.0 -MoonDesaturationSunset=0.0 -MoonDesaturationDusk=0.0 -MoonDesaturationNight=0.0 -MoonDesaturationInteriorDay=0.0 -MoonDesaturationInteriorNight=0.0 -MoonColorFilterDawn=0.443, 0.322, 0.98 -MoonColorFilterSunrise=0.776, 0.835, 0.918 -MoonColorFilterDay=1, 1, 1 -MoonColorFilterSunset=0.722, 0.8, 0.918 -MoonColorFilterDusk=0.337, 0.239, 0.969 -MoonColorFilterNight=0.314, 0.541, 0.965 -MoonColorFilterInteriorDay=1, 1, 1 -MoonColorFilterInteriorNight=0.314, 0.431, 0.957 -[ENVIRONMENT] -IgnoreWeatherSystem=true -DirectLightingIntensityDawn=1.86 -DirectLightingIntensitySunrise=1.52 -DirectLightingIntensityDay=1.06 -DirectLightingIntensitySunset=1.58 -DirectLightingIntensityDusk=1.95 -DirectLightingIntensityNight=2.53 -DirectLightingIntensityInteriorDay=1.16 -DirectLightingIntensityInteriorNight=2.61 -DirectLightingDesaturationDawn=0.0 -DirectLightingDesaturationSunrise=0.0 -DirectLightingDesaturationDay=0.0 -DirectLightingDesaturationSunset=0.0 -DirectLightingDesaturationDusk=0.0 -DirectLightingDesaturationNight=0.0 -DirectLightingDesaturationInteriorDay=0.0 -DirectLightingDesaturationInteriorNight=0.0 -DirectLightingColorFilterDawn=0.937, 0.812, 0.914 -DirectLightingColorFilterSunrise=0.961, 0.851, 0.757 -DirectLightingColorFilterDay=0.984, 0.945, 0.867 -DirectLightingColorFilterSunset=0.988, 0.871, 0.8 -DirectLightingColorFilterDusk=0.937, 0.851, 0.863 -DirectLightingColorFilterNight=0.722, 0.706, 0.976 -DirectLightingColorFilterInteriorDay=0.973, 0.859, 0.698 -DirectLightingColorFilterInteriorNight=0.886, 0.863, 0.996 -AmbientLightingIntensityDawn=0.7 -AmbientLightingIntensitySunrise=0.83 -AmbientLightingIntensityDay=0.83 -AmbientLightingIntensitySunset=0.81 -AmbientLightingIntensityDusk=0.75 -AmbientLightingIntensityNight=0.65 -AmbientLightingIntensityInteriorDay=0.78 -AmbientLightingIntensityInteriorNight=0.66 -[SSAO_SSIL] -UseIndirectLighting=true -ResolutionScale=1.0 -SourceTexturesScale=0.5 -SamplingQuality=0 -SamplingRange=0.15 -AOIntensity=1.0 -AOIntensityInterior=1.0 -AOAmount=0.5 -AOAmountInterior=0.5 -ILAmount=4.0 -ILAmountInterior=4.0 -AOMixingType=2 -AOMixingTypeInterior=2 diff --git a/enbseries/COPYING b/enbseries/COPYING deleted file mode 100644 index 94a9ed0..0000000 --- a/enbseries/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/enbseries/VERSION b/enbseries/VERSION deleted file mode 100644 index a370632..0000000 --- a/enbseries/VERSION +++ /dev/null @@ -1 +0,0 @@ -3.1.0 BETA "It Just Works" diff --git a/enbseries/_coldweather.ini b/enbseries/_coldweather.ini deleted file mode 100644 index 5e104ac..0000000 --- a/enbseries/_coldweather.ini +++ /dev/null @@ -1,228 +0,0 @@ -[BLOOM] -AmountDawn=0.1 -AmountSunrise=0.1 -AmountDay=0.1 -AmountSunset=0.1 -AmountDusk=0.1 -AmountNight=0.1 -AmountInteriorDay=0.1 -AmountInteriorNight=0.1 -[LENS] -AmountDawn=1.0 -AmountSunrise=1.0 -AmountDay=1.0 -AmountSunset=1.0 -AmountDusk=1.0 -AmountNight=1.0 -AmountInteriorDay=1.0 -AmountInteriorNight=1.0 -[SKY] -GradientIntensityDawn=1.0 -GradientIntensitySunrise=1.0 -GradientIntensityDay=1.0 -GradientIntensitySunset=1.0 -GradientIntensityDusk=1.0 -GradientIntensityNight=1.0 -GradientIntensityInteriorDay=1.0 -GradientIntensityInteriorNight=1.0 -GradientDesaturationDawn=0.0 -GradientDesaturationSunrise=0.0 -GradientDesaturationDay=0.0 -GradientDesaturationSunset=0.0 -GradientDesaturationDusk=0.0 -GradientDesaturationNight=0.0 -GradientDesaturationInteriorDay=0.0 -GradientDesaturationInteriorNight=0.0 -GradientTopIntensityDawn=1.0 -GradientTopIntensitySunrise=1.0 -GradientTopIntensityDay=1.0 -GradientTopIntensitySunset=1.0 -GradientTopIntensityDusk=1.0 -GradientTopIntensityNight=1.0 -GradientTopIntensityInteriorDay=1.0 -GradientTopIntensityInteriorNight=1.0 -GradientTopCurveDawn=1.0 -GradientTopCurveSunrise=1.0 -GradientTopCurveDay=1.0 -GradientTopCurveSunset=1.0 -GradientTopCurveDusk=1.0 -GradientTopCurveNight=1.0 -GradientTopCurveInteriorDay=1.0 -GradientTopCurveInteriorNight=1.0 -GradientTopColorFilterDawn=1, 1, 1 -GradientTopColorFilterSunrise=1, 1, 1 -GradientTopColorFilterDay=1, 1, 1 -GradientTopColorFilterSunset=1, 1, 1 -GradientTopColorFilterDusk=1, 1, 1 -GradientTopColorFilterNight=1, 1, 1 -GradientTopColorFilterInteriorDay=1, 1, 1 -GradientTopColorFilterInteriorNight=1, 1, 1 -GradientMiddleIntensityDawn=1.0 -GradientMiddleIntensitySunrise=1.0 -GradientMiddleIntensityDay=1.0 -GradientMiddleIntensitySunset=1.0 -GradientMiddleIntensityDusk=1.0 -GradientMiddleIntensityNight=1.0 -GradientMiddleIntensityInteriorDay=1.0 -GradientMiddleIntensityInteriorNight=1.0 -GradientMiddleCurveDawn=1.0 -GradientMiddleCurveSunrise=1.0 -GradientMiddleCurveDay=1.0 -GradientMiddleCurveSunset=1.0 -GradientMiddleCurveDusk=1.0 -GradientMiddleCurveNight=1.0 -GradientMiddleCurveInteriorDay=1.0 -GradientMiddleCurveInteriorNight=1.0 -GradientMiddleColorFilterDawn=1, 1, 1 -GradientMiddleColorFilterSunrise=1, 1, 1 -GradientMiddleColorFilterDay=1, 1, 1 -GradientMiddleColorFilterSunset=1, 1, 1 -GradientMiddleColorFilterDusk=1, 1, 1 -GradientMiddleColorFilterNight=1, 1, 1 -GradientMiddleColorFilterInteriorDay=1, 1, 1 -GradientMiddleColorFilterInteriorNight=1, 1, 1 -GradientHorizonIntensityDawn=1.0 -GradientHorizonIntensitySunrise=1.0 -GradientHorizonIntensityDay=1.0 -GradientHorizonIntensitySunset=1.0 -GradientHorizonIntensityDusk=1.0 -GradientHorizonIntensityNight=1.0 -GradientHorizonIntensityInteriorDay=1.0 -GradientHorizonIntensityInteriorNight=1.0 -GradientHorizonCurveDawn=1.0 -GradientHorizonCurveSunrise=1.0 -GradientHorizonCurveDay=1.0 -GradientHorizonCurveSunset=1.0 -GradientHorizonCurveDusk=1.0 -GradientHorizonCurveNight=1.0 -GradientHorizonCurveInteriorDay=1.0 -GradientHorizonCurveInteriorNight=1.0 -GradientHorizonColorFilterDawn=1, 1, 1 -GradientHorizonColorFilterSunrise=1, 1, 1 -GradientHorizonColorFilterDay=1, 1, 1 -GradientHorizonColorFilterSunset=1, 1, 1 -GradientHorizonColorFilterDusk=1, 1, 1 -GradientHorizonColorFilterNight=1, 1, 1 -GradientHorizonColorFilterInteriorDay=1, 1, 1 -GradientHorizonColorFilterInteriorNight=1, 1, 1 -CloudsIntensityDawn=1.0 -CloudsIntensitySunrise=1.0 -CloudsIntensityDay=1.0 -CloudsIntensitySunset=1.0 -CloudsIntensityDusk=1.0 -CloudsIntensityNight=1.0 -CloudsIntensityInteriorDay=1.0 -CloudsIntensityInteriorNight=1.0 -CloudsCurveDawn=1.0 -CloudsCurveSunrise=1.0 -CloudsCurveDay=1.0 -CloudsCurveSunset=1.0 -CloudsCurveDusk=1.0 -CloudsCurveNight=1.0 -CloudsCurveInteriorDay=1.0 -CloudsCurveInteriorNight=1.0 -CloudsDesaturationDawn=0.0 -CloudsDesaturationSunrise=0.0 -CloudsDesaturationDay=0.0 -CloudsDesaturationSunset=0.0 -CloudsDesaturationDusk=0.0 -CloudsDesaturationNight=0.0 -CloudsDesaturationInteriorDay=0.0 -CloudsDesaturationInteriorNight=0.0 -CloudsOpacityDawn=1.0 -CloudsOpacitySunrise=1.0 -CloudsOpacityDay=1.0 -CloudsOpacitySunset=1.0 -CloudsOpacityDusk=1.0 -CloudsOpacityNight=1.0 -CloudsOpacityInteriorDay=1.0 -CloudsOpacityInteriorNight=1.0 -CloudsColorFilterDawn=1, 1, 1 -CloudsColorFilterSunrise=1, 1, 1 -CloudsColorFilterDay=1, 1, 1 -CloudsColorFilterSunset=1, 1, 1 -CloudsColorFilterDusk=1, 1, 1 -CloudsColorFilterNight=1, 1, 1 -CloudsColorFilterInteriorDay=1, 1, 1 -CloudsColorFilterInteriorNight=1, 1, 1 -SunIntensityDawn=1.0 -SunIntensitySunrise=1.0 -SunIntensityDay=1.0 -SunIntensitySunset=1.0 -SunIntensityDusk=1.0 -SunIntensityNight=1.0 -SunIntensityInteriorDay=1.0 -SunIntensityInteriorNight=1.0 -SunDesaturationDawn=0.0 -SunDesaturationSunrise=0.0 -SunDesaturationDay=0.0 -SunDesaturationSunset=0.0 -SunDesaturationDusk=0.0 -SunDesaturationNight=0.0 -SunDesaturationInteriorDay=0.0 -SunDesaturationInteriorNight=0.0 -SunColorFilterDawn=1, 1, 1 -SunColorFilterSunrise=1, 1, 1 -SunColorFilterDay=1, 1, 1 -SunColorFilterSunset=1, 1, 1 -SunColorFilterDusk=1, 1, 1 -SunColorFilterNight=1, 1, 1 -SunColorFilterInteriorDay=1, 1, 1 -SunColorFilterInteriorNight=1, 1, 1 -MoonIntensityDawn=1.0 -MoonIntensitySunrise=1.0 -MoonIntensityDay=1.0 -MoonIntensitySunset=1.0 -MoonIntensityDusk=1.0 -MoonIntensityNight=1.0 -MoonIntensityInteriorDay=1.0 -MoonIntensityInteriorNight=1.0 -MoonDesaturationDawn=0.0 -MoonDesaturationSunrise=0.0 -MoonDesaturationDay=0.0 -MoonDesaturationSunset=0.0 -MoonDesaturationDusk=0.0 -MoonDesaturationNight=0.0 -MoonDesaturationInteriorDay=0.0 -MoonDesaturationInteriorNight=0.0 -MoonColorFilterDawn=1, 1, 1 -MoonColorFilterSunrise=1, 1, 1 -MoonColorFilterDay=1, 1, 1 -MoonColorFilterSunset=1, 1, 1 -MoonColorFilterDusk=1, 1, 1 -MoonColorFilterNight=1, 1, 1 -MoonColorFilterInteriorDay=1, 1, 1 -MoonColorFilterInteriorNight=1, 1, 1 -[ENVIRONMENT] -DirectLightingIntensityDawn=1.0 -DirectLightingIntensitySunrise=1.0 -DirectLightingIntensityDay=1.0 -DirectLightingIntensitySunset=1.0 -DirectLightingIntensityDusk=1.0 -DirectLightingIntensityNight=1.0 -DirectLightingIntensityInteriorDay=1.0 -DirectLightingIntensityInteriorNight=1.0 -DirectLightingDesaturationDawn=0.0 -DirectLightingDesaturationSunrise=0.0 -DirectLightingDesaturationDay=0.0 -DirectLightingDesaturationSunset=0.0 -DirectLightingDesaturationDusk=0.0 -DirectLightingDesaturationNight=0.0 -DirectLightingDesaturationInteriorDay=0.0 -DirectLightingDesaturationInteriorNight=0.0 -DirectLightingColorFilterDawn=1, 1, 1 -DirectLightingColorFilterSunrise=1, 1, 1 -DirectLightingColorFilterDay=1, 1, 1 -DirectLightingColorFilterSunset=1, 1, 1 -DirectLightingColorFilterDusk=1, 1, 1 -DirectLightingColorFilterNight=1, 1, 1 -DirectLightingColorFilterInteriorDay=1, 1, 1 -DirectLightingColorFilterInteriorNight=1, 1, 1 -AmbientLightingIntensityDawn=1.0 -AmbientLightingIntensitySunrise=1.0 -AmbientLightingIntensityDay=1.0 -AmbientLightingIntensitySunset=1.0 -AmbientLightingIntensityDusk=1.0 -AmbientLightingIntensityNight=1.0 -AmbientLightingIntensityInteriorDay=1.0 -AmbientLightingIntensityInteriorNight=1.0 diff --git a/enbseries/_hotweather.ini b/enbseries/_hotweather.ini deleted file mode 100644 index 5e104ac..0000000 --- a/enbseries/_hotweather.ini +++ /dev/null @@ -1,228 +0,0 @@ -[BLOOM] -AmountDawn=0.1 -AmountSunrise=0.1 -AmountDay=0.1 -AmountSunset=0.1 -AmountDusk=0.1 -AmountNight=0.1 -AmountInteriorDay=0.1 -AmountInteriorNight=0.1 -[LENS] -AmountDawn=1.0 -AmountSunrise=1.0 -AmountDay=1.0 -AmountSunset=1.0 -AmountDusk=1.0 -AmountNight=1.0 -AmountInteriorDay=1.0 -AmountInteriorNight=1.0 -[SKY] -GradientIntensityDawn=1.0 -GradientIntensitySunrise=1.0 -GradientIntensityDay=1.0 -GradientIntensitySunset=1.0 -GradientIntensityDusk=1.0 -GradientIntensityNight=1.0 -GradientIntensityInteriorDay=1.0 -GradientIntensityInteriorNight=1.0 -GradientDesaturationDawn=0.0 -GradientDesaturationSunrise=0.0 -GradientDesaturationDay=0.0 -GradientDesaturationSunset=0.0 -GradientDesaturationDusk=0.0 -GradientDesaturationNight=0.0 -GradientDesaturationInteriorDay=0.0 -GradientDesaturationInteriorNight=0.0 -GradientTopIntensityDawn=1.0 -GradientTopIntensitySunrise=1.0 -GradientTopIntensityDay=1.0 -GradientTopIntensitySunset=1.0 -GradientTopIntensityDusk=1.0 -GradientTopIntensityNight=1.0 -GradientTopIntensityInteriorDay=1.0 -GradientTopIntensityInteriorNight=1.0 -GradientTopCurveDawn=1.0 -GradientTopCurveSunrise=1.0 -GradientTopCurveDay=1.0 -GradientTopCurveSunset=1.0 -GradientTopCurveDusk=1.0 -GradientTopCurveNight=1.0 -GradientTopCurveInteriorDay=1.0 -GradientTopCurveInteriorNight=1.0 -GradientTopColorFilterDawn=1, 1, 1 -GradientTopColorFilterSunrise=1, 1, 1 -GradientTopColorFilterDay=1, 1, 1 -GradientTopColorFilterSunset=1, 1, 1 -GradientTopColorFilterDusk=1, 1, 1 -GradientTopColorFilterNight=1, 1, 1 -GradientTopColorFilterInteriorDay=1, 1, 1 -GradientTopColorFilterInteriorNight=1, 1, 1 -GradientMiddleIntensityDawn=1.0 -GradientMiddleIntensitySunrise=1.0 -GradientMiddleIntensityDay=1.0 -GradientMiddleIntensitySunset=1.0 -GradientMiddleIntensityDusk=1.0 -GradientMiddleIntensityNight=1.0 -GradientMiddleIntensityInteriorDay=1.0 -GradientMiddleIntensityInteriorNight=1.0 -GradientMiddleCurveDawn=1.0 -GradientMiddleCurveSunrise=1.0 -GradientMiddleCurveDay=1.0 -GradientMiddleCurveSunset=1.0 -GradientMiddleCurveDusk=1.0 -GradientMiddleCurveNight=1.0 -GradientMiddleCurveInteriorDay=1.0 -GradientMiddleCurveInteriorNight=1.0 -GradientMiddleColorFilterDawn=1, 1, 1 -GradientMiddleColorFilterSunrise=1, 1, 1 -GradientMiddleColorFilterDay=1, 1, 1 -GradientMiddleColorFilterSunset=1, 1, 1 -GradientMiddleColorFilterDusk=1, 1, 1 -GradientMiddleColorFilterNight=1, 1, 1 -GradientMiddleColorFilterInteriorDay=1, 1, 1 -GradientMiddleColorFilterInteriorNight=1, 1, 1 -GradientHorizonIntensityDawn=1.0 -GradientHorizonIntensitySunrise=1.0 -GradientHorizonIntensityDay=1.0 -GradientHorizonIntensitySunset=1.0 -GradientHorizonIntensityDusk=1.0 -GradientHorizonIntensityNight=1.0 -GradientHorizonIntensityInteriorDay=1.0 -GradientHorizonIntensityInteriorNight=1.0 -GradientHorizonCurveDawn=1.0 -GradientHorizonCurveSunrise=1.0 -GradientHorizonCurveDay=1.0 -GradientHorizonCurveSunset=1.0 -GradientHorizonCurveDusk=1.0 -GradientHorizonCurveNight=1.0 -GradientHorizonCurveInteriorDay=1.0 -GradientHorizonCurveInteriorNight=1.0 -GradientHorizonColorFilterDawn=1, 1, 1 -GradientHorizonColorFilterSunrise=1, 1, 1 -GradientHorizonColorFilterDay=1, 1, 1 -GradientHorizonColorFilterSunset=1, 1, 1 -GradientHorizonColorFilterDusk=1, 1, 1 -GradientHorizonColorFilterNight=1, 1, 1 -GradientHorizonColorFilterInteriorDay=1, 1, 1 -GradientHorizonColorFilterInteriorNight=1, 1, 1 -CloudsIntensityDawn=1.0 -CloudsIntensitySunrise=1.0 -CloudsIntensityDay=1.0 -CloudsIntensitySunset=1.0 -CloudsIntensityDusk=1.0 -CloudsIntensityNight=1.0 -CloudsIntensityInteriorDay=1.0 -CloudsIntensityInteriorNight=1.0 -CloudsCurveDawn=1.0 -CloudsCurveSunrise=1.0 -CloudsCurveDay=1.0 -CloudsCurveSunset=1.0 -CloudsCurveDusk=1.0 -CloudsCurveNight=1.0 -CloudsCurveInteriorDay=1.0 -CloudsCurveInteriorNight=1.0 -CloudsDesaturationDawn=0.0 -CloudsDesaturationSunrise=0.0 -CloudsDesaturationDay=0.0 -CloudsDesaturationSunset=0.0 -CloudsDesaturationDusk=0.0 -CloudsDesaturationNight=0.0 -CloudsDesaturationInteriorDay=0.0 -CloudsDesaturationInteriorNight=0.0 -CloudsOpacityDawn=1.0 -CloudsOpacitySunrise=1.0 -CloudsOpacityDay=1.0 -CloudsOpacitySunset=1.0 -CloudsOpacityDusk=1.0 -CloudsOpacityNight=1.0 -CloudsOpacityInteriorDay=1.0 -CloudsOpacityInteriorNight=1.0 -CloudsColorFilterDawn=1, 1, 1 -CloudsColorFilterSunrise=1, 1, 1 -CloudsColorFilterDay=1, 1, 1 -CloudsColorFilterSunset=1, 1, 1 -CloudsColorFilterDusk=1, 1, 1 -CloudsColorFilterNight=1, 1, 1 -CloudsColorFilterInteriorDay=1, 1, 1 -CloudsColorFilterInteriorNight=1, 1, 1 -SunIntensityDawn=1.0 -SunIntensitySunrise=1.0 -SunIntensityDay=1.0 -SunIntensitySunset=1.0 -SunIntensityDusk=1.0 -SunIntensityNight=1.0 -SunIntensityInteriorDay=1.0 -SunIntensityInteriorNight=1.0 -SunDesaturationDawn=0.0 -SunDesaturationSunrise=0.0 -SunDesaturationDay=0.0 -SunDesaturationSunset=0.0 -SunDesaturationDusk=0.0 -SunDesaturationNight=0.0 -SunDesaturationInteriorDay=0.0 -SunDesaturationInteriorNight=0.0 -SunColorFilterDawn=1, 1, 1 -SunColorFilterSunrise=1, 1, 1 -SunColorFilterDay=1, 1, 1 -SunColorFilterSunset=1, 1, 1 -SunColorFilterDusk=1, 1, 1 -SunColorFilterNight=1, 1, 1 -SunColorFilterInteriorDay=1, 1, 1 -SunColorFilterInteriorNight=1, 1, 1 -MoonIntensityDawn=1.0 -MoonIntensitySunrise=1.0 -MoonIntensityDay=1.0 -MoonIntensitySunset=1.0 -MoonIntensityDusk=1.0 -MoonIntensityNight=1.0 -MoonIntensityInteriorDay=1.0 -MoonIntensityInteriorNight=1.0 -MoonDesaturationDawn=0.0 -MoonDesaturationSunrise=0.0 -MoonDesaturationDay=0.0 -MoonDesaturationSunset=0.0 -MoonDesaturationDusk=0.0 -MoonDesaturationNight=0.0 -MoonDesaturationInteriorDay=0.0 -MoonDesaturationInteriorNight=0.0 -MoonColorFilterDawn=1, 1, 1 -MoonColorFilterSunrise=1, 1, 1 -MoonColorFilterDay=1, 1, 1 -MoonColorFilterSunset=1, 1, 1 -MoonColorFilterDusk=1, 1, 1 -MoonColorFilterNight=1, 1, 1 -MoonColorFilterInteriorDay=1, 1, 1 -MoonColorFilterInteriorNight=1, 1, 1 -[ENVIRONMENT] -DirectLightingIntensityDawn=1.0 -DirectLightingIntensitySunrise=1.0 -DirectLightingIntensityDay=1.0 -DirectLightingIntensitySunset=1.0 -DirectLightingIntensityDusk=1.0 -DirectLightingIntensityNight=1.0 -DirectLightingIntensityInteriorDay=1.0 -DirectLightingIntensityInteriorNight=1.0 -DirectLightingDesaturationDawn=0.0 -DirectLightingDesaturationSunrise=0.0 -DirectLightingDesaturationDay=0.0 -DirectLightingDesaturationSunset=0.0 -DirectLightingDesaturationDusk=0.0 -DirectLightingDesaturationNight=0.0 -DirectLightingDesaturationInteriorDay=0.0 -DirectLightingDesaturationInteriorNight=0.0 -DirectLightingColorFilterDawn=1, 1, 1 -DirectLightingColorFilterSunrise=1, 1, 1 -DirectLightingColorFilterDay=1, 1, 1 -DirectLightingColorFilterSunset=1, 1, 1 -DirectLightingColorFilterDusk=1, 1, 1 -DirectLightingColorFilterNight=1, 1, 1 -DirectLightingColorFilterInteriorDay=1, 1, 1 -DirectLightingColorFilterInteriorNight=1, 1, 1 -AmbientLightingIntensityDawn=1.0 -AmbientLightingIntensitySunrise=1.0 -AmbientLightingIntensityDay=1.0 -AmbientLightingIntensitySunset=1.0 -AmbientLightingIntensityDusk=1.0 -AmbientLightingIntensityNight=1.0 -AmbientLightingIntensityInteriorDay=1.0 -AmbientLightingIntensityInteriorNight=1.0 diff --git a/enbseries/_weatherlist.ini b/enbseries/_weatherlist.ini deleted file mode 100644 index 40cbb94..0000000 --- a/enbseries/_weatherlist.ini +++ /dev/null @@ -1,200 +0,0 @@ -[WEATHER001] -FileName=_hotweather.ini -WeatherIDs=81a, 12f89, 2e7ab, a6858, d9329, 10199f, 105941, 10a230, 10a233, 10a237, 10a23a, 10a23b, 10a23f, 10a240, 10a243, 10a7a5, 10a7a8, 10d9ec, 10e1e3, 10e1e4, 10e1e5, 10e1e6, 10e1e9, 10e1ea, 10e1eb, 10e1ec, 10e1ed, 10e1ee, 10e1f1, 10e1f2, 18471, 31ac0, 32336, 374b8, 374b9, 5b29c, 5b29d, 5b2a0, 1760e, 1760f, 19bbe, 19bbf, 19bc0, 1bc0d, 25d8d, 2e982, 2e983, 3ab68, 12eab9, 7761f -[WEATHER002] -FileName=_coldweather.ini -WeatherIDs=4d7fb, aee84, 4d7fb, c821e, c821f, c8220, c8221, d4886, ecc96, 104ab4, 10a234, 10a235, 10a236, 10da13, 10e1e7, 10e1e8, 10fef8, 1407, 959f, 10e0b, 10e0e, 10e0f, 10e10, 14551, 18dbb, 18dbc, 18dbd, 19599, 195a0, 1d760, 374ba, 21311 -[WEATHER003] -FileName= -[WEATHER004] -FileName= -[WEATHER005] -FileName= -[WEATHER006] -FileName= -[WEATHER007] -FileName= -[WEATHER008] -FileName= -[WEATHER009] -FileName= -[WEATHER010] -FileName= -[WEATHER011] -FileName= -[WEATHER012] -FileName= -[WEATHER013] -FileName= -[WEATHER014] -FileName= -[WEATHER015] -FileName= -[WEATHER016] -FileName= -[WEATHER017] -FileName= -[WEATHER018] -FileName= -[WEATHER019] -FileName= -[WEATHER020] -FileName= -[WEATHER021] -FileName= -[WEATHER022] -FileName= -[WEATHER023] -FileName= -[WEATHER024] -FileName= -[WEATHER025] -FileName= -[WEATHER026] -FileName= -[WEATHER027] -FileName= -[WEATHER028] -FileName= -[WEATHER029] -FileName= -[WEATHER030] -FileName= -[WEATHER031] -FileName= -[WEATHER032] -FileName= -[WEATHER033] -FileName= -[WEATHER034] -FileName= -[WEATHER035] -FileName= -[WEATHER036] -FileName= -[WEATHER037] -FileName= -[WEATHER038] -FileName= -[WEATHER039] -FileName= -[WEATHER040] -FileName= -[WEATHER041] -FileName= -[WEATHER042] -FileName= -[WEATHER043] -FileName= -[WEATHER044] -FileName= -[WEATHER045] -FileName= -[WEATHER046] -FileName= -[WEATHER047] -FileName= -[WEATHER048] -FileName= -[WEATHER049] -FileName= -[WEATHER050] -FileName= -[WEATHER051] -FileName= -[WEATHER052] -FileName= -[WEATHER053] -FileName= -[WEATHER054] -FileName= -[WEATHER055] -FileName= -[WEATHER056] -FileName= -[WEATHER057] -FileName= -[WEATHER058] -FileName= -[WEATHER059] -FileName= -[WEATHER060] -FileName= -[WEATHER061] -FileName= -[WEATHER062] -FileName= -[WEATHER063] -FileName= -[WEATHER064] -FileName= -[WEATHER065] -FileName= -[WEATHER066] -FileName= -[WEATHER067] -FileName= -[WEATHER068] -FileName= -[WEATHER069] -FileName= -[WEATHER070] -FileName= -[WEATHER071] -FileName= -[WEATHER072] -FileName= -[WEATHER073] -FileName= -[WEATHER074] -FileName= -[WEATHER075] -FileName= -[WEATHER076] -FileName= -[WEATHER077] -FileName= -[WEATHER078] -FileName= -[WEATHER079] -FileName= -[WEATHER080] -FileName= -[WEATHER081] -FileName= -[WEATHER082] -FileName= -[WEATHER083] -FileName= -[WEATHER084] -FileName= -[WEATHER085] -FileName= -[WEATHER086] -FileName= -[WEATHER087] -FileName= -[WEATHER088] -FileName= -[WEATHER089] -FileName= -[WEATHER090] -FileName= -[WEATHER091] -FileName= -[WEATHER092] -FileName= -[WEATHER093] -FileName= -[WEATHER094] -FileName= -[WEATHER095] -FileName= -[WEATHER096] -FileName= -[WEATHER097] -FileName= -[WEATHER098] -FileName= -[WEATHER099] -FileName= diff --git a/enbseries/enbadaptation.fx b/enbseries/enbadaptation.fx deleted file mode 100644 index 4b0beef..0000000 --- a/enbseries/enbadaptation.fx +++ /dev/null @@ -1,100 +0,0 @@ -/* - enbadaptation.fx : MariENB3 eye adaptation shader. - (C)2016 Marisa Kirisame, UnSX Team. - Part of MariENB3, the personal ENB of Marisa for Fallout 4. - Released under the GNU GPLv3 (or later). -*/ -#include "menbglobaldefs.fx" - -float4 AdaptationParameters; - -Texture2D TextureCurrent; -Texture2D TexturePrevious; - -SamplerState Sampler0 -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Clamp; - AddressV = Clamp; -}; - -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_OUTPUT_POST -{ - float4 pos : SV_POSITION; - float2 txcoord0 : TEXCOORD0; -}; - -VS_OUTPUT_POST VS_Quad( VS_INPUT_POST IN ) -{ - VS_OUTPUT_POST OUT; - OUT.pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord0.xy = IN.txcoord.xy; - return OUT; -} - -/* helper functions */ -/* photometric */ -#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722)) -/* CCIR601 */ -//#define luminance(x) dot(x,float3(0.299,0.587,0.114)) - -float4 PS_Downsample( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord0.xy; - float ssz = 1.0/16.0; - float4 res = float4(0,0,0,0); - int x, y; - [unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ ) - res += TextureCurrent.Sample(Sampler0,coord+float2(x,y)*ssz); - res /= 256.0; - res = luminance(res.rgb); - res.w = 1.0; - return res; -} - -float4 PS_Adaptation(VS_OUTPUT_POST IN, float4 v0 : SV_Position0) : SV_Target -{ - float2 coord = IN.txcoord0.xy; - float prev = TexturePrevious.Sample(Sampler0,coord).x; - float ssz = 1.0/16.0; - float4 res = float4(0,0,0,0); - float smpmax = 0.0, smp; - int x, y; - [unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ ) - { - smp = TextureCurrent.Sample(Sampler0,coord+float2(x,y)*ssz).x; - smpmax = max(smpmax,smp); - res += smp; - } - res /= 256.0; - res = lerp(res,smpmax,AdaptationParameters.z); - res = lerp(prev,res,AdaptationParameters.w); - res = clamp(res,0.0,16384.0); - float vclip = clamp(res.x,AdaptationParameters.x, - AdaptationParameters.y); - res *= vclip/(res+0.000000001); - res.w = 1.0; - return res; -} - -technique11 Downsample -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsample())); - } -} -technique11 Draw -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Adaptation())); - } -} diff --git a/enbseries/enbadaptation.fx.ini b/enbseries/enbadaptation.fx.ini deleted file mode 100644 index 5bcee41..0000000 --- a/enbseries/enbadaptation.fx.ini +++ /dev/null @@ -1,2 +0,0 @@ -[ENBADAPTATION.FX] -TECHNIQUE=0 diff --git a/enbseries/enbbloom.fx b/enbseries/enbbloom.fx deleted file mode 100644 index 7f2a169..0000000 --- a/enbseries/enbbloom.fx +++ /dev/null @@ -1,938 +0,0 @@ -/* - enbbloom.fx : MariENB3 bloom shader. - (C)2016 Marisa Kirisame, UnSX Team. - Part of MariENB3, the personal ENB of Marisa for Fallout 4. - Released under the GNU GPLv3 (or later). -*/ -#include "menbglobaldefs.fx" - -string str_bloompre = "Bloom Prepass"; -/* bloom intensity */ -float bloomintensity_n -< - string UIName = "Bloom Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bloomintensity_d -< - string UIName = "Bloom Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bloomintensity_i -< - string UIName = "Bloom Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -/* bloom power (contrast) */ -float bloompower_n -< - string UIName = "Bloom Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bloompower_d -< - string UIName = "Bloom Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bloompower_i -< - string UIName = "Bloom Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -/* bloom saturation */ -float bloomsaturation_n -< - string UIName = "Bloom Saturation Night"; - string UIWidget = "Spinner"; -> = {0.75}; -float bloomsaturation_d -< - string UIName = "Bloom Saturation Day"; - string UIWidget = "Spinner"; -> = {0.75}; -float bloomsaturation_i -< - string UIName = "Bloom Saturation Interior"; - string UIWidget = "Spinner"; -> = {0.75}; -/* bloom offset (negative values keep dark areas from muddying up) */ -float bloombump_n -< - string UIName = "Bloom Offset Night"; - string UIWidget = "Spinner"; -> = {-0.5}; -float bloombump_d -< - string UIName = "Bloom Offset Day"; - string UIWidget = "Spinner"; -> = {-0.5}; -float bloombump_i -< - string UIName = "Bloom Offset Interior"; - string UIWidget = "Spinner"; -> = {-0.5}; -/* bloom cap (maximum brightness samples can have) */ -float bloomcap_n -< - string UIName = "Bloom Intensity Cap Night"; - string UIWidget = "Spinner"; -> = {20.0}; -float bloomcap_d -< - string UIName = "Bloom Intensity Cap Day"; - string UIWidget = "Spinner"; -> = {20.0}; -float bloomcap_i -< - string UIName = "Bloom Intensity Cap Interior"; - string UIWidget = "Spinner"; -> = {20.0}; -string str_bloomper = "Bloom Per-pass"; -/* bloom blur radius */ -float bloomradiusx -< - string UIName = "Bloom Blur Radius X"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bloomradiusy -< - string UIName = "Bloom Blur Radius Y"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bloomtheta -< - string UIName = "Bloom Angle"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.0}; -/* bloom tint/blueshift parameters */ -float3 blu_n -< - string UIName = "Blue Shift Night"; - string UIWidget = "Color"; -> = {0.2,0.6,1.0}; -float3 blu_d -< - string UIName = "Blue Shift Day"; - string UIWidget = "Color"; -> = {0.2,0.6,1.0}; -float3 blu_i -< - string UIName = "Blue Shift Interior"; - string UIWidget = "Color"; -> = {0.2,0.6,1.0}; -float bsi_n -< - string UIName = "Blue Shift Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.5}; -float bsi_d -< - string UIName = "Blue Shift Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.5}; -float bsi_i -< - string UIName = "Blue Shift Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.5}; -float bslp -< - string UIName = "Blue Shift Luminance Factor Per-pass"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.22}; -float bsbp -< - string UIName = "Blue Shift Color Factor Per-pass"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.33}; -/* anamorphic bloom (very intensive) */ -string str_bloomalf = "Anamorphic Bloom"; -bool alfenable -< - string UIName = "Enable Anamorphic Bloom"; - string UIWidget = "Checkbox"; -> = {true}; -float fbl_n -< - string UIName = "Anamorphic Bloom Blend Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.75}; -float fbl_d -< - string UIName = "Anamorphic Bloom Blend Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.75}; -float fbl_i -< - string UIName = "Anamorphic Bloom Blend Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.75}; -float3 flu_n -< - string UIName = "Anamorphic Bloom Blue Shift Night"; - string UIWidget = "Color"; -> = {0.4,0.1,1.0}; -float3 flu_d -< - string UIName = "Anamorphic Bloom Blue Shift Day"; - string UIWidget = "Color"; -> = {0.4,0.1,1.0}; -float3 flu_i -< - string UIName = "Anamorphic Bloom Blue Shift Interior"; - string UIWidget = "Color"; -> = {0.4,0.1,1.0}; -float fsi_n -< - string UIName = "Anamorphic Bloom Blue Shift Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float fsi_d -< - string UIName = "Anamorphic Bloom Blue Shift Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float fsi_i -< - string UIName = "Anamorphic Bloom Blue Shift Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float fpw_n -< - string UIName = "Anamorphic Bloom Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float fpw_d -< - string UIName = "Anamorphic Bloom Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float fpw_i -< - string UIName = "Anamorphic Bloom Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float flen -< - string UIName = "Anamorphic Bloom Radius Multiplier"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {4.0}; -string str_bloompost = "Bloom Post-pass"; -/* bloom mix factors */ -float bloommix1 -< - string UIName = "Bloom Pass 1 Blend"; - string UIWidget = "Spinner"; -> = {0.75}; -float bloommix2 -< - string UIName = "Bloom Pass 2 Blend"; - string UIWidget = "Spinner"; -> = {0.8}; -float bloommix3 -< - string UIName = "Bloom Pass 3 Blend"; - string UIWidget = "Spinner"; -> = {0.85}; -float bloommix4 -< - string UIName = "Bloom Pass 4 Blend"; - string UIWidget = "Spinner"; -> = {0.9}; -float bloommix5 -< - string UIName = "Bloom Pass 5 Blend"; - string UIWidget = "Spinner"; -> = {0.95}; -float bloommix6 -< - string UIName = "Bloom Pass 6 Blend"; - string UIWidget = "Spinner"; -> = {1.0}; -float bloommixs -< - string UIName = "Bloom Single Pass Blend"; - string UIWidget = "Spinner"; -> = {1.0}; -string str_bloomdirt = "Lens Dirt"; -bool dirtenable -< - string UIName = "Enable Lens Dirt"; - string UIWidget = "Checkbox"; -> = {false}; -float dirtmix1 -< - string UIName = "Dirt Pass 1 Blend"; - string UIWidget = "Spinner"; -> = {0.0}; -float dirtmix2 -< - string UIName = "Dirt Pass 2 Blend"; - string UIWidget = "Spinner"; -> = {0.1}; -float dirtmix3 -< - string UIName = "Dirt Pass 3 Blend"; - string UIWidget = "Spinner"; -> = {1.2}; -float dirtmix4 -< - string UIName = "Dirt Pass 4 Blend"; - string UIWidget = "Spinner"; -> = {0.5}; -float dirtmix5 -< - string UIName = "Dirt Pass 5 Blend"; - string UIWidget = "Spinner"; -> = {0.25}; -float dirtmix6 -< - string UIName = "Dirt Pass 6 Blend"; - string UIWidget = "Spinner"; -> = {0.1}; -float dirtmixs -< - string UIName = "Dirt Single Pass Blend"; - string UIWidget = "Spinner"; -> = {1.0}; -float dirtsaturation -< - string UIName = "Dirt Saturation"; - string UIWidget = "Spinner"; -> = {1.0}; -float ldirtpow -< - string UIName = "Dirt Contrast"; - string UIWidget = "Spinner"; -> = {1.25}; -float ldirtfactor -< - string UIName = "Dirt Factor"; - string UIWidget = "Spinner"; -> = {1.5}; - - -/* gaussian blur matrices */ -/* radius: 4, std dev: 1.5 */ -/*static const float gauss4[4] = -{ - 0.270682, 0.216745, 0.111281, 0.036633 -};*/ -/* radius: 8, std dev: 3 */ -static const float gauss8[8] = -{ - 0.134598, 0.127325, 0.107778, 0.081638, - 0.055335, 0.033562, 0.018216, 0.008847 -}; -/* radius: 40, std dev: 15 */ -/*static const float gauss40[40] = -{ - 0.026823, 0.026763, 0.026585, 0.026291, - 0.025886, 0.025373, 0.024760, 0.024055, - 0.023267, 0.022404, 0.021478, 0.020499, - 0.019477, 0.018425, 0.017352, 0.016269, - 0.015186, 0.014112, 0.013056, 0.012025, - 0.011027, 0.010067, 0.009149, 0.008279, - 0.007458, 0.006688, 0.005972, 0.005308, - 0.004697, 0.004139, 0.003630, 0.003170, - 0.002756, 0.002385, 0.002055, 0.001763, - 0.001506, 0.001280, 0.001084, 0.000913 -};*/ -/* radius: 80, std dev: 30 */ -static const float gauss80[80] = -{ - 0.013406, 0.013398, 0.013376, 0.013339, 0.013287, 0.013221, - 0.013140, 0.013046, 0.012938, 0.012816, 0.012681, 0.012534, - 0.012375, 0.012205, 0.012023, 0.011831, 0.011629, 0.011417, - 0.011198, 0.010970, 0.010735, 0.010493, 0.010245, 0.009992, - 0.009735, 0.009473, 0.009209, 0.008941, 0.008672, 0.008402, - 0.008131, 0.007860, 0.007590, 0.007321, 0.007053, 0.006788, - 0.006525, 0.006266, 0.006010, 0.005759, 0.005511, 0.005269, - 0.005031, 0.004799, 0.004573, 0.004352, 0.004138, 0.003929, - 0.003727, 0.003532, 0.003343, 0.003160, 0.002985, 0.002816, - 0.002653, 0.002497, 0.002348, 0.002205, 0.002068, 0.001938, - 0.001814, 0.001696, 0.001584, 0.001478, 0.001377, 0.001282, - 0.001192, 0.001107, 0.001027, 0.000952, 0.000881, 0.000815, - 0.000753, 0.000694, 0.000640, 0.000589, 0.000542, 0.000497, - 0.000456, 0.000418 -}; -/* mathematical constants */ -static const float pi = 3.1415926535898; - -float4 ScreenSize; -float ENightDayFactor; -float EInteriorFactor; -float4 TimeOfDay1; -float4 TimeOfDay2; - -Texture2D TextureDownsampled; -Texture2D TextureColor; - -Texture2D RenderTarget1024; -Texture2D RenderTarget512; -Texture2D RenderTarget256; -Texture2D RenderTarget128; -Texture2D RenderTarget64; -Texture2D RenderTarget32; -Texture2D RenderTargetRGBA64F; - -Texture2D TextureLens -< -#ifdef LENSDIRT_DDS - string ResourceName = "menblens.dds"; -#else - string ResourceName = "menblens.png"; -#endif ->; - -SamplerState Sampler -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Border; - AddressV = Border; -}; -SamplerState Sampler2 -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Clamp; - AddressV = Clamp; -}; - -SamplerState SamplerLens -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Mirror; - AddressV = Mirror; -}; - -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_OUTPUT_POST -{ - float4 pos : SV_POSITION; - float2 txcoord0 : TEXCOORD0; -}; - -VS_OUTPUT_POST VS_Quad(VS_INPUT_POST IN) -{ - VS_OUTPUT_POST OUT; - OUT.pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord0.xy = IN.txcoord.xy; - return OUT; -} - -/* helper functions */ -/* photometric */ -#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722)) -/* CCIR601 */ -//#define luminance(x) dot(x,float3(0.299,0.587,0.114)) -float3 rgb2hsv( float3 c ) -{ - float4 K = float4(0.0,-1.0/3.0,2.0/3.0,-1.0); - float4 p = (c.g=0.0)&&(pp.x<1.0))?gauss80[abs(i)]:0.0; - } - res *= 1.0/sum; - float3 flu = tod_ind(flu); - float fsi = tod_ind(fsi); - float lm = max(0,luminance(res.rgb)-luminance(base.rgb))*fsi; - lm = lm/(1.0+lm); - res.rgb *= lerp(1.0,flu,lm); - float fbl = tod_ind(fbl); - float fpw = tod_ind(fpw); - res.rgb = pow(max(0,res.rgb),fpw)*fbl; - return res; -} - -/* blur step goes here */ -float4 PS_HorizontalBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0, - uniform Texture2D intex, uniform float insz ) : SV_Target -{ - float2 coord = IN.txcoord0.xy; - float4 res = float4(0.0,0.0,0.0,0.0); - int i; - float sum = 0.0; - float2 pp; - float2 dir = float2(cos(bloomtheta*2*pi),sin(bloomtheta*2*pi)) - *bloomradiusx/insz; - [unroll] for ( i=-7; i<=7; i++ ) - { - pp = coord+dir*i; - res += gauss8[abs(i)]*intex.Sample(Sampler,pp); - sum += ((pp.x>=0.0)&&(pp.x<1.0))?gauss8[abs(i)]:0.0; - } - res *= 1.0/sum; - if ( alfenable ) res += Anamorphic(coord,intex,insz); - res.a = 1.0; - return res; -} - -/* This is the vertical step */ -float4 PS_VerticalBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0, - uniform Texture2D intex, uniform float insz, - uniform float bpass ) : SV_Target -{ - - float2 coord = IN.txcoord0.xy; - float4 res = float4(0.0,0.0,0.0,0.0), - base = RenderTargetRGBA64F.Sample(Sampler,coord); - int i; - float sum = 0.0; - float2 pp; - float2 dir = float2(sin(bloomtheta*2*pi),-cos(bloomtheta*2*pi)) - *bloomradiusy/insz; - [unroll] for ( i=-7; i<=7; i++ ) - { - pp = coord+dir*i; - res += gauss8[abs(i)]*intex.Sample(Sampler,pp); - sum += ((pp.y>=0.0)&&(pp.y<1.0))?gauss8[abs(i)]:0.0; - } - res *= 1.0/sum; - float3 blu = tod_ind(blu); - float bsi = tod_ind(bsi); - float lm = max(0,luminance(res.rgb)-luminance(base.rgb))*bsi; - lm = lm/(1.0+lm); - lm *= 1.0-saturate(bpass*bslp); - blu = saturate(blu+bpass*bsbp); - res.rgb *= lerp(1.0,blu,lm); - res.a = 1.0; - return res; -} - -/* end pass, mix it all up */ -float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord0.xy; - float4 res = bloommix1*RenderTarget1024.Sample(Sampler2,coord); - res += bloommix2*RenderTarget512.Sample(Sampler2,coord); - res += bloommix3*RenderTarget256.Sample(Sampler2,coord); - res += bloommix4*RenderTarget128.Sample(Sampler2,coord); - res += bloommix5*RenderTarget64.Sample(Sampler2,coord); - res += bloommix6*RenderTarget32.Sample(Sampler2,coord); - res.rgb /= 6.0; - res.rgb = clamp(res.rgb,0.0,32768.0); - res.a = 1.0; - if ( !dirtenable ) return res; - /* crappy lens filter, useful when playing characters with glasses */ - float2 ccoord = coord; -#ifdef ASPECT_LENSDIRT - ccoord.y = (coord.y-0.5)*ScreenSize.w+0.5; -#endif - float4 crap = TextureLens.Sample(SamplerLens,ccoord); - float4 mud = dirtmix1*RenderTarget1024.Sample(Sampler2,coord); - mud += dirtmix2*RenderTarget512.Sample(Sampler2,coord); - mud += dirtmix3*RenderTarget256.Sample(Sampler2,coord); - mud += dirtmix4*RenderTarget128.Sample(Sampler2,coord); - mud += dirtmix5*RenderTarget64.Sample(Sampler2,coord); - mud += dirtmix6*RenderTarget32.Sample(Sampler2,coord); - mud.rgb /= 6.0; - mud.rgb = clamp(mud.rgb,0.0,32768.0); - float mudmax = luminance(mud.rgb); - float mudn = max(mudmax/(1.0+mudmax),0.0); - mudn = pow(mudn,max(ldirtpow-crap.a,0.0)); - mud.rgb *= mudn*ldirtfactor*crap.rgb; - res += max(mud,0.0); - res.a = 1.0; - return res; -} - -float4 PS_SPostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord0.xy; - float4 res = bloommixs*RenderTarget128.Sample(Sampler2,coord); - res.rgb = clamp(res.rgb,0.0,32768.0); - res.a = 1.0; - if ( !dirtenable ) return res; - /* crappy lens filter, useful when playing characters with glasses */ - float2 ccoord = coord; -#ifdef ASPECT_LENSDIRT - ccoord.y = (coord.y-0.5)*ScreenSize.w+0.5; -#endif - float4 crap = TextureLens.Sample(SamplerLens,ccoord); - float4 mud = dirtmixs*RenderTarget32.Sample(Sampler2,coord); - float3 hsv = rgb2hsv(mud.rgb); - hsv.y = clamp(hsv.y*dirtsaturation,0.0,1.0); - mud.rgb = clamp(hsv2rgb(hsv),0.0,32768.0); - float mudmax = luminance(mud.rgb); - float mudn = max(mudmax/(1.0+mudmax),0.0); - mudn = pow(mudn,max(ldirtpow-crap.a,0.0)); - mud.rgb *= mudn*ldirtfactor*crap.rgb; - res += max(mud,0.0); - res.a = 1.0; - return res; -} - -technique11 BloomSimplePass -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_PrePass())); - } -} - -technique11 BloomSimplePass1 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTargetRGBA64F,0.0))); - } -} -technique11 BloomSimplePass2 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget1024,1024.0))); - } -} -technique11 BloomSimplePass3 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget512,512.0))); - } -} -technique11 BloomSimplePass4 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget256,256.0))); - } -} -technique11 BloomSimplePass5 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget128,128.0))); - } -} -technique11 BloomSimplePass6 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget64,64.0))); - } -} - -technique11 BloomSimplePass7 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget128,128.0))); - } -} -technique11 BloomSimplePass8 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,128.0,3.0))); - } -} - -technique11 BloomSimplePass9 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget32,32.0))); - } -} -technique11 BloomSimplePass10 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,32.0,5.0))); - } -} - -technique11 BloomSimplePass11 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_SPostPass())); - } -} - -technique11 BloomPass -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_PrePass())); - } -} - -technique11 BloomPass1 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTargetRGBA64F,0.0))); - } -} -technique11 BloomPass2 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget1024,1024.0))); - } -} -technique11 BloomPass3 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget512,512.0))); - } -} -technique11 BloomPass4 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget256,256.0))); - } -} -technique11 BloomPass5 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget128,128.0))); - } -} -technique11 BloomPass6 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget64,64.0))); - } -} - -technique11 BloomPass7 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget1024,1024.0))); - } -} -technique11 BloomPass8 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,1024.0,0.0))); - } -} - -technique11 BloomPass9 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget512,512.0))); - } -} -technique11 BloomPass10 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,512.0,1.0))); - } -} - -technique11 BloomPass11 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget256,256.0))); - } -} -technique11 BloomPass12 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,256.0,2.0))); - } -} - -technique11 BloomPass13 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget128,128.0))); - } -} -technique11 BloomPass14 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,128.0,3.0))); - } -} - -technique11 BloomPass15 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget64,64.0))); - } -} -technique11 BloomPass16 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,64.0,4.0))); - } -} - -technique11 BloomPass17 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget32,32.0))); - } -} -technique11 BloomPass18 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,32.0,5.0))); - } -} - -technique11 BloomPass19 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_PostPass())); - } -} diff --git a/enbseries/enbbloom.fx.ini b/enbseries/enbbloom.fx.ini deleted file mode 100644 index 0bb39ed..0000000 --- a/enbseries/enbbloom.fx.ini +++ /dev/null @@ -1,103 +0,0 @@ -[ENBBLOOM.FX] -TECHNIQUE=2 -Bloom Intensity Night=0.79 -Bloom Intensity Day=0.73 -Bloom Intensity Interior=0.86 -Bloom Contrast Night=1.27 -Bloom Contrast Day=1.42 -Bloom Contrast Interior=1.36 -Bloom Saturation Night=1.21 -Bloom Saturation Day=1.18 -Bloom Saturation Interior=1.24 -Bloom Offset Night=-0.07 -Bloom Offset Day=-0.11 -Bloom Offset Interior=-0.08 -Bloom Intensity Cap Night=20.0 -Bloom Intensity Cap Day=20.0 -Bloom Intensity Cap Interior=20.0 -Bloom Blur Radius=1.0 -Blue Shift Night=0.294, 0.424, 0.859 -Blue Shift Day=0.22, 0.537, 0.855 -Blue Shift Interior=0.337, 0.525, 0.878 -Blue Shift Intensity Night=0.32 -Blue Shift Intensity Day=0.45 -Blue Shift Intensity Interior=0.38 -Blue Shift Luminance Factor Per-pass=0.41 -Blue Shift Color Factor Per-pass=0.92 -Enable Anamorphic Bloom=true -Anamorphic Bloom Blend Night=0.75 -Anamorphic Bloom Blend Day=0.68 -Anamorphic Bloom Blend Interior=0.79 -Anamorphic Bloom Blue Shift Night=0.553, 0.404, 0.851 -Anamorphic Bloom Blue Shift Day=0.424, 0.384, 0.831 -Anamorphic Bloom Blue Shift Interior=0.537, 0.475, 0.89 -Anamorphic Bloom Blue Shift Intensity Night=1.33 -Anamorphic Bloom Blue Shift Intensity Day=1.2 -Anamorphic Bloom Blue Shift Intensity Interior=1.52 -Anamorphic Bloom Contrast Night=1.13 -Anamorphic Bloom Contrast Day=1.1 -Anamorphic Bloom Contrast Interior=1.19 -Anamorphic Bloom Radius Multiplier=1.0 -Bloom Intensity Interior Night=1.33 -Bloom Intensity Interior Day=1.26 -Bloom Contrast Interior Night=0.73 -Bloom Contrast Interior Day=0.75 -Bloom Saturation Interior Night=0.81 -Bloom Saturation Interior Day=0.75 -Bloom Offset Interior Night=-0.43 -Bloom Offset Interior Day=-0.42 -Bloom Intensity Cap Interior Night=100.0 -Bloom Intensity Cap Interior Day=100.0 -Blue Shift Night Red=0.2 -Blue Shift Night Green=0.6 -Blue Shift Night Blue=1.0 -Blue Shift Day Red=0.2 -Blue Shift Day Green=0.6 -Blue Shift Day Blue=1.0 -Blue Shift Interior Night Red=0.2 -Blue Shift Interior Night Green=0.6 -Blue Shift Interior Night Blue=1.0 -Blue Shift Interior Day Red=0.2 -Blue Shift Interior Day Green=0.6 -Blue Shift Interior Day Blue=1.0 -Blue Shift Intensity Interior Night=0.59 -Blue Shift Intensity Interior Day=0.48 -Anamorphic Bloom Blend Interior Night=0.69 -Anamorphic Bloom Blend Interior Day=0.63 -Anamorphic Bloom Blue Shift Night Red=0.4 -Anamorphic Bloom Blue Shift Night Green=0.1 -Anamorphic Bloom Blue Shift Night Blue=1.0 -Anamorphic Bloom Blue Shift Day Red=0.5 -Anamorphic Bloom Blue Shift Day Green=0.1 -Anamorphic Bloom Blue Shift Day Blue=1.0 -Anamorphic Bloom Blue Shift Interior Night Red=0.5 -Anamorphic Bloom Blue Shift Interior Night Green=0.1 -Anamorphic Bloom Blue Shift Interior Night Blue=1.0 -Anamorphic Bloom Blue Shift Interior Day Red=0.5 -Anamorphic Bloom Blue Shift Interior Day Green=0.1 -Anamorphic Bloom Blue Shift Interior Day Blue=1.0 -Anamorphic Bloom Blue Shift Interior Night=1.86 -Anamorphic Bloom Blue Shift Interior Day=1.86 -Anamorphic Bloom Contrast Interior Night=1.12 -Anamorphic Bloom Contrast Interior Day=1.22 -Bloom Pass 1 Blend=0.97 -Bloom Pass 2 Blend=0.86 -Bloom Pass 3 Blend=0.79 -Bloom Pass 4 Blend=0.63 -Bloom Pass 5 Blend=0.49 -Bloom Pass 6 Blend=0.34 -Enable Lens Dirt=false -Dirt Pass 1 Blend=0.03 -Dirt Pass 2 Blend=0.12 -Dirt Pass 3 Blend=0.24 -Dirt Pass 4 Blend=0.4 -Dirt Pass 5 Blend=0.67 -Dirt Pass 6 Blend=5.15 -Dirt Contrast=1.17 -Dirt Factor=2.91 -Bloom Blur Radius X=1.0 -Bloom Blur Radius Y=2.0 -Bloom Single Pass Blend=1.0 -Dirt Single Pass Blend=1.13 -Bloom Angle=0.0 -Dirt Saturation=0.68 diff --git a/enbseries/enbdepthoffield.fx b/enbseries/enbdepthoffield.fx deleted file mode 100644 index 3b3e351..0000000 --- a/enbseries/enbdepthoffield.fx +++ /dev/null @@ -1,1554 +0,0 @@ -/* - enbdepthoffield.fx : MariENB3 prepass shaders. - (C)2016 Marisa Kirisame, UnSX Team. - Part of MariENB3, the personal ENB of Marisa for Fallout 4. - Released under the GNU GPLv3 (or later). -*/ -#include "menbglobaldefs.fx" - -string str_misc = "Miscellaneous"; -/* fixed resolution, keeps blur filters at a consistent internal resolution */ -int2 fixed -< - string UIName = "Fixed Resolution"; - string UIWidget = "Vector"; - int2 UIMin = {0,0}; -> = {1920,1080}; -float cutoff -< - string UIName = "Depth Cutoff"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1000000.0; -> = {999949.0}; -float zNear -< - string UIName = "Near Z"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.05}; -float zFar -< - string UIName = "Far Z"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {3098.0}; -string str_dist = "Distortion Filters"; -float distcha -< - string UIName = "Distortion Chromatic Aberration"; - string UIWidget = "Spinner"; -> = {10.0}; -bool waterenable -< - string UIName = "Enable Underwater"; - string UIWidget = "Checkbox"; -> = {false}; -float3 uwm -< - string UIName = "Underwater Frequency"; - string UIWidget = "Vector"; - float3 UIMin = {0.0,0.0,0.0}; -> = {1.4,1.6,1.4}; -float3 uwf -< - string UIName = "Underwater Speed"; - string UIWidget = "Vector"; - float3 UIMin = {0.0,0.0,0.0}; -> = {10.0,8.0,16.0}; -float3 uws -< - string UIName = "Underwater Amplitude"; - string UIWidget = "Vector"; - float3 UIMin = {0.0,0.0,0.0}; -> = {0.3,0.5,0.8}; -float uwz -< - string UIName = "Underwater Zoom"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.5}; -bool wateralways -< - string UIName = "Always Underwater"; - string UIWidget = "Checkbox"; -> = {false}; -bool heatenable -< - string UIName = "Enable Hot Air Refraction"; - string UIWidget = "Checkbox"; -> = {false}; -float heatsize -< - string UIName = "Heat Texture Size"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {3.5}; -float heatspeed -< - string UIName = "Heat Speed"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.5}; -float heatfadepow -< - string UIName = "Heat Fade Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {200.0}; -float heatfademul -< - string UIName = "Heat Fade Intensity"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.5}; -float heatfadebump -< - string UIName = "Heat Fade Offset"; - string UIWidget = "Spinner"; -> = {0.0}; -float heatstrength -< - string UIName = "Heat Intensity"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.25}; -float heatpow -< - string UIName = "Heat Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.2}; -float heatfactor_dw -< - string UIName = "Heat Factor Dawn"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.2}; -float heatfactor_sr -< - string UIName = "Heat Factor Sunrise"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.5}; -float heatfactor_dy -< - string UIName = "Heat Factor Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float heatfactor_ss -< - string UIName = "Heat Factor Sunset"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.7}; -float heatfactor_ds -< - string UIName = "Heat Factor Dusk"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.1}; -float heatfactor_nt -< - string UIName = "Heat Factor Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float heatfactor_i -< - string UIName = "Heat Factor Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -bool heatalways -< - string UIName = "Heat Always Enable"; - string UIWidget = "Checkbox"; -> = {false}; -bool frostenable -< - string UIName = "Enable Screen Frost"; - string UIWidget = "Checkbox"; -> = {false}; -float frostpow -< - string UIName = "Frost Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float froststrength -< - string UIName = "Frost Strength"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float frostrpow -< - string UIName = "Frost Radial Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float frostrmult -< - string UIName = "Frost Radial Intensity"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float frostrbump -< - string UIName = "Frost Radial Offset"; - string UIWidget = "Spinner"; -> = {0.0}; -float frostblend -< - string UIName = "Frost Texture Blend"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float frostbpow -< - string UIName = "Frost Texture Blend Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float frostsize -< - string UIName = "Frost Texture Size"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float frostfactor_dw -< - string UIName = "Frost Factor Dawn"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.1}; -float frostfactor_sr -< - string UIName = "Frost Factor Sunrise"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float frostfactor_dy -< - string UIName = "Frost Factor Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float frostfactor_ss -< - string UIName = "Frost Factor Sunset"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float frostfactor_ds -< - string UIName = "Frost Factor Dusk"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.1}; -float frostfactor_nt -< - string UIName = "Frost Factor Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.25}; -float frostfactor_i -< - string UIName = "Frost Factor Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -bool frostalways -< - string UIName = "Frost Always Enable"; - string UIWidget = "Checkbox"; -> = {false}; -string str_focus = "Focusing Parameters"; -/* circle (triangle, actually) average focus */ -bool focuscircle -< - string UIName = "Enable Focus Triangle"; - string UIWidget = "Checkbox"; -> = {true}; -bool focusdisplay -< - string UIName = "Display Focus Points"; - string UIWidget = "Checkbox"; -> = {false}; -bool focusmanual -< - string UIName = "Enable Manual Focus"; - string UIWidget = "Checkbox"; -> = {false}; -float focusmanualvalue -< - string UIName = "Manual Focus Depth"; - string UIWidget = "Checkbox"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.5}; -/* center point of focus */ -float2 focuscenter -< - string UIName = "Focus Point Center"; - string UIWidget = "Vector"; - float2 UIMin = {0.0,0.0}; - float2 UIMax = {1.0,1.0}; -> = {0.5,0.5}; -float focuscircleangle -< - string UIName = "Focus Triangle Angle"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.0}; -/* radius of the focus point triangle */ -float focusradius_n -< - string UIName = "Focus Triangle Radius Night"; - string UIWidget = "Spinner"; -> = {20.0}; -float focusradius_d -< - string UIName = "Focus Triangle Radius Day"; - string UIWidget = "Spinner"; -> = {20.0}; -float focusradius_i -< - string UIName = "Focus Triangle Radius Interior"; - string UIWidget = "Spinner"; -> = {20.0}; -/* mix factor with sample at screen center */ -float focusmix_n -< - string UIName = "Focus Triangle Blending Night"; - string UIWidget = "Spinner"; -> = {0.5}; -float focusmix_d -< - string UIName = "Focus Triangle Blending Day"; - string UIWidget = "Spinner"; -> = {0.5}; -float focusmix_i -< - string UIName = "Focus Triangle Blending Interior"; - string UIWidget = "Spinner"; -> = {0.5}; -/* maximum focus depth */ -float focusmax_n -< - string UIName = "Focus Maximum Depth Night"; - string UIWidget = "Spinner"; -> = {1000.0}; -float focusmax_d -< - string UIName = "Focus Maximum Depth Day"; - string UIWidget = "Spinner"; -> = {1000.0}; -float focusmax_i -< - string UIName = "Focus Maximum Depth Interior"; - string UIWidget = "Spinner"; -> = {1000.0}; -float focuscenterdiscard -< - string UIName = "Focus Circle Discard Center Depth"; - string UIWidget = "Spinner"; -> = {0.0}; -/* dof filter */ -string str_dof = "Depth Of Field"; -/* dof multiplier (makes unfocused depths more blurry) */ -float dofmult_n -< - string UIName = "DOF Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {500.0}; -float dofmult_d -< - string UIName = "DOF Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {500.0}; -float dofmult_i -< - string UIName = "DOF Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {500.0}; -/* dof power (falloff, kinda) */ -float dofpow_n -< - string UIName = "DOF Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {4.0}; -float dofpow_d -< - string UIName = "DOF Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {4.0}; -float dofpow_i -< - string UIName = "DOF Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {4.0}; -/* dof bump (negative values are useful for "widening" the focused area) */ -float dofbump_n -< - string UIName = "DOF Shift Night"; - string UIWidget = "Spinner"; -> = {0.0}; -float dofbump_d -< - string UIName = "DOF Shift Day"; - string UIWidget = "Spinner"; -> = {0.0}; -float dofbump_i -< - string UIName = "DOF Shift Interior"; - string UIWidget = "Spinner"; -> = {0.0}; -/* fixed focused depth factors */ -float doffixedfocusmult_n -< - string UIName = "DOF Fixed Focus Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float doffixedfocusmult_d -< - string UIName = "DOF Fixed Focus Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float doffixedfocusmult_i -< - string UIName = "DOF Fixed Focus Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float doffixedfocuspow_n -< - string UIName = "DOF Fixed Focus Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float doffixedfocuspow_d -< - string UIName = "DOF Fixed Focus Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float doffixedfocuspow_i -< - string UIName = "DOF Fixed Focus Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float doffixedfocusbump_n -< - string UIName = "DOF Fixed Focus Shift Night"; - string UIWidget = "Spinner"; -> = {0.0}; -float doffixedfocusbump_d -< - string UIName = "DOF Fixed Focus Shift Day"; - string UIWidget = "Spinner"; -> = {0.0}; -float doffixedfocusbump_i -< - string UIName = "DOF Fixed Focus Shift Interior"; - string UIWidget = "Spinner"; -> = {0.0}; -float doffixedfocusblend_n -< - string UIName = "DOF Fixed Focus Blend Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float doffixedfocusblend_d -< - string UIName = "DOF Fixed Focus Blend Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float doffixedfocusblend_i -< - string UIName = "DOF Fixed Focus Blend Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -/* fixed unfocused depth factors */ -float doffixedunfocusmult_n -< - string UIName = "DOF Fixed Unfocus Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -float doffixedunfocusmult_d -< - string UIName = "DOF Fixed Unfocus Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -float doffixedunfocusmult_i -< - string UIName = "DOF Fixed Unfocus Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -float doffixedunfocuspow_n -< - string UIName = "DOF Fixed Unfocus Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1000.0}; -float doffixedunfocuspow_d -< - string UIName = "DOF Fixed Unfocus Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1000.0}; -float doffixedunfocuspow_i -< - string UIName = "DOF Fixed Unfocus Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1000.0}; -float doffixedunfocusbump_n -< - string UIName = "DOF Fixed Unfocus Shift Night"; - string UIWidget = "Spinner"; -> = {0.0}; -float doffixedunfocusbump_d -< - string UIName = "DOF Fixed Unfocus Shift Day"; - string UIWidget = "Spinner"; -> = {0.0}; -float doffixedunfocusbump_i -< - string UIName = "DOF Fixed Unfocus Shift Interior"; - string UIWidget = "Spinner"; -> = {0.0}; -float doffixedunfocusblend_n -< - string UIName = "DOF Fixed Unfocus Blend Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float doffixedunfocusblend_d -< - string UIName = "DOF Fixed Unfocus Blend Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float doffixedunfocusblend_i -< - string UIName = "DOF Fixed Unfocus Blend Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -/* prevents fixed dof from blurring the skybox */ -bool doffixedcut -< - string UIName = "DOF Fixed Use Cutoff"; - string UIWidget = "Checkbox"; -> = {true}; -/* disable depth of field */ -bool dofdisable -< - string UIName = "Disable DOF"; - string UIWidget = "Checkbox"; -> = {false}; -float dofpradius -< - string UIName = "DOF Gather Blur Radius"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {6.0}; -/* cheap performance option */ -float dofminblur -< - string UIName = "DOF Minimum Blur"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.0}; -bool dofdebug -< - string UIName = "Debug Depth"; - string UIWidget = "Checkbox"; -> = {false}; -bool dfcdebug -< - string UIName = "Debug Focus"; - string UIWidget = "Checkbox"; -> = {false}; -/* use "edge vision" filter */ -string str_view = "Edgevision"; -bool edgevenable -< - string UIName = "Enable Edgevision"; - string UIWidget = "Checkbox"; -> = {false}; -/* factors */ -float edgevfadepow_n -< - string UIName = "Edgevision Fade Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -float edgevfadepow_d -< - string UIName = "Edgevision Fade Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -float edgevfadepow_i -< - string UIName = "Edgevision Fade Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -float edgevfademult_n -< - string UIName = "Edgevision Fade Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {500.0}; -float edgevfademult_d -< - string UIName = "Edgevision Fade Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {500.0}; -float edgevfademult_i -< - string UIName = "Edgevision Fade Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {500.0}; -float edgevpow -< - string UIName = "Edgevision Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.25}; -float edgevmult -< - string UIName = "Edgevision Intensity"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {4.0}; -float edgevradius -< - string UIName = "Edgevision Radius"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -/* ssao filter */ -string str_ssao = "Ray Marching SSAO"; -bool ssaoenable -< - string UIName = "Enable SSAO"; - string UIWidget = "Checkbox"; -> = {false}; -float ssaoradius -< - string UIName = "SSAO Radius"; - string UIWidget = "Spinner"; -> = {1.0}; -int ssaonoise -< - string UIName = "SSAO Noise"; - string UIWidget = "Spinner"; - int UIMin = 0; - int UIMax = 1; -> = {1}; -float ssaofadepow_n -< - string UIName = "SSAO Fade Contrast Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.05}; -float ssaofadepow_d -< - string UIName = "SSAO Fade Contrast Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.05}; -float ssaofadepow_i -< - string UIName = "SSAO Fade Contrast Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.05}; -float ssaofademult_n -< - string UIName = "SSAO Fade Intensity Night"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float ssaofademult_d -< - string UIName = "SSAO Fade Intensity Day"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float ssaofademult_i -< - string UIName = "SSAO Fade Intensity Interior"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float ssaomult -< - string UIName = "SSAO Intensity"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.5}; -float ssaopow -< - string UIName = "SSAO Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.5}; -float ssaoblend -< - string UIName = "SSAO Blending"; - string UIWidget = "Spinner"; -> = {1.0}; -bool ssaobenable -< - string UIName = "SSAO Blur"; - string UIWidget = "Checkbox"; -> = {true}; -float ssaobfact -< - string UIName = "SSAO Bilateral Factor"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1000.0}; -float ssaoclamp -< - string UIName = "SSAO Range"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float ssaoclampmin -< - string UIName = "SSAO Range Min"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -float ssaobradius -< - string UIName = "SSAO Blur Radius"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -bool ssaodebug -< - string UIName = "Debug SSAO"; - string UIWidget = "Checkbox"; -> = {false}; -bool ssaoquarter -< - string UIName = "SSAO Use Less Samples"; - string UIWidget = "Checkbox"; -> = {true}; -bool ssaohalfblur -< - string UIName = "SSAO Blur Use Less Samples"; - string UIWidget = "Checkbox"; -> = {true}; - -/* mathematical constants */ -static const float pi = 3.1415926535898; - -/* edge detect factors */ -static const float3x3 GX = -{ - -1, 0, 1, - -2, 0, 2, - -1, 0, 1 -}; -static const float3x3 GY = -{ - 1, 2, 1, - 0, 0, 0, - -1,-2,-1 -}; -/* radius: 8, std dev: 6 */ -static const float gauss8[8] = -{ - 0.084247, 0.083085, 0.079694, 0.074348, - 0.067460, 0.059533, 0.051099, 0.042657 -}; -/* radius: 16, std dev: 13 */ -static const float gauss16[16] = -{ - 0.040012, 0.039893, 0.039541, 0.038960, - 0.038162, 0.037159, 0.035969, 0.034612, - 0.033109, 0.031485, 0.029764, 0.027971, - 0.026131, 0.024268, 0.022405, 0.020563 -}; -/* SSAO samples */ -static const float3 ssao_samples_lq[16] = -{ - float3( 0.0000,-0.0002, 0.0000),float3(-0.0004, 0.0013, 0.0014), - float3(-0.0030, 0.0048,-0.0034),float3( 0.0147, 0.0046,-0.0026), - float3(-0.0097, 0.0275,-0.0092),float3(-0.0178,-0.0072, 0.0491), - float3( 0.0227,-0.0431,-0.0681),float3( 0.1052, 0.0332,-0.0588), - float3( 0.0997, 0.0056, 0.1473),float3(-0.1252, 0.2019, 0.0564), - float3(-0.1054,-0.2072, 0.2271),float3(-0.0542, 0.3096, 0.2814), - float3( 0.0072,-0.3534, 0.4035),float3(-0.0024,-0.2385, 0.6260), - float3(-0.1940, 0.5722,-0.5602),float3(-0.0910,-0.7548,-0.6497) -}; -static const float3 ssao_samples_hq[64] = -{ - float3( 0.0000,-0.0000,-0.0000),float3( 0.0000, 0.0000,-0.0000), - float3( 0.0001,-0.0000,-0.0000),float3( 0.0002, 0.0001,-0.0001), - float3(-0.0000,-0.0005, 0.0000),float3( 0.0004,-0.0004,-0.0006), - float3( 0.0005,-0.0011,-0.0004),float3(-0.0000, 0.0013,-0.0014), - float3( 0.0024, 0.0006, 0.0013),float3(-0.0017,-0.0017, 0.0030), - float3(-0.0037, 0.0033,-0.0011),float3( 0.0010, 0.0018,-0.0063), - float3( 0.0059, 0.0056,-0.0020),float3(-0.0009, 0.0083,-0.0063), - float3(-0.0110, 0.0065,-0.0016),float3( 0.0089, 0.0070,-0.0108), - float3(-0.0115,-0.0134,-0.0062),float3(-0.0121,-0.0172, 0.0071), - float3(-0.0066, 0.0246,-0.0060),float3( 0.0057,-0.0279, 0.0109), - float3(-0.0269,-0.0160,-0.0164),float3( 0.0402, 0.0045, 0.0034), - float3( 0.0248,-0.0045, 0.0390),float3( 0.0110,-0.0491,-0.0159), - float3(-0.0193,-0.0431, 0.0363),float3( 0.0441, 0.0271,-0.0426), - float3( 0.0385,-0.0428,-0.0482),float3(-0.0623,-0.0501, 0.0249), - float3( 0.0683,-0.0000, 0.0631),float3( 0.1008, 0.0180,-0.0114), - float3(-0.0156,-0.0713, 0.0871),float3(-0.0561,-0.0757, 0.0822), - float3( 0.0714, 0.0850,-0.0805),float3(-0.1320,-0.0042, 0.0711), - float3( 0.1553, 0.0486,-0.0167),float3(-0.1164,-0.0125,-0.1341), - float3( 0.1380,-0.1230,-0.0562),float3( 0.0868,-0.1897,-0.0175), - float3( 0.0749, 0.1495, 0.1525),float3(-0.2038,-0.1324,-0.0235), - float3( 0.0205, 0.1920, 0.1784),float3( 0.1637,-0.0964,-0.2092), - float3( 0.2875, 0.0966,-0.0020),float3( 0.0572,-0.0180,-0.3194), - float3(-0.3329, 0.0981,-0.0189),float3( 0.2627, 0.2092,-0.1585), - float3( 0.1783,-0.3359,-0.1108),float3( 0.2675, 0.2056,-0.2533), - float3(-0.1852, 0.3017,-0.2759),float3(-0.0944, 0.3532, 0.3061), - float3(-0.0022,-0.3744, 0.3404),float3(-0.0600,-0.4031,-0.3487), - float3(-0.2663, 0.4915, 0.1004),float3(-0.2442, 0.4253, 0.3468), - float3( 0.2583, 0.1321,-0.5645),float3(-0.0219, 0.4516, 0.4943), - float3(-0.5503, 0.2597,-0.3590),float3( 0.2239,-0.5571,-0.4398), - float3(-0.7210,-0.1982, 0.2339),float3( 0.7948,-0.1848, 0.1145), - float3(-0.7190, 0.1767, 0.4489),float3(-0.5617, 0.5845,-0.4116), - float3(-0.8919,-0.0384, 0.3360),float3(-0.0144, 0.9775,-0.2105) -}; -/* For high quality DOF */ -static const float2 poisson32[32] = -{ - float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710), - float2( 0.9535280, 0.0669683),float2( 0.6544140,-0.4439470), - float2( 0.6029910, 0.1058970),float2( 0.2637500,-0.7163810), - float2( 0.9105380,-0.3889810),float2( 0.5942730,-0.7400740), - float2( 0.8215680, 0.3162520),float2( 0.3577550, 0.4884250), - float2( 0.6935990, 0.7070140),float2( 0.0470570, 0.1961800), - float2(-0.0977021, 0.6241300),float2( 0.2110300, 0.8778350), - float2(-0.3743440, 0.2494580),float2( 0.0144776,-0.0766484), - float2(-0.3377660,-0.1255100),float2( 0.3136420, 0.1077710), - float2(-0.5204340, 0.8369860),float2(-0.1182680, 0.9801750), - float2(-0.6969480,-0.3869330),float2(-0.6156080, 0.0307209), - float2(-0.3806790,-0.6055360),float2(-0.1909570,-0.3861330), - float2(-0.2449080,-0.8655030),float2( 0.0822108,-0.4975580), - float2(-0.5649250, 0.5756740),float2(-0.8741830,-0.1685750), - float2( 0.0761715,-0.9631760),float2(-0.9218270, 0.2121210), - float2(-0.6378530, 0.3053550),float2(-0.8425180, 0.4753000) -}; - -float4 Timer; -float4 ScreenSize; -float4 Weather; -float ENightDayFactor; -float EInteriorFactor; -float4 TimeOfDay1; -float4 TimeOfDay2; -float4 DofParameters; - -Texture2D TextureCurrent; -Texture2D TexturePrevious; -Texture2D TextureOriginal; -Texture2D TextureColor; -Texture2D TextureDepth; -Texture2D TextureFocus; - -Texture2D RenderTargetR16F; /* for SSAO */ -Texture2D RenderTargetR32F; /* for DOF */ - -Texture2D TextureNoise3 -< - string ResourceName = "menbnoise2.png"; ->; -Texture2D TextureHeat -< -#ifdef HEAT_DDS - string ResourceName = "menbheat.dds"; -#else - string ResourceName = "menbheat.png"; -#endif ->; -Texture2D TextureFrost -< -#ifdef FROST_DDS - string ResourceName = "menbfrost.dds"; -#else - string ResourceName = "menbfrost.png"; -#endif ->; -Texture2D TextureFrostBump -< -#ifdef FROSTBUMP_DDS - string ResourceName = "menbfrostbump.dds"; -#else - string ResourceName = "menbfrostbump.png"; -#endif ->; - -SamplerState Sampler0 -{ - Filter = MIN_MAG_MIP_POINT; - AddressU = Clamp; - AddressV = Clamp; -}; -SamplerState Sampler1 -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Clamp; - AddressV = Clamp; -}; -SamplerState Sampler2 -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Wrap; - AddressV = Wrap; -}; - -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_OUTPUT_POST -{ - float4 pos : SV_POSITION; - float2 txcoord : TEXCOORD0; -}; - -VS_OUTPUT_POST VS_Quad( VS_INPUT_POST IN ) -{ - VS_OUTPUT_POST OUT; - OUT.pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord.xy = IN.txcoord.xy; - return OUT; -} - -/* helper functions */ -/* photometric */ -#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722)) -/* CCIR601 */ -//#define luminance(x) dot(x,float3(0.299,0.587,0.114)) -/* these are znear/zfar values for Skyrim, but MAY match Fallout too */ -float depthlinear( float2 coord ) -{ - float z = TextureDepth.SampleLevel(Sampler1,coord,0).x; - return (2*zNear)/(zFar+zNear-z*(zFar-zNear)); -} - -/* - Thank you Boris for not providing access to a normal buffer. Guesswork using - the depth buffer results in imprecise normals that aren't smoothed. Plus - there is no way to get the normal data from textures either. Also, three - texture fetches are needed instead of one (great!) -*/ -float3 pseudonormal( float dep, float2 coord ) -{ - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 ofs1 = float2(0,1.0/bresl.y); - float2 ofs2 = float2(1.0/bresl.x,0); - float dep1 = TextureDepth.SampleLevel(Sampler1,coord+ofs1,0).x; - float dep2 = TextureDepth.SampleLevel(Sampler1,coord+ofs2,0).x; - float3 p1 = float3(ofs1,dep1-dep); - float3 p2 = float3(ofs2,dep2-dep); - float3 normal = cross(p1,p2); - normal.z = -normal.z; - return normalize(normal); -} - -/* SSAO Prepass */ -float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - /* get occlusion using single-step Ray Marching with 64 samples */ - float ssaofadepow = tod_ind(ssaofadepow); - float ssaofademult = tod_ind(ssaofademult); - if ( !ssaoenable ) return 0.0; - float depth = TextureDepth.Sample(Sampler1,coord).x; - float ldepth = depthlinear(coord); - if ( depth >= cutoff*0.000001 ) return 1.0; - float2 bresl; - if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; - else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float3 normal = pseudonormal(depth,coord); - float2 nc = coord*(bresl/256.0); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*ssaoradius; - float2 nc2 = TextureNoise3.SampleLevel(Sampler2,nc+48000.0*Timer.x - *ssaonoise,0).xy; - float3 rnormal = TextureNoise3.SampleLevel(Sampler2,nc2,0).xyz*2.0-1.0; - rnormal = normalize(rnormal); - float occ = 0.0; - int i; - float3 sample; - float sdepth, so, delta; - float sclamp = ssaoclamp/100000.0; - float sclampmin = ssaoclampmin/100000.0; - if ( ssaoquarter ) [unroll] for ( i=0; i<16; i++ ) - { - sample = reflect(ssao_samples_lq[i],rnormal); - sample *= sign(dot(normal,sample)); - so = ldepth-sample.z*bof.x; - sdepth = depthlinear(coord+bof*sample.xy/ldepth); - delta = saturate(so-sdepth); - delta *= 1.0-smoothstep(0.0,sclamp,delta); - if ( (delta > sclampmin) && (delta < sclamp) ) - occ += 1.0-delta; - } - else [unroll] for ( i=0; i<64; i++ ) - { - sample = reflect(ssao_samples_hq[i],rnormal); - sample *= sign(dot(normal,sample)); - so = ldepth-sample.z*bof.x; - sdepth = depthlinear(coord+bof*sample.xy/ldepth); - delta = saturate(so-sdepth); - delta *= 1.0-smoothstep(0.0,sclamp,delta); - if ( (delta > sclampmin) && (delta < sclamp) ) - occ += 1.0-delta; - } - float uocc = saturate(occ/(ssaoquarter?16.0:64.0)); - float fade = 1.0-depth; - uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult); - uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult); - return saturate(1.0-(uocc*ssaoblend)); -} -/* - The blur passes use bilateral filtering to mostly preserve borders. - An additional factor using difference of normals was tested, but the - performance decrease was too much, so it's gone forever. -*/ -float4 PS_SSAOBlurH( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - if ( !ssaoenable ) return 0.0; - if ( !ssaobenable ) return TextureColor.Sample(Sampler1,coord); - float bresl = ScreenSize.x; - float bof = (1.0/bresl)*ssaobradius; - float isd, sd, ds, sw, tw = 0; - float res = 0.0; - int i; - isd = TextureDepth.Sample(Sampler1,coord).x; - if ( ssaohalfblur ) [unroll] for ( i=-7; i<=7; i++ ) - { - sd = TextureDepth.Sample(Sampler1,coord+float2(i,0)*bof).x; - ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); - sw = ds; - sw *= gauss8[abs(i)]; - tw += sw; - res += sw*TextureColor.Sample(Sampler1,coord+float2(i,0) - *bof).x; - } - else [unroll] for ( i=-15; i<=15; i++ ) - { - sd = TextureDepth.Sample(Sampler1,coord+float2(i,0)*bof).x; - ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); - sw = ds; - sw *= gauss16[abs(i)]; - tw += sw; - res += sw*TextureColor.Sample(Sampler1,coord+float2(i,0) - *bof).x; - } - res /= tw; - return res; -} -float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - if ( !ssaoenable ) return 0.0; - if ( !ssaobenable ) return TextureColor.Sample(Sampler1,coord); - float bresl = ScreenSize.x*ScreenSize.w; - float bof = (1.0/bresl)*ssaobradius; - float isd, sd, ds, sw, tw = 0; - float res = 0.0; - int i; - isd = TextureDepth.Sample(Sampler1,coord).x; - if ( ssaohalfblur ) [unroll] for ( i=-7; i<=7; i++ ) - { - sd = TextureDepth.Sample(Sampler1,coord+float2(0,i)*bof).x; - ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); - sw = ds; - sw *= gauss8[abs(i)]; - tw += sw; - res += sw*TextureColor.Sample(Sampler1,coord+float2(0,i) - *bof).x; - } - else [unroll] for ( i=-15; i<=15; i++ ) - { - sd = TextureDepth.Sample(Sampler1,coord+float2(0,i)*bof).x; - ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); - sw = ds; - sw *= gauss16[abs(i)]; - tw += sw; - res += sw*TextureColor.Sample(Sampler1,coord+float2(0,i) - *bof).x; - } - res /= tw; - return res; -} - -/* precalculate DOF factors */ -float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - if ( dofdisable ) return 0.0; - float dofpow = tod_ind(dofpow); - float dofmult = tod_ind(dofmult); - float dofbump = tod_ind(dofbump); - float doffixedfocuspow = tod_ind(doffixedfocuspow); - float doffixedfocusmult = tod_ind(doffixedfocusmult); - float doffixedfocusbump = tod_ind(doffixedfocusbump); - float doffixedfocusblend = tod_ind(doffixedfocusblend); - float doffixedunfocuspow = tod_ind(doffixedunfocuspow); - float doffixedunfocusmult = tod_ind(doffixedunfocusmult); - float doffixedunfocusbump = tod_ind(doffixedunfocusbump); - float doffixedunfocusblend = tod_ind(doffixedunfocusblend); - float dep = TextureDepth.Sample(Sampler1,coord).x; - float foc = TextureFocus.Sample(Sampler1,coord).x; - float dfc = abs(dep-foc); - float dff = abs(dep); - float dfu = dff; - if ( doffixedcut && (dep >= cutoff*0.000001) ) dfu *= 0; - dfc = clamp(pow(dfc,dofpow)*dofmult+dofbump,0.0,1.0); - dff = clamp(pow(dff,doffixedfocuspow)*doffixedfocusmult - +doffixedfocusbump,0.0,1.0); - dfu = clamp(pow(dfu,doffixedunfocuspow)*doffixedunfocusmult - +doffixedunfocusbump,0.0,1.0); - dfc *= lerp(1.0,dff,doffixedfocusblend); - dfc += lerp(0.0,dfu,doffixedunfocusblend); - return max(0.0,dfc); -} - -/* apply SSAO to screen */ -float4 PS_SSAOApply( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureOriginal.Sample(Sampler1,coord); - if ( !ssaoenable ) return res; - float mud = RenderTargetR16F.Sample(Sampler1,coord).x; - if ( ssaodebug ) return saturate(mud); - return res*mud; -} - -/* old Edgevision mode */ -float3 EdgeView( float3 res, float2 coord ) -{ - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - if ( fixed.x>0 && fixed.y>0 ) bresl = fixed; - float edgevfadepow = tod_ind(edgevfadepow); - float edgevfademult = tod_ind(edgevfademult); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*edgevradius; - float mdx = 0, mdy = 0, mud = 0; - /* this reduces texture fetches by half, big difference */ - float3x3 depths; - depths[0][0] = depthlinear(coord+float2(-1,-1)*bof); - depths[0][1] = depthlinear(coord+float2( 0,-1)*bof); - depths[0][2] = depthlinear(coord+float2( 1,-1)*bof); - depths[1][0] = depthlinear(coord+float2(-1, 0)*bof); - depths[1][1] = depthlinear(coord+float2( 0, 0)*bof); - depths[1][2] = depthlinear(coord+float2( 1, 0)*bof); - depths[2][0] = depthlinear(coord+float2(-1, 1)*bof); - depths[2][1] = depthlinear(coord+float2( 0, 1)*bof); - depths[2][2] = depthlinear(coord+float2( 1, 1)*bof); - mdx += GX[0][0]*depths[0][0]; - mdx += GX[0][1]*depths[0][1]; - mdx += GX[0][2]*depths[0][2]; - mdx += GX[1][0]*depths[1][0]; - mdx += GX[1][1]*depths[1][1]; - mdx += GX[1][2]*depths[1][2]; - mdx += GX[2][0]*depths[2][0]; - mdx += GX[2][1]*depths[2][1]; - mdx += GX[2][2]*depths[2][2]; - mdy += GY[0][0]*depths[0][0]; - mdy += GY[0][1]*depths[0][1]; - mdy += GY[0][2]*depths[0][2]; - mdy += GY[1][0]*depths[1][0]; - mdy += GY[1][1]*depths[1][1]; - mdy += GY[1][2]*depths[1][2]; - mdy += GY[2][0]*depths[2][0]; - mdy += GY[2][1]*depths[2][1]; - mdy += GY[2][2]*depths[2][2]; - mud = pow(mdx*mdx+mdy*mdy,0.5); - float fade = 1.0-TextureDepth.Sample(Sampler1,coord).x; - mud *= saturate(pow(max(0,fade),edgevfadepow)*edgevfademult); - mud = saturate(pow(max(0,mud),edgevpow)*edgevmult); - return mud; -} - -/* Edgevision and Sharpen */ -float4 PS_Edge( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler1,coord); - if ( edgevenable ) res.rgb = EdgeView(res.rgb,coord); - return res; -} - -/* - Underwater distortion, which currently has no real use due to Boris being - lazy. fWaterLevel doesn't yet provide any usable values. -*/ -float2 UnderwaterDistort( float2 coord ) -{ - if ( !wateralways ) return coord; - float2 ofs = float2(0.0,0.0); - float siny = sin(pi*2.0*(coord.y*uwm.x+Timer.x*uwf.x*100.0))*uws.x; - ofs.y = siny+sin(pi*2.0*(coord.x*uwm.y+Timer.x*uwf.y*100.0))*uws.y; - ofs.x = siny+sin(pi*2.0*(coord.x*uwm.z+Timer.x*uwf.z*100.0))*uws.z; - ofs -= (coord-0.5)*2.0*uwz; - return coord+ofs*0.01; -} - -/* Distant hot air refraction. Not very realistic, but does the job. */ -float2 DistantHeat( float2 coord ) -{ - float2 bresl; - float dep, odep; - dep = TextureDepth.Sample(Sampler1,coord).x; - float distfade = clamp(pow(max(0,dep),heatfadepow)*heatfademul - +heatfadebump,0.0,1.0); - if ( distfade <= 0.0 ) return coord; - float todpow = todx_ind(heatfactor); - if ( !heatalways && (todpow <= 0.0) ) return coord; - if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; - else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 nc = coord*(bresl/HEATSIZE)*heatsize; - float2 ts = float2(0.01,1.0)*Timer.x*10000.0*heatspeed; - float2 ofs = TextureHeat.SampleLevel(Sampler2,nc+ts,0).xy; - ofs = (ofs-0.5)*2.0; - ofs *= pow(length(ofs),heatpow); - ofs *= todpow; - if ( !heatalways ) ofs *= weatherfactor(WT_HOT); - odep = TextureDepth.SampleLevel(Sampler1,coord+ofs*heatstrength - *distfade*0.01,0).x; - float odistfade = clamp(pow(max(0,odep),heatfadepow)*heatfademul - +heatfadebump,0.0,1.0); - if ( odistfade <= 0.0 ) return coord; - return coord+ofs*heatstrength*distfade*0.01; -} - -/* Screen distortion filters */ -float4 PS_Distortion( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float2 bresl; - if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; - else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 ofs = coord; - if ( waterenable ) ofs = UnderwaterDistort(ofs); - if ( heatenable ) ofs = DistantHeat(ofs); - ofs -= coord; - float4 res; - if ( (distcha == 0.0) || (length(ofs) == 0.0) ) - return TextureColor.Sample(Sampler1,coord+ofs); - float2 ofr, ofg, ofb; - ofr = ofs*(1.0-distcha*0.01); - ofg = ofs; - ofb = ofs*(1.0+distcha*0.01); - res = float4(TextureColor.Sample(Sampler1,coord+ofr).r, - TextureColor.Sample(Sampler1,coord+ofg).g, - TextureColor.Sample(Sampler1,coord+ofb).b, - TextureColor.Sample(Sampler1,coord+ofs).a); - return res; -} - -/* This will do absolutely nothing */ -float4 PS_Aperture( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - return float4(0,0,0,1); -} - -/* Focus */ -float4 PS_ReadFocus( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - if ( dofdisable ) return 0.0; - if ( focusmanual ) return focusmanualvalue; - float focusmax = tod_ind(focusmax); - float cfocus = min(TextureDepth.Sample(Sampler1,focuscenter).x, - focusmax*0.001); - if ( !focuscircle ) return cfocus; - /* using polygons inscribed into a circle, in this case a triangle */ - float focusradius = tod_ind(focusradius); - float focusmix = tod_ind(focusmix); - float cstep = (1.0/3.0); - float sfocus, mfocus[4]; - float2 coord; - float2 bof = float2(1.0,1.0/ScreenSize.w)*focusradius*0.01; - float fan = focuscircleangle*2.0*pi; - coord.x = focuscenter.x+sin(fan)*bof.x; - coord.y = focuscenter.y+cos(fan)*bof.y; - mfocus[0] = min(TextureDepth.Sample(Sampler1,coord).x, - focusmax*0.001); - coord.x = focuscenter.x+sin(fan+2.0*pi*cstep)*bof.x; - coord.y = focuscenter.y+cos(fan+2.0*pi*cstep)*bof.y; - mfocus[1] = min(TextureDepth.Sample(Sampler1,coord).x, - focusmax*0.001); - coord.x = focuscenter.x+sin(fan+4.0*pi*cstep)*bof.x; - coord.y = focuscenter.y+cos(fan+4.0*pi*cstep)*bof.y; - mfocus[2] = min(TextureDepth.Sample(Sampler1,coord).x, - focusmax*0.001); - if ( (mfocus[0] <= focuscenterdiscard) - && (mfocus[1] <= focuscenterdiscard) - && (mfocus[2] <= focuscenterdiscard) ) - mfocus[3] = focuscenterdiscard; - else if ( mfocus[0] <= focuscenterdiscard ) - { - if ( mfocus[1] <= focuscenterdiscard ) mfocus[3] = mfocus[2]; - else mfocus[3] = 0.5*(mfocus[1]+mfocus[2]); - } - else if ( mfocus[1] <= focuscenterdiscard ) - { - if ( mfocus[2] <= focuscenterdiscard ) mfocus[3] = mfocus[0]; - else mfocus[3] = 0.5*(mfocus[0]+mfocus[2]); - } - else if ( mfocus[2] <= focuscenterdiscard ) - mfocus[3] = 0.5*(mfocus[0]+mfocus[1]); - else mfocus[3] = cstep*(mfocus[0]+mfocus[1]+mfocus[2]); - if ( cfocus <= focuscenterdiscard ) cfocus = mfocus[3]; - else cfocus = (1.0-focusmix)*cfocus+focusmix*mfocus[3]; - return cfocus; -} - -float4 PS_Focus( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - if ( dofdisable ) return 0.0; - return max(lerp(TexturePrevious.Sample(Sampler0,0.5).x, - TextureCurrent.Sample(Sampler0,0.5).x, - saturate(DofParameters.w)),0.0); -} - -/* gather blur pass */ -float4 PS_DoFBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - if ( dofdisable ) return TextureColor.Sample(Sampler1,coord); - float dfc = RenderTargetR32F.Sample(Sampler1,coord).x; - if ( dofdebug ) return TextureDepth.Sample(Sampler1,coord).x; - if ( dfcdebug ) return dfc; - float2 bresl; - if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; - else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = 1.0/bresl; - if ( dfc <= dofminblur ) return TextureColor.Sample(Sampler1,coord); - float4 res = float4(0,0,0,0); - float dep = TextureDepth.Sample(Sampler1,coord).x; - float sd, ds, sw, tw = 0; - float2 bsz = bof*dofpradius*dfc; - float4 sc; - [unroll] for ( int i=0; i<32; i++ ) - { - sc = TextureColor.SampleLevel(Sampler1,coord+poisson32[i]*bsz, - dfc*4.0); - ds = TextureDepth.SampleLevel(Sampler1,coord+poisson32[i]*bsz, - 0).x; - sd = RenderTargetR32F.SampleLevel(Sampler1,coord+poisson32[i] - *bsz,0).x; - sw = (ds>dep)?1.0:sd; - tw += sw; - res += sc*sw; - } - res /= tw; - return res; - -} - -/* Screen frost shader. Not very realistic either, but looks fine too. */ -float2 ScreenFrost( float2 coord ) -{ - float2 bresl; - if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; - else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 nc = coord*(bresl/FROSTSIZE)*frostsize; - float2 ofs = TextureFrostBump.Sample(Sampler2,nc).xy; - ofs = (ofs-0.5)*2.0; - ofs *= pow(length(ofs),frostpow)*froststrength; - float todpow = todx_ind(frostfactor); - if ( !frostalways ) ofs *= weatherfactor(WT_COLD) - +(1.0-weatherfactor(WT_HOT))*todpow; - else ofs *= todpow; - float dist = distance(coord,float2(0.5,0.5))*2.0; - ofs *= clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0,1.0); - return coord+ofs; -} - -/* screen frost overlay */ -float4 PS_FrostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float2 bresl; - if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; - else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float4 res; - [branch] if ( frostenable ) - { - float2 ofs = ScreenFrost(coord); - ofs -= coord; - if ( (distcha != 0.0) && (length(ofs) != 0.0) ) - { - float2 ofr, ofg, ofb; - ofr = ofs*(1.0-distcha*0.01); - ofg = ofs; - ofb = ofs*(1.0+distcha*0.01); - res = float4(TextureColor.Sample(Sampler1,coord+ofr).r, - TextureColor.Sample(Sampler1,coord+ofg).g, - TextureColor.Sample(Sampler1,coord+ofb).b,1.0); - } - else res = TextureColor.Sample(Sampler1,coord+ofs); - float2 nc = coord*(bresl/FROSTSIZE)*frostsize; - float bmp = pow(max(0,TextureFrost.SampleLevel(Sampler2,nc, - 0).x),frostbpow); - float dist = distance(coord,float2(0.5,0.5))*2.0; - dist = clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0, - 1.0)*frostblend; - float todpow = todx_ind(frostfactor); - /* Weathers not implemented in FO4 ENB as of 0.291 */ - if ( !frostalways ) dist *= weatherfactor(WT_COLD) - +(1.0-weatherfactor(WT_HOT))*todpow; - else dist *= todpow; - res.rgb *= 1.0+bmp*dist; - } - else res = TextureColor.Sample(Sampler1,coord); - if ( !focusdisplay ) return res; - if ( distance(coord,focuscenter) < 0.01 ) res.rgb = float3(1,0,0); - float cstep = (1.0/3.0); - float2 tcoord; - float focusradius = tod_ind(focusradius); - float2 bof = float2(1.0,1.0/ScreenSize.w)*focusradius*0.01; - float fan = focuscircleangle*2.0*pi; - tcoord.x = focuscenter.x+sin(fan)*bof.x; - tcoord.y = focuscenter.y+cos(fan)*bof.y; - if ( distance(coord,tcoord) < 0.01 ) res.rgb = float3(1,0,0); - tcoord.x = focuscenter.x+sin(fan+2.0*pi*cstep)*bof.x; - tcoord.y = focuscenter.y+cos(fan+2.0*pi*cstep)*bof.y; - if ( distance(coord,tcoord) < 0.01 ) res.rgb = float3(1,0,0); - tcoord.x = focuscenter.x+sin(fan+4.0*pi*cstep)*bof.x; - tcoord.y = focuscenter.y+cos(fan+4.0*pi*cstep)*bof.y; - if ( distance(coord,tcoord) < 0.01 ) res.rgb = float3(1,0,0); - return res; -} - -technique11 Aperture -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Aperture())); - } -} - -technique11 ReadFocus -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_ReadFocus())); - } -} - -technique11 Focus -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Focus())); - } -} - -technique11 Prepass -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre())); - } -} -technique11 Prepass1 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlurH())); - } -} -technique11 Prepass2 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlurV())); - } -} -technique11 Prepass3 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass())); - } -} -technique11 Prepass4 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_SSAOApply())); - } -} -technique11 Prepass5 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Edge())); - } -} -technique11 Prepass6 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Distortion())); - } -} -technique11 Prepass7 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_DoFBlur())); - } -} -technique11 Prepass8 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_FrostPass())); - } -} diff --git a/enbseries/enbdepthoffield.fx.ini b/enbseries/enbdepthoffield.fx.ini deleted file mode 100644 index cc93924..0000000 --- a/enbseries/enbdepthoffield.fx.ini +++ /dev/null @@ -1,186 +0,0 @@ -[ENBDEPTHOFFIELD.FX] -TECHNIQUE=1 -Fixed Resolution Width=1920 -Fixed Resolution Height=1080 -Depth Cutoff=999998.0 -Near Z=0.05 -Far Z=3098.0 -Distortion Chromatic Aberration=7.4 -Enable Underwater=false -Underwater Frequency=2.36, 3.39, 2.72 -Underwater Speed=24.3, 21.9, 26.5 -Underwater Amplitude=0.1, 0.11, 0.07 -Underwater Zoom=0.15 -Always Underwater=false -Enable Hot Air Refraction=false -Heat Texture Size=7.04 -Heat Speed=0.67 -Heat Fade Contrast=235.0 -Heat Fade Intensity=1.1 -Heat Fade Offset=-0.59 -Heat Intensity=0.6 -Heat Contrast=0.95 -Heat Time-of-day Contrast=0.5 -Heat Always Enable=false -Enable Screen Frost=false -Frost Contrast=0.83 -Frost Strength=0.05 -Frost Radial Contrast=2.11 -Frost Radial Intensity=1.22 -Frost Radial Offset=-0.94 -Frost Texture Blend=0.85 -Frost Texture Blend Contrast=2.78 -Frost Texture Size=0.8 -Frost Indoor Factor=0.0 -Frost Night Factor=0.0 -Frost Always Enable=false -Enable Focus Triangle=true -Display Focus Points=false -Enable Manual Focus=false -Manual Focus Depth=0.0 -Focus Point Center=0.5, 0.48, 0 -Focus Triangle Angle=0.5 -Focus Triangle Radius Night=12.0 -Focus Triangle Radius Day=16.0 -Focus Triangle Radius Interior=14.0 -Focus Triangle Blending Night=0.4 -Focus Triangle Blending Day=0.3 -Focus Triangle Blending Interior=0.5 -Focus Maximum Depth Night=990.0 -Focus Maximum Depth Day=994.0 -Focus Maximum Depth Interior=988.0 -DOF Intensity Night=375.0 -DOF Intensity Day=325.0 -DOF Intensity Interior=380.0 -DOF Contrast Night=3.95 -DOF Contrast Day=4.16 -DOF Contrast Interior=3.78 -DOF Shift Night=0.0 -DOF Shift Day=0.0 -DOF Shift Interior=0.0 -DOF Fixed Focus Intensity Night=1.0 -DOF Fixed Focus Intensity Day=1.0 -DOF Fixed Focus Intensity Interior=1.0 -DOF Fixed Focus Contrast Night=1.0 -DOF Fixed Focus Contrast Day=1.0 -DOF Fixed Focus Contrast Interior=1.0 -DOF Fixed Focus Shift Night=0.0 -DOF Fixed Focus Shift Day=0.0 -DOF Fixed Focus Shift Interior=0.0 -DOF Fixed Focus Blend Night=1.0 -DOF Fixed Focus Blend Day=1.0 -DOF Fixed Focus Blend Interior=1.0 -DOF Fixed Unfocus Intensity Night=1.16 -DOF Fixed Unfocus Intensity Day=1.12 -DOF Fixed Unfocus Intensity Interior=1.14 -DOF Fixed Unfocus Contrast Night=100.0 -DOF Fixed Unfocus Contrast Day=126.0 -DOF Fixed Unfocus Contrast Interior=110.0 -DOF Fixed Unfocus Shift Night=-0.85 -DOF Fixed Unfocus Shift Day=-0.9 -DOF Fixed Unfocus Shift Interior=-0.87 -DOF Fixed Unfocus Blend Night=1.0 -DOF Fixed Unfocus Blend Day=1.0 -DOF Fixed Unfocus Blend Interior=1.0 -DOF Fixed Use Cutoff=true -Disable DOF=false -DOF Gather Blur Radius=8.0 -Debug Depth=false -Debug Focus=false -Enable Edgevision=false -Edgevision Fade Contrast Night=1.8 -Edgevision Fade Contrast Day=1.9 -Edgevision Fade Contrast Interior=3.0 -Edgevision Fade Intensity Night=1.25 -Edgevision Fade Intensity Day=1.1 -Edgevision Fade Intensity Interior=1.3 -Edgevision Contrast=0.25 -Edgevision Intensity=8.0 -Edgevision Radius=1.0 -Enable SSAO=false -SSAO Radius=0.05 -SSAO Noise=0 -SSAO Fade Contrast Night=0.45 -SSAO Fade Contrast Day=0.4 -SSAO Fade Contrast Interior=0.5 -SSAO Fade Intensity Night=1.3 -SSAO Fade Intensity Day=1.1 -SSAO Fade Intensity Interior=1.3 -SSAO Intensity=1.25 -SSAO Contrast=0.65 -SSAO Blending=0.8 -SSAO Blur=true -SSAO Bilateral Factor=500.0 -SSAO Range=20.0 -SSAO Range Min=0.0 -SSAO Blur Radius=1.0 -Debug SSAO=false -SSAO Use Less Samples=true -SSAO Blur Use Less Samples=true -Focus Circle Discard Center Depth=0.01 -Underwater Frequency 1=2.36 -Underwater Frequency 2=3.39 -Underwater Frequency 3=2.72 -Underwater Speed 1=24.309999 -Underwater Speed 2=21.9 -Underwater Speed 3=26.549999 -Underwater Amplitude 1=0.1 -Underwater Amplitude 2=0.11 -Underwater Amplitude 3=0.07 -Focus Point Center X=0.5 -Focus Point Center Y=0.48 -Focus Triangle Radius Interior Night=5.0 -Focus Triangle Radius Interior Day=7.0 -Focus Triangle Blending Interior Night=0.5 -Focus Triangle Blending Interior Day=0.6 -Focus Maximum Depth Interior Night=984.0 -Focus Maximum Depth Interior Day=988.0 -DOF Intensity Interior Night=300.0 -DOF Intensity Interior Day=280.0 -DOF Contrast Interior Night=3.45 -DOF Contrast Interior Day=3.6 -DOF Shift Interior Night=0.0 -DOF Shift Interior Day=0.0 -DOF Fixed Focus Intensity Interior Night=1.0 -DOF Fixed Focus Intensity Interior Day=1.0 -DOF Fixed Focus Contrast Interior Night=1.0 -DOF Fixed Focus Contrast Interior Day=1.0 -DOF Fixed Focus Shift Interior Night=-0.01 -DOF Fixed Focus Shift Interior Day=-0.01 -DOF Fixed Focus Blend Interior Night=1.0 -DOF Fixed Focus Blend Interior Day=1.0 -DOF Fixed Unfocus Intensity Interior Night=1.5 -DOF Fixed Unfocus Intensity Interior Day=1.5 -DOF Fixed Unfocus Contrast Interior Night=230.0 -DOF Fixed Unfocus Contrast Interior Day=250.0 -DOF Fixed Unfocus Shift Interior Night=-0.98 -DOF Fixed Unfocus Shift Interior Day=-1.03 -DOF Fixed Unfocus Blend Interior Night=1.0 -DOF Fixed Unfocus Blend Interior Day=1.0 -Edgevision Fade Contrast Interior Night=2.0 -Edgevision Fade Contrast Interior Day=2.0 -Edgevision Fade Intensity Interior Night=500.0 -Edgevision Fade Intensity Interior Day=600.0 -SSAO Fade Contrast Interior Night=0.75 -SSAO Fade Contrast Interior Day=0.85 -SSAO Fade Intensity Interior Night=12.0 -SSAO Fade Intensity Interior Day=11.5 -Fixed ResolutionX=1920 -Fixed ResolutionY=1080 -DOF Minimum Blur=0.01 -Heat Factor Dawn=0.15 -Heat Factor Sunrise=0.59 -Heat Factor Day=0.89 -Heat Factor Sunset=0.67 -Heat Factor Dusk=0.13 -Heat Factor Night=0.0 -Heat Factor Interior=0.0 -Frost Factor Dawn=0.3 -Frost Factor Sunrise=0.1 -Frost Factor Day=0.0 -Frost Factor Sunset=0.1 -Frost Factor Dusk=0.3 -Frost Factor Night=0.85 -Frost Factor Interior=0.0 -DOF Bilateral Factor=5.0 -DOF Bilateral Radius=1.0 diff --git a/enbseries/enbeffect.fx b/enbseries/enbeffect.fx deleted file mode 100644 index 5d6ae26..0000000 --- a/enbseries/enbeffect.fx +++ /dev/null @@ -1,912 +0,0 @@ -/* - enbeffect.fx : MariENB3 base shader. - (C)2016 Marisa Kirisame, UnSX Team. - Part of MariENB3, the personal ENB of Marisa for Fallout 4. - Released under the GNU GPLv3 (or later). -*/ -#include "menbglobaldefs.fx" - -string str_noise = "Film Grain"; -bool ne -< - string UIName = "Enable Grain"; - string UIWidget = "Checkbox"; -> = {false}; -/* speed of grain */ -float nf -< - string UIName = "Grain Speed"; - string UIWidget = "Spinner"; -> = {2500.0}; -/* intensity of grain */ -float ni -< - string UIName = "Grain Intensity"; - string UIWidget = "Spinner"; -> = {0.05}; -/* saturation of grain */ -float ns -< - string UIName = "Grain Saturation"; - string UIWidget = "Spinner"; -> = {0.0}; -/* use two-pass grain (double the texture fetches, but looks less uniform) */ -bool np -< - string UIName = "Grain Two-Pass"; - string UIWidget = "Checkbox"; -> = {true}; -/* - blending mode for grain: - 0 -> normal - 1 -> add - 2 -> overlay - 3 -> "dark mask", a personal invention -*/ -int nb -< - string UIName = "Grain Blending Mode"; - string UIWidget = "Spinner"; - int UIMin = 0; - int UIMax = 3; -> = {1}; -/* dark mask blend mode contrast for mask image */ -float bnp -< - string UIName = "Grain Dark Mask Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.5}; -/* two-pass distortion factor (0 = look just like one-pass grain) */ -float nk -< - string UIName = "Grain Two-Pass Factor"; - string UIWidget = "Spinner"; -> = {0.04}; -/* zoom factors for each component of each noise texture */ -float3 nm -< - string UIName = "Grain Magnification"; - string UIWidget = "Vector"; -> = {13.25,19.64,17.35}; -float3 nm1 -< - string UIName = "Grain Pass 1 Magnification"; - string UIWidget = "Vector"; -> = {2.05,3.11,2.22}; -float3 nm2 -< - string UIName = "Grain Pass 2 Magnification"; - string UIWidget = "Vector"; -> = {4.25,0.42,6.29}; -/* contrast of grain */ -float nj -< - string UIName = "Grain Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {2.0}; -/* tone mapping */ -string str_tonemap = "Filmic Tone Mapping"; -bool tmapenable -< - string UIName = "Enable Tonemapping"; - string UIWidget = "Checkbox"; -> = {false}; -float unA_n -< - string UIName = "Tonemap Shoulder Strength Night"; - string UIWidget = "Spinner"; -> = {0.5}; -float unA_d -< - string UIName = "Tonemap Shoulder Strength Day"; - string UIWidget = "Spinner"; -> = {0.5}; -float unA_i -< - string UIName = "Tonemap Shoulder Strength Interior"; - string UIWidget = "Spinner"; -> = {0.5}; -float unB_n -< - string UIName = "Tonemap Linear Strength Night"; - string UIWidget = "Spinner"; -> = {1.0}; -float unB_d -< - string UIName = "Tonemap Linear Strength Day"; - string UIWidget = "Spinner"; -> = {1.0}; -float unB_i -< - string UIName = "Tonemap Linear Strength Interior"; - string UIWidget = "Spinner"; -> = {1.0}; -float unC_n -< - string UIName = "Tonemap Linear Angle Night"; - string UIWidget = "Spinner"; -> = {0.2}; -float unC_d -< - string UIName = "Tonemap Linear Angle Day"; - string UIWidget = "Spinner"; -> = {0.2}; -float unC_i -< - string UIName = "Tonemap Linear Angle Interior"; - string UIWidget = "Spinner"; -> = {0.2}; -float unD_n -< - string UIName = "Tonemap Toe Strength Night"; - string UIWidget = "Spinner"; -> = {0.75}; -float unD_d -< - string UIName = "Tonemap Toe Strength Day"; - string UIWidget = "Spinner"; -> = {0.75}; -float unD_i -< - string UIName = "Tonemap Toe Strength Interior"; - string UIWidget = "Spinner"; -> = {0.75}; -float unE_n -< - string UIName = "Tonemap Toe Numerator Night"; - string UIWidget = "Spinner"; -> = {0.02}; -float unE_d -< - string UIName = "Tonemap Toe Numerator Day"; - string UIWidget = "Spinner"; -> = {0.02}; -float unE_i -< - string UIName = "Tonemap Toe Numerator Interior"; - string UIWidget = "Spinner"; -> = {0.02}; -float unF_n -< - string UIName = "Tonemap Toe Denominator Night"; - string UIWidget = "Spinner"; -> = {0.30}; -float unF_d -< - string UIName = "Tonemap Toe Denominator Day"; - string UIWidget = "Spinner"; -> = {0.30}; -float unF_i -< - string UIName = "Tonemap Toe Denominator Interior"; - string UIWidget = "Spinner"; -> = {0.30}; -float unW_n -< - string UIName = "Tonemap Linear White Night"; - string UIWidget = "Spinner"; -> = {10.0}; -float unW_d -< - string UIName = "Tonemap Linear White Day"; - string UIWidget = "Spinner"; -> = {10.0}; -float unW_i -< - string UIName = "Tonemap Linear White Interior"; - string UIWidget = "Spinner"; -> = {10.0}; -/* Color grading */ -string str_grade = "Color Grading Suite"; -bool gradeenable1 -< - string UIName = "Enable RGB Grading"; - string UIWidget = "Checkbox"; -> = {false}; -/* color component multipliers */ -float3 grademul_n -< - string UIName = "Grading Intensity Night"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -float3 grademul_d -< - string UIName = "Grading Intensity Day"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -float3 grademul_i -< - string UIName = "Grading Intensity Interior"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -/* color component contrasts */ -float3 gradepow_n -< - string UIName = "Grading Contrast Night"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -float3 gradepow_d -< - string UIName = "Grading Contrast Day"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -float3 gradepow_i -< - string UIName = "Grading Contrast Interior"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -/* colorization factors */ -bool gradeenable2 -< - string UIName = "Enable Vibrance Grading"; - string UIWidget = "Checkbox"; -> = {false}; -float3 gradecol_n -< - string UIName = "Grading Color Night"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -float3 gradecol_d -< - string UIName = "Grading Color Day"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -float3 gradecol_i -< - string UIName = "Grading Color Interior"; - string UIWidget = "Vector"; -> = {1.0,1.0,1.0}; -/* blend factor for colorization (negative values are quite fancy) */ -float gradecolfact_n -< - string UIName = "Grading Color Factor Night"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradecolfact_d -< - string UIName = "Grading Color Factor Day"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradecolfact_i -< - string UIName = "Grading Color Factor Interior"; - string UIWidget = "Spinner"; -> = {0.0}; -/* HSV grading */ -bool gradeenable3 -< - string UIName = "Enable HSV Grading"; - string UIWidget = "Checkbox"; -> = {false}; -/* saturation multiplier */ -float gradesatmul_n -< - string UIName = "Grading Saturation Intensity Night"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradesatmul_d -< - string UIName = "Grading Saturation Intensity Day"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradesatmul_i -< - string UIName = "Grading Saturation Intensity Interior"; - string UIWidget = "Spinner"; -> = {1.0}; -/* saturation power */ -float gradesatpow_n -< - string UIName = "Grading Saturation Contrast Night"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradesatpow_d -< - string UIName = "Grading Saturation Contrast Day"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradesatpow_i -< - string UIName = "Grading Saturation Contrast Interior"; - string UIWidget = "Spinner"; -> = {1.0}; -/* value multiplier */ -float gradevalmul_n -< - string UIName = "Grading Value Intensity Night"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradevalmul_d -< - string UIName = "Grading Value Intensity Day"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradevalmul_i -< - string UIName = "Grading Value Intensity Interior"; - string UIWidget = "Spinner"; -> = {1.0}; -/* value power */ -float gradevalpow_n -< - string UIName = "Grading Value Contrast Night"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradevalpow_d -< - string UIName = "Grading Value Contrast Day"; - string UIWidget = "Spinner"; -> = {1.0}; -float gradevalpow_i -< - string UIName = "Grading Value Contrast Interior"; - string UIWidget = "Spinner"; -> = {1.0}; -bool colorizeafterhsv -< - string UIName = "Colorize After HSV"; - string UIWidget = "Checkbox"; -> = {true};/* LUT grading */ -string str_lut = "RGB Lookup Table Grading"; -bool lutenable -< - string UIName = "Enable LUT Grading"; - string UIWidget = "Checkbox"; -> = {false}; -float lutblend_n -< - string UIName = "LUT Blend Night"; - string UIWidget = "Spinner"; -> = {1.0}; -float lutblend_d -< - string UIName = "LUT Blend Day"; - string UIWidget = "Spinner"; -> = {1.0}; -float lutblend_i -< - string UIName = "LUT Blend Interior"; - string UIWidget = "Spinner"; -> = {1.0}; -#ifdef LUTMODE_LEGACY -int clut -< - string UIName = "LUT Preset"; - string UIWidget = "Spinner"; - int UIMin = 0; - int UIMax = 63; -> = {1}; -#endif -string str_dither = "Dithering"; -bool dodither -< - string UIName = "Enable Post Dither"; - string UIWidget = "Checkbox"; -> = {true}; -int dither -< - string UIName = "Dither Pattern"; - string UIWidget = "Spinner"; - int UIMin = 0; - int UIMax = 4; -> = {4}; -string str_debug = "Debugging"; -bool bloomdebug -< - string UIName = "Display Bloom"; - string UIWidget = "Checkbox"; -> = {false}; -bool adaptdebug -< - string UIName = "Display Adaptation"; - string UIWidget = "Checkbox"; -> = {false}; - -/* - dithering threshold maps - don't touch unless you know what you're doing -*/ -static const float checkers[4] = -{ - 1.0,0.0, - 0.0,1.0 -}; -#define d(x) x/4.0 -static const float ordered2[4] = -{ - d(0),d(2), - d(4),d(2) -}; -#undef d -#define d(x) x/9.0 -static const float ordered3[9] = -{ - d(2),d(6),d(3), - d(5),d(0),d(8), - d(1),d(7),d(4) -}; -#undef d -#define d(x) x/16.0 -static const float ordered4[16] = -{ - d( 0),d( 8),d( 2),d(10), - d(12),d( 4),d(14),d( 6), - d( 3),d(11),d( 1),d( 9), - d(15),d( 7),d(13),d( 5) -}; -#undef d -#define d(x) x/64.0 -static const float ordered8[64] = -{ - d( 0),d(48),d(12),d(60),d( 3),d(51),d(15),d(63), - d(32),d(16),d(44),d(28),d(35),d(19),d(47),d(31), - d( 8),d(56),d( 4),d(52),d(11),d(59),d( 7),d(55), - d(40),d(24),d(36),d(20),d(43),d(27),d(39),d(23), - d( 2),d(50),d(14),d(62),d( 1),d(49),d(13),d(61), - d(34),d(18),d(46),d(30),d(33),d(17),d(45),d(29), - d(10),d(58),d( 6),d(54),d( 9),d(57),d( 5),d(53), - d(42),d(26),d(38),d(22),d(41),d(25),d(37),d(21) -}; -#undef d - -float4 Timer; -float4 ScreenSize; -float ENightDayFactor; -float EInteriorFactor; -float4 TimeOfDay1; -float4 TimeOfDay2; - -#ifdef SKYRIMSE -float4 Params01[7]; -#else -float4 Params01[6]; -#endif -float4 ENBParams01; -Texture2D TextureColor; -Texture2D TextureBloom; -Texture2D TextureAdaptation; - -Texture2D TextureNoise2 -< - string ResourceName = "menbnoise1.png"; ->; -Texture2D TextureNoise3 -< - string ResourceName = "menbnoise2.png"; ->; -Texture2D TextureLUT -< -#ifdef LUTMODE_LEGACY - string ResourceName = "menblutpreset.png"; -#endif -#ifdef LUTMODE_16 - string ResourceName = "menblut16.png"; -#endif -#ifdef LUTMODE_64 - string ResourceName = "menblut64.png"; -#endif ->; - -SamplerState Sampler0 -{ - Filter = MIN_MAG_MIP_POINT; - AddressU = Clamp; - AddressV = Clamp; -}; -SamplerState Sampler1 -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Clamp; - AddressV = Clamp; -}; -SamplerState SamplerLUT -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Wrap; - AddressV = Wrap; - MaxLOD = 0; - MinLOD = 0; -}; -SamplerState SamplerNoise2 -{ - Filter = MIN_LINEAR_MAG_MIP_POINT; - AddressU = Wrap; - AddressV = Wrap; - MaxLOD = 0; - MinLOD = 0; -}; -SamplerState SamplerNoise3 -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Wrap; - AddressV = Wrap; - MaxLOD = 0; - MinLOD = 0; -}; - -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_OUTPUT_POST -{ - float4 pos : SV_POSITION; - float2 txcoord0 : TEXCOORD0; -}; - -VS_OUTPUT_POST VS_Draw( VS_INPUT_POST IN ) -{ - VS_OUTPUT_POST OUT; - OUT.pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord0.xy = IN.txcoord.xy; - return OUT; -} - -/* helper functions */ -/* photometric */ -#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722)) -/* CCIR601 */ -//#define luminance(x) dot(x,float3(0.299,0.587,0.114)) -/* overlay blend */ -#define overlay(a,b) (a<0.5)?(2.0*a*b):(1.0-(2.0*(1.0-a)*(1.0-b))) -/* "dark mask" blending is something I came up with and can't really explain */ -#define darkmask(a,b) (a>0.5)?(2.0*a*(0.5+b)):(1.0-2.0*(1.0-a)*(1.0-((0.5+b)))) -float3 rgb2hsv( float3 c ) -{ - float4 K = float4(0.0,-1.0/3.0,2.0/3.0,-1.0); - float4 p = (c.g 0.5 ) r1.xy = IN.txcoord0.xy; - r1.xyz = TextureBloom.Sample(Sampler1,r1.xy).xyz; - r2.xy = TextureAdaptation.Sample(Sampler1,IN.txcoord0.xy).xy; - r0.w = dot(float3(0.2125,0.7154,0.0721),r0.xyz); - r0.w = max(r0.w,0.00001); - r1.w = r2.y/r2.x; - r2.y = r0.w*r1.w; - if ( Params01[2].z >= 0.5 ) r2.z = 0xffffffff; - else r2.z = 0; - r3.xy = r1.w*r0.w+float2(-0.004,1.0); - r1.w = max(r3.x, 0.0); - r3.xz = r1.w*6.2+float2(0.5,1.7); - r2.w = r1.w*r3.x; - r1.w = r1.w*r3.z+0.06; - r1.w = r2.w/r1.w; - r1.w = pow(r1.w,2.2); - r1.w = r1.w*Params01[2].y; - r2.w = r2.y*Params01[2].y+1.0; - r2.y = r2.w*r2.y; - r2.y = r2.y/r3.y; - if (r2.z == 0) r1.w = r2.y; - else r1.w = r1.w; - r0.w = r1.w/r0.w; - r1.w = saturate(Params01[2].x-r1.w); - r1.xyz = r1*r1.w; - r0.xyz = r0*r0.w+r1; - r1.x = dot(r0.xyz,float3(0.2125,0.7154,0.0721)); - r0.w = 1.0; - r0 = r0-r1.x; - r0 = Params01[3].x*r0+r1.x; - r1 = Params01[4]*r1.x-r0; - r0 = Params01[4].w*r1+r0; - r0 = Params01[3].w*r0-r2.x; - r0 = Params01[3].z*r0+r2.x; - r0.xyz = saturate(r0); - r1.xyz = pow(r1.xyz,Params01[6].w); - r1 = Params01[5]-r0; - res = Params01[5].w*r1+r0; -#else - r0.xyz = color.xyz; - r1.xy = Params01[4].zw*IN.txcoord0.xy; - r1.xyz = TextureBloom.Sample(Sampler1,r1.xy).xyz; - r0.w = TextureAdaptation.Sample(Sampler0,IN.txcoord0.xy).x; - r1.w = Params01[1].z/(0.001+r0.w); - r2.x = r1.w -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0, VS_Draw())); - SetPixelShader(CompileShader(ps_5_0, PS_Draw())); - } -} - -technique11 ORIGINALPOSTPROCESS -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0, VS_Draw())); - SetPixelShader(CompileShader(ps_5_0, PS_DrawOriginal())); - } -} diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini deleted file mode 100644 index cc4a264..0000000 --- a/enbseries/enbeffect.fx.ini +++ /dev/null @@ -1,143 +0,0 @@ -[ENBEFFECT.FX] -TECHNIQUE=1 -Enable Grain=false -Grain Speed=2500.0 -Grain Intensity=0.06 -Grain Saturation=-0.23 -Grain Two-Pass=true -Grain Blending Mode=3 -Grain Dark Mask Contrast=0.74 -Grain Two-Pass Factor=0.04 -Grain Magnification=13.3, 19.6, 17.4 -Grain Pass 1 Magnification=2.05, 3.11, 2.22 -Grain Pass 2 Magnification=4.25, 0.42, 6.29 -Grain Contrast=3.54 -Enable Tonemapping=true -Tonemap Shoulder Strength Night=0.87 -Tonemap Shoulder Strength Day=0.85 -Tonemap Shoulder Strength Interior=0.67 -Tonemap Linear Strength Night=1.32 -Tonemap Linear Strength Day=1.21 -Tonemap Linear Strength Interior=1.37 -Tonemap Linear Angle Night=0.2 -Tonemap Linear Angle Day=0.26 -Tonemap Linear Angle Interior=0.14 -Tonemap Toe Strength Night=1.27 -Tonemap Toe Strength Day=1.36 -Tonemap Toe Strength Interior=1.26 -Tonemap Toe Numerator Night=3.63 -Tonemap Toe Numerator Day=3.4 -Tonemap Toe Numerator Interior=3.58 -Tonemap Toe Denominator Night=0.99 -Tonemap Toe Denominator Day=1.15 -Tonemap Toe Denominator Interior=1.05 -Tonemap Linear White Night=4.3 -Tonemap Linear White Day=4.17 -Tonemap Linear White Interior=4.26 -Enable RGB Grading=true -Grading Intensity Night=1.08, 1.03, 1 -Grading Intensity Day=1.06, 1.03, 1.08 -Grading Intensity Interior=1.07, 1.03, 1.01 -Grading Contrast Night=0.97, 0.98, 0.94 -Grading Contrast Day=0.96, 0.98, 0.98 -Grading Contrast Interior=0.96, 0.98, 0.95 -Enable Vibrance Grading=true -Grading Color Night=-0.44, -0.33, -0.83 -Grading Color Day=-0.65, -0.3, -0.69 -Grading Color Interior=-0.25, -0.15, -0.05 -Grading Color Factor Night=-0.06 -Grading Color Factor Day=-0.04 -Grading Color Factor Interior=-0.05 -Enable HSV Grading=true -Grading Saturation Intensity Night=1.05 -Grading Saturation Intensity Day=1.07 -Grading Saturation Intensity Interior=1.05 -Grading Saturation Contrast Night=1.01 -Grading Saturation Contrast Day=1.06 -Grading Saturation Contrast Interior=1.01 -Grading Value Intensity Night=1.09 -Grading Value Intensity Day=1.06 -Grading Value Intensity Interior=1.08 -Grading Value Contrast Night=1.41 -Grading Value Contrast Day=1.55 -Grading Value Contrast Interior=1.48 -Colorize After HSV=true -Enable LUT Grading=true -LUT Blend Night=0.31 -LUT Blend Day=0.51 -LUT Blend Interior=0.38 -Enable Post Dither=false -Dither Pattern=4 -Display Bloom=false -Grain Magnification 1=13.25 -Grain Magnification 2=19.639999 -Grain Magnification 3=17.35 -Grain Pass 1 Magnification 1=2.05 -Grain Pass 1 Magnification 2=3.11 -Grain Pass 1 Magnification 3=2.22 -Grain Pass 2 Magnification 1=4.25 -Grain Pass 2 Magnification 2=0.42 -Grain Pass 2 Magnification 3=6.29 -Tonemap Shoulder Strength Interior Night=1.13 -Tonemap Shoulder Strength Interior Day=1.14 -Tonemap Linear Strength Interior Night=0.88 -Tonemap Linear Strength Interior Day=0.92 -Tonemap Linear Angle Interior Night=0.68 -Tonemap Linear Angle Interior Day=0.58 -Tonemap Toe Strength Interior Night=0.79 -Tonemap Toe Strength Interior Day=0.69 -Tonemap Toe Numerator Interior Night=2.5 -Tonemap Toe Numerator Interior Day=2.72 -Tonemap Toe Denominator Interior Night=1.25 -Tonemap Toe Denominator Interior Day=1.07 -Tonemap Linear White Interior Night=1.33 -Tonemap Linear White Interior Day=1.37 -Grading Intensity Night Red=1.04 -Grading Intensity Night Green=1.08 -Grading Intensity Night Blue=1.07 -Grading Intensity Day Red=1.11 -Grading Intensity Day Green=1.08 -Grading Intensity Day Blue=1.04 -Grading Intensity Interior Night Red=1.07 -Grading Intensity Interior Night Green=1.03 -Grading Intensity Interior Night Blue=1.01 -Grading Intensity Interior Day Red=1.1 -Grading Intensity Interior Day Green=1.05 -Grading Intensity Interior Day Blue=1.02 -Grading Contrast Night Red=0.97 -Grading Contrast Night Green=0.94 -Grading Contrast Night Blue=0.96 -Grading Contrast Day Red=0.94 -Grading Contrast Day Green=0.99 -Grading Contrast Day Blue=0.98 -Grading Contrast Interior Night Red=0.96 -Grading Contrast Interior Night Green=0.98 -Grading Contrast Interior Night Blue=0.95 -Grading Contrast Interior Day Red=0.94 -Grading Contrast Interior Day Green=0.96 -Grading Contrast Interior Day Blue=0.99 -Grading Color Night Red=-0.91 -Grading Color Night Green=-0.62 -Grading Color Night Blue=-0.94 -Grading Color Day Red=-0.48 -Grading Color Day Green=-0.11 -Grading Color Day Blue=-0.65 -Grading Color Interior Night Red=-0.28 -Grading Color Interior Night Green=-0.12 -Grading Color Interior Night Blue=-0.06 -Grading Color Interior Day Red=-0.47 -Grading Color Interior Day Green=-0.12 -Grading Color Interior Day Blue=-0.14 -Grading Color Factor Interior Night=-0.11 -Grading Color Factor Interior Day=-0.09 -Grading Saturation Intensity Interior Night=1.43 -Grading Saturation Intensity Interior Day=1.46 -Grading Saturation Contrast Interior Night=1.19 -Grading Saturation Contrast Interior Day=1.1 -Grading Value Intensity Interior Night=1.03 -Grading Value Intensity Interior Day=1.09 -Grading Value Contrast Interior Night=1.42 -Grading Value Contrast Interior Day=1.62 -LUT Blend Interior Night=0.39 -LUT Blend Interior Day=0.45 -Display Adaptation=false diff --git a/enbseries/enbeffectpostpass.fx b/enbseries/enbeffectpostpass.fx deleted file mode 100644 index d6f5e98..0000000 --- a/enbseries/enbeffectpostpass.fx +++ /dev/null @@ -1,1062 +0,0 @@ -/* - enbeffectpostpass.fx : MariENB3 extra shader. - (C)2016 Marisa Kirisame, UnSX Team. - Part of MariENB3, the personal ENB of Marisa for Fallout 4. - Released under the GNU GPLv3 (or later). -*/ -#include "menbglobaldefs.fx" - -/* BlockGFX filter, I'm proud of it */ -string str_block = "BlockGFX Suite"; -bool useblock -< - string UIName = "Enable Block GFX"; - string UIWidget = "Checkbox"; -> = {false}; -/* - emulated resolution: - 0 or 1 : real resolution - <1 and >0 : multiple of real resolution (e.g.: 0.5 is half resolution) - >1 : this resolution (e.g.: 320x200 is good ol' Mode 13h) -*/ -float2 bres -< - string UIName = "Emulated Resolution"; - string UIWidget = "Vector"; - float2 UIMin = {0.0,0.0}; -> = {0.5,0.5}; -/* zooming factors (<=0 for stretch) */ -float2 sres -< - string UIName = "Zoom Factor"; - string UIWidget = "Vector"; - float2 UIMin = {0.0,0.0}; -> = {0.0,0.0}; -/* - palette type: - -2 : Standard VGA 256-color palette - -1 : disable - 0 : CGA (320x200 4-color, or 640x200 monochrome) - 1 : EGA (320x200, 16 colors) - 2 : RGB2 (64-color quarter VGA palette, used in AOS) - 3 : RGB323 (8-bit RGB, I don't think this was a real thing) - 4 : VGA (256 colors, standard palette) - 5 : Doom (256 colors, does not cover a lot) - 6 : Quake I (256 colors, covers even less) - 7 : RGB4 (4bpc, I also don't think this was ever used in real hardware) - 8 : RGB565 (ol' 16-bit "true color") - 9 : RGB6 (typical screens incapable of 8bpc) -*/ -int paltype -< - string UIName = "Palette Type"; - string UIWidget = "Spinner"; - int UIMin = -1; - int UIMax = 9; -> = {1}; -/* - CGA palette to use: - 0 : black, white. - 1 : black, cyan, magenta, white. low contrast - 2 : black, cyan, magenta, white. high contrast - 3 : black, green, red, brown. low contrast - 4 : black, green, red, brown. high contrast - 5 : black, cyan, red, white. low contrast - 6 : black, cyan, red, white. high contrast -*/ -int cgapal -< - string UIName = "CGA Palette"; - string UIWidget = "Spinner"; - int UIMin = 0; - int UIMax = 6; -> = {1}; -/* - EGA palette to use: - 0 : Standard EGA - 1 : AOS EGA (it's designed for text, but looks well on images too) -*/ -int egapal -< - string UIName = "EGA Palette"; - string UIWidget = "Spinner"; - int UIMin = 0; - int UIMax = 1; -> = {0}; -/* - Dithering mode: - -1 : No dithering, just raw banding - 0 : 2x2 checkerboard dithering, looks like ass - 1 : 2x2 ordered dithering - 2 : 3x3 ordered dithering - 3 : 4x4 ordered dithering - 4 : 8x8 ordered dithering -*/ -int dither -< - string UIName = "Dithering Pattern"; - string UIWidget = "Spinner"; - int UIMin = -1; - int UIMax = 4; -> = {4}; -/* gamma modifier for base color, lower values raise midtones and viceversa */ -float bgamma -< - string UIName = "Contrast Modifier"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.35}; -/* saturation modifier for base color, helps with limited palettes */ -float bsaturation -< - string UIName = "Saturation Modifier"; - string UIWidget = "Spinner"; -> = {1.1}; -/* base brightness bump for the dither grid */ -float bdbump -< - string UIName = "Dither Offset"; - string UIWidget = "Spinner"; -> = {-0.1}; -/* range multiplier for the dither grid */ -float bdmult -< - string UIName = "Dither Range"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.25}; -/* ASCII art filter */ -string str_ascii = "Luma ASCII Art Filter"; -bool asciienable -< - string UIName = "Enable ASCII"; - string UIWidget = "Checkbox"; -> = {false}; -bool asciimono -< - string UIName = "ASCII Monochrome"; - string UIWidget = "Checkbox"; -> = {true}; -float asciiblend -< - string UIName = "ASCII Blend"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.0}; -string str_mask = "Depth Chroma Key"; -bool maskenable -< - string UIName = "Enable Chroma Key"; - string UIWidget = "Checkbox"; -> = {false}; -float3 mask -< - string UIName = "Chroma Key Red"; - string UIWidget = "Color"; -> = {0.0,1.0,0.0}; -float maskd -< - string UIName = "Chroma Key Depth"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.5}; -string str_dot = "RGBI Dot Matrix"; -bool dotenable -< - string UIName = "Enable Dot Matrix"; - string UIWidget = "Checkbox"; -> = {false}; -int dotsize -< - string UIName = "Dot Size"; - string UIWidget = "Spinner"; - int UIMin = 1; -> = {1}; -float dotblend -< - string UIName = "Dot Blend"; - string UIWidget = "Spinner"; - float UIMin = 0.0; - float UIMax = 1.0; -> = {0.4}; -float dotmult -< - string UIName = "Dot Intensity"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float dotpow -< - string UIName = "Dot Contrast"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -string str_curve = "Lens Curvature"; -bool curveenable -< - string UIName = "Enable Curvature"; - string UIWidget = "Checkbox"; -> = {false}; -float chromaab -< - string UIName = "Curve Chromatic Aberration"; - string UIWidget = "Spinner"; -> = {0.0}; -float lenszoom -< - string UIName = "Curve Zooming"; - string UIWidget = "Spinner"; -> = {50.0}; -float lensdist -< - string UIName = "Curve Distortion"; - string UIWidget = "Spinner"; -> = {0.0}; -float curvesoft -< - string UIName = "Curve Sampling Soften"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.0}; -/* BlurSharpShift, some people are obsessed with this nonsense */ -string str_bss = "BlurSharpShift"; -bool bssblurenable -< - string UIName = "Enable Blur"; - string UIWidget = "Checkbox"; -> = {false}; -float bssblurradius -< - string UIName = "Blur Sampling Range"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.25}; -bool bsssharpenable -< - string UIName = "Enable Sharp"; - string UIWidget = "Checkbox"; -> = {false}; -float bsssharpradius -< - string UIName = "Sharp Sampling Range"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; -float bsssharpamount -< - string UIName = "Sharpening Amount"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {6.0}; -bool bssshiftenable -< - string UIName = "Enable Shift"; - string UIWidget = "Checkbox"; -> = {false}; -float bssshiftradius -< - string UIName = "Shift Sampling Range"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.75}; -/* luma sharpen because of reasons */ -string str_lsharp = "Luma Sharpen"; -bool lsharpenable -< - string UIName = "Luma Sharpen Enable"; - string UIWidget = "Checkbox"; -> = {false}; -float lsharpradius -< - string UIName = "Luma Sharpen Radius"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.8}; -float lsharpclamp -< - string UIName = "Luma Sharpen Clamp"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.02}; -float lsharpblend -< - string UIName = "Luma Sharpen Blending"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.2}; - -/* - dithering threshold maps - don't touch unless you know what you're doing -*/ -static const float checkers[4] = -{ - 1.0,0.0, - 0.0,1.0 -}; -#define d(x) x/4.0 -static const float ordered2[4] = -{ - d(0),d(2), - d(4),d(2) -}; -#undef d -#define d(x) x/9.0 -static const float ordered3[9] = -{ - d(2),d(6),d(3), - d(5),d(0),d(8), - d(1),d(7),d(4) -}; -#undef d -#define d(x) x/16.0 -static const float ordered4[16] = -{ - d( 0),d( 8),d( 2),d(10), - d(12),d( 4),d(14),d( 6), - d( 3),d(11),d( 1),d( 9), - d(15),d( 7),d(13),d( 5) -}; -#undef d -#define d(x) x/64.0 -static const float ordered8[64] = -{ - d( 0),d(48),d(12),d(60),d( 3),d(51),d(15),d(63), - d(32),d(16),d(44),d(28),d(35),d(19),d(47),d(31), - d( 8),d(56),d( 4),d(52),d(11),d(59),d( 7),d(55), - d(40),d(24),d(36),d(20),d(43),d(27),d(39),d(23), - d( 2),d(50),d(14),d(62),d( 1),d(49),d(13),d(61), - d(34),d(18),d(46),d(30),d(33),d(17),d(45),d(29), - d(10),d(58),d( 6),d(54),d( 9),d(57),d( 5),d(53), - d(42),d(26),d(38),d(22),d(41),d(25),d(37),d(21) -}; -#undef d -/* - palettes - don't touch unless you know what you're doing -*/ -#define d(x) x/3.0 -static const float3 cga1l[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(0),d(2),d(2)), - float3(d(2),d(0),d(2)), - float3(d(2),d(2),d(2)) -}; -static const float3 cga1h[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(1),d(3),d(3)), - float3(d(3),d(1),d(3)), - float3(d(3),d(3),d(3)) -}; -static const float3 cga2l[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(0),d(2),d(0)), - float3(d(2),d(0),d(0)), - float3(d(2),d(1),d(0)) -}; -static const float3 cga2h[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(1),d(3),d(1)), - float3(d(3),d(1),d(1)), - float3(d(3),d(2),d(1)) -}; -static const float3 cga3l[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(0),d(2),d(2)), - float3(d(2),d(0),d(0)), - float3(d(2),d(2),d(2)) -}; -static const float3 cga3h[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(1),d(3),d(3)), - float3(d(3),d(1),d(1)), - float3(d(3),d(3),d(3)) -}; -static const float3 stdega[16] = -{ - float3(d(0),d(0),d(0)), - float3(d(2),d(0),d(0)), - float3(d(0),d(2),d(0)), - float3(d(2),d(1),d(0)), - float3(d(0),d(0),d(2)), - float3(d(2),d(0),d(2)), - float3(d(0),d(2),d(2)), - float3(d(2),d(2),d(2)), - float3(d(1),d(1),d(1)), - float3(d(3),d(1),d(1)), - float3(d(1),d(3),d(1)), - float3(d(3),d(3),d(1)), - float3(d(1),d(1),d(3)), - float3(d(3),d(1),d(3)), - float3(d(1),d(3),d(3)), - float3(d(3),d(3),d(3)) -}; -#undef d -#define d(x) x/256.0 -static const float3 aosega[16] = -{ - float3(d( 0),d( 0),d( 0)), - float3(d(128),d( 0),d( 0)), - float3(d( 32),d(128),d( 0)), - float3(d(160),d( 64),d( 32)), - float3(d( 0),d( 32),d( 88)), - float3(d( 60),d( 0),d( 88)), - float3(d( 16),d(160),d(208)), - float3(d( 88),d( 88),d( 88)), - float3(d( 32),d( 32),d( 32)), - float3(d(256),d( 64),d( 64)), - float3(d( 72),d(256),d( 64)), - float3(d(256),d(224),d( 60)), - float3(d( 48),d(128),d(256)), - float3(d(192),d( 48),d(256)), - float3(d( 72),d(224),d(256)), - float3(d(256),d(256),d(256)), -}; -#undef d -/* gauss stuff */ -float gauss3[3] = -{ - 0.444814, 0.239936, 0.037657 -}; - -float4 ScreenSize; -Texture2D TextureOriginal; -Texture2D TextureColor; -Texture2D TextureDepth; -Texture2D TextureFont -< - string ResourceName = "menbvgaluma.png"; ->; -Texture2D TextureDots -< - string ResourceName = "menbdots.png"; ->; -Texture2D TextureDoom -< - string ResourceName = "menbdoomlut.png"; ->; -Texture2D TextureQuake -< - string ResourceName = "menbquakelut.png"; ->; -Texture2D TextureVGA -< - string ResourceName = "menbvgalut.png"; ->; - -SamplerState Sampler -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Clamp; - AddressV = Clamp; -}; -SamplerState SamplerB -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Border; - AddressV = Border; -}; -SamplerState SamplerFont -{ - Filter = MIN_LINEAR_MAG_MIP_POINT; - AddressU = Wrap; - AddressV = Wrap; - MaxLOD = 0; - MinLOD = 0; -}; -SamplerState SamplerDots -{ - Filter = MIN_MAG_MIP_LINEAR; - AddressU = Wrap; - AddressV = Wrap; - MaxLOD = 0; - MinLOD = 0; -}; -SamplerState SamplerLUT -{ - Filter = MIN_MAG_MIP_POINT; - AddressU = Clamp; - AddressV = Clamp; - MaxLOD = 0; - MinLOD = 0; -}; - -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_OUTPUT_POST -{ - float4 pos : SV_POSITION; - float2 txcoord : TEXCOORD0; -}; - -VS_OUTPUT_POST VS_PostProcess(VS_INPUT_POST IN) -{ - VS_OUTPUT_POST OUT; - OUT.pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord.xy = IN.txcoord.xy; - return OUT; -} - -/* helpers */ -/* photometric */ -#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722)) -/* CCIR601 */ -//#define luminance(x) dot(x,float3(0.299,0.587,0.114)) -float3 rgb2hsv( float3 c ) -{ - float4 K = float4(0.0,-1.0/3.0,2.0/3.0,-1.0); - float4 p = (c.g0.5); - } - float dist = 2.0; - int idx = 0; - if ( cgapal == 1 ) - { - [unroll] for ( int i=0; i<4; i++ ) - if ( distance(dac.rgb,cga1l[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga1l[i]); - } - color.rgb = cga1l[idx]; - } - else if ( cgapal == 2 ) - { - [unroll] for ( int i=0; i<4; i++ ) - if ( distance(dac.rgb,cga1h[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga1h[i]); - } - color.rgb = cga1h[idx]; - } - else if ( cgapal == 3 ) - { - [unroll] for ( int i=0; i<4; i++ ) - if ( distance(dac.rgb,cga2l[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga2l[i]); - } - color.rgb = cga2l[idx]; - } - else if ( cgapal == 4 ) - { - [unroll] for ( int i=0; i<4; i++ ) - if ( distance(dac.rgb,cga2h[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga2h[i]); - } - color.rgb = cga2h[idx]; - } - else if ( cgapal == 5 ) - { - [unroll] for ( int i=0; i<4; i++ ) - if ( distance(dac.rgb,cga3l[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga3l[i]); - } - color.rgb = cga3l[idx]; - } - else if ( cgapal == 6 ) - { - [unroll] for ( int i=0; i<4; i++ ) - if ( distance(dac.rgb,cga3h[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga3h[i]); - } - color.rgb = cga3h[idx]; - } - return color; -} -/* - EGA technically only had the 320x200 16-colour graphic mode, but when VGA - came out, it was possible to tweak the DAC, allowing for custom palettes. - AOS EGA is a palette based on my terminal colour scheme on Linux, which I - also use for AliceOS. -*/ -float4 ReduceEGA( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - float dist = 2.0; - int idx = 0; - if ( egapal == 0 ) - { - [unroll] for ( int i=0; i<16; i++ ) - if ( distance(dac.rgb,stdega[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,stdega[i]); - } - color.rgb = stdega[idx]; - } - else - { - [unroll] for ( int i=0; i<16; i++ ) - if ( distance(dac.rgb,aosega[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,aosega[i]); - } - color.rgb = aosega[idx]; - } - return color; -} -/* A two bits per channel mode that can usually fit VGA mode 13h and mode x */ -float4 ReduceRGB2( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*4.0)/4.0; - return color; -} -/* Effectively has 256 colours, with a magenta tint due to precision loss */ -float4 ReduceRGB323( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*float3(8.0,4.0,8.0))/float3(8.0,4.0,8.0); - return color; -} -/* 4096 colours, no actual graphics hardware existed that used 4bpc, though */ -float4 ReduceRGB4( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*16.0)/16.0; - return color; -} -/* - The classic 16-bit colour mode everyone from my generation would remember, - especially that subtle green tint and the banding due to lack of dithering - in most games and GPUs at that time. -*/ -float4 ReduceRGB565( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*float3(32.0,64.0,32.0)) - /float3(32.0,64.0,32.0); - return color; -} -/* - If you see no difference when using this, then it could be because your - own screen is already 6bpc. This is the case for a lot of LCDs, both old - and modern. 8bpc tends to be the norm on IPS, though. 10bpc is the next - step, but for now it's only used internally in video codecs for more - efficient compression with lower quality loss. I seem to recall that in - most *nix systems such as Linux it's possible to have 10bpc already with - NVIDIA, but it causes compatibility issues with a lot of programs. -*/ -float4 ReduceRGB6( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*64.0)/64.0; - return color; -} -/* Various VGA 256-colour palettes: Doom, Quake I, and the standard. */ -float4 ReduceDoom( in float4 color, in float2 coord ) -{ - float4 dac = clamp(ReducePrepass(color,coord)+0.005,0.005,0.995); - float2 lc = float2(dac.r,dac.g/64.0+floor(dac.b*64.0)/64.0); - return TextureDoom.Sample(SamplerLUT,lc); -} -float4 ReduceQuake( in float4 color, in float2 coord ) -{ - float4 dac = clamp(ReducePrepass(color,coord)+0.005,0.005,0.995); - float2 lc = float2(dac.r,dac.g/64.0+floor(dac.b*64.0)/64.0); - return TextureQuake.Sample(SamplerLUT,lc); -} -float4 ReduceVGA( in float4 color, in float2 coord ) -{ - float4 dac = clamp(ReducePrepass(color,coord)+0.005,0.005,0.995); - float2 lc = float2(dac.r,dac.g/64.0+floor(dac.b*64.0)/64.0); - return TextureVGA.Sample(SamplerLUT,lc); -} - -/* Retro rockets */ -float4 PS_Retro( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !useblock ) return res; - float2 rresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float4 tcol; - float2 bresl = rresl; - if ( bres.x <= 0 || bres.y <= 0 ) bresl = rresl; - else - { - if ( bres.x <= 1.0 ) bresl.x = rresl.x*bres.x; - else bresl.x = bres.x; - if ( bres.y <= 1.0 ) bresl.y = rresl.y*bres.y; - else bresl.y = bres.y; - } - float2 sresl = sres; - if ( sres.x <= 0 ) sresl.x = rresl.x/bresl.x; - if ( sres.y <= 0 ) sresl.y = rresl.y/bresl.y; - float2 ncoord = coord*(rresl/bresl); - ncoord = (-0.5/sresl)*(rresl/bresl)+ncoord/sresl+0.5; - ncoord = floor(ncoord*bresl)/bresl; - if ( bres.x <= 0 || bres.y <= 0 ) ncoord = coord; - tcol = TextureOriginal.Sample(Sampler,ncoord); - if ( paltype == 0 ) res = ReduceCGA(tcol,(coord*rresl)/sresl); - else if ( paltype == 1 ) res = ReduceEGA(tcol,(coord*rresl)/sresl); - else if ( paltype == 2 ) res = ReduceRGB2(tcol,(coord*rresl)/sresl); - else if ( paltype == 3 ) res = ReduceRGB323(tcol,(coord*rresl)/sresl); - else if ( paltype == 4 ) res = ReduceVGA(tcol,(coord*rresl)/sresl); - else if ( paltype == 5 ) res = ReduceDoom(tcol,(coord*rresl)/sresl); - else if ( paltype == 6 ) res = ReduceQuake(tcol,(coord*rresl)/sresl); - else if ( paltype == 7 ) res = ReduceRGB4(tcol,(coord*rresl)/sresl); - else if ( paltype == 8 ) res = ReduceRGB565(tcol,(coord*rresl)/sresl); - else if ( paltype == 9 ) res = ReduceRGB6(tcol,(coord*rresl)/sresl); - else res = tcol; - if ( ncoord.x < 0 || ncoord.x >= 1 || ncoord.y < 0 || ncoord.y >= 1 ) - res *= 0; - res.a = 1.0; - return res; -} - -/* ASCII art (more like CP437 art) */ -float4 PS_ASCII( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !asciienable ) return res; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 fresl = float2(FONT_WIDTH,FONT_HEIGHT); - float2 cresl = float2(GLYPH_WIDTH,GLYPH_HEIGHT); - float2 bscl = floor(bresl/cresl); - /* - Here I use the "cheap" method, based on the overall luminance of each - glyph, rather than attempt to search for the best fitting glyph for - each cell. If you want to know why, take a look at the ASCII filter - bundled with the Dolphin emulator, and be prepared for the resulting - seconds per frame it runs at. The calculations needed for such a filter - are completely insane even for the highest-end GPUs. - */ - float3 col = TextureOriginal.Sample(Sampler,floor(bscl*coord)/bscl).rgb; - int lum = clamp(luminance(col)*FONT_LEVELS,0,FONT_LEVELS); - float2 itx = floor(coord*bresl); - float2 blk = floor(itx/cresl)*cresl; - float2 ofs = itx-blk; - ofs.y += lum*cresl.y; - ofs /= fresl; - float gch = TextureFont.Sample(SamplerFont,ofs).x; - if ( gch < 0.5 ) res.rgb = res.rgb*asciiblend; - else - { - if ( asciimono ) res.rgb = 1.0; - else res.rgb = col; - } - return res; -} - -float4 PS_ChromaKey( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !maskenable ) return res; - if ( TextureDepth.Sample(Sampler,coord).x > maskd ) - return float4(mask.r,mask.g,mask.b,1.0); - return res; -} - -/* 2x2 RGBI dot matrix, not even close to anything that exists IRL but meh */ -float4 PS_DotMatrix( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !dotenable ) return res; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - bresl.xy *= 1.0/(dotsize*2.0); - float4 dac = float4(res.r*0.5,res.g*0.5,res.b*0.5, - (res.r+res.g+res.b)/6.0); - /* - There are two types of CRTs: aperture grille and shadow mask. - The former is blurry and has scanlines (rather big ones, even), but - is cheap to emulate; while the latter is the one most known for its - crisp, square pixels with minimal distortion. Most individuals into - this whole "retro graphics" stuff prefer aperture grille, which - looks like shit, then again, that's the sort of visual quality they - want. The main issue with shadow mask CRTs is that it's impossible - to accurately emulate them unless done on a screen with a HUGE - resolution. After all, the subpixels need to be clearly visible, and - if on top of it you add curvature distortion, you need to reduce - moire patterns that will inevitably show up at low resolutions. - - It would be more desirable to eventually have flat panels that can - display arbitrary resolutions using a form of scaling that preserves - square pixels with unnoticeable distortion (typically, with nearest - neighbour you'd get some pixels that are bigger/smaller than others - if the upscale resolution isn't an integer multiple of the real - resolution. - - This 2x2 RGBI thing is a rather naïve filter I made many years ago, - it looks unlike any real CRT, but scales well. Its only problem is - moire patterns when using the default size of 2x2. - */ - float4 dots = TextureDots.Sample(SamplerDots,coord*bresl)*dac; - float3 tcol = pow(max(0,dots.rgb+dots.a),dotpow)*dotmult; - res.rgb = res.rgb*(1-dotblend)+tcol*dotblend; - return res; -} -/* that's right, CRT curvature */ -float4 PS_Curvature( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !curveenable ) return res; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = (1.0/bresl)*curvesoft; - float3 eta = float3(1+chromaab*0.009,1+chromaab*0.006,1+chromaab - *0.003); - float2 center = float2(coord.x-0.5,coord.y-0.5); - float zfact = 100.0/lenszoom; - float r2 = center.x*center.x+center.y*center.y; - float f = 1+r2*lensdist*0.01; - float x = f*zfact*center.x+0.5; - float y = f*zfact*center.y+0.5; - float2 rcoord = (f*eta.r)*zfact*(center.xy*0.5)+0.5; - float2 gcoord = (f*eta.g)*zfact*(center.xy*0.5)+0.5; - float2 bcoord = (f*eta.b)*zfact*(center.xy*0.5)+0.5; - int i,j; - float4 idist = float4(0,0,0,0); - /* - sticking a 5x5 gaussian blur with a tweakable radius in here to - attempt to reduce moire patterns in some cases. Supersampling would - be more useful for that, but ENB sucks ass through a crazy straw in - that aspect, so it would be more desirable to use GeDoSaTo (I sure - hope I can port all my stuff to it one day, at least the damn thing - is FOSS). - */ - [unroll] for ( i=-2; i<=2; i++ ) [unroll] for ( j=-2; j<=2; j++ ) - { - idist += gauss3[abs(i)]*gauss3[abs(j)] - *float4(TextureColor.Sample(Sampler,rcoord+bof - *float2(i,j)).r,TextureColor.Sample(SamplerB,gcoord+bof - *float2(i,j)).g,TextureColor.Sample(SamplerB,bcoord+bof - *float2(i,j)).b,TextureColor.Sample(SamplerB,float2(x, - y)+bof*float2(i,j)).a); - } - res.rgb = idist.rgb; - return res; -} - -/* Why am I doing this */ -float4 PS_Blur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !bssblurenable ) return res; - float2 ofs[16] = - { - float2(1.0,1.0), float2(-1.0,-1.0), - float2(-1.0,1.0), float2(1.0,-1.0), - - float2(1.0,0.0), float2(-1.0,0.0), - float2(0.0,1.0), float2(0.0,-1.0), - - float2(1.41,0.0), float2(-1.41,0.0), - float2(0.0,1.41), float2(0.0,-1.41), - - float2(1.41,1.41), float2(-1.41,-1.41), - float2(-1.41,1.41), float2(1.41,-1.41) - }; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = (1.0/bresl)*bssblurradius; - int i; - [unroll] for ( i=0; i<16; i++ ) - res += TextureColor.Sample(Sampler,coord+ofs[i]*bof); - res /= 17.0; - res.a = 1.0; - return res; -} -float4 PS_Sharp( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !bsssharpenable ) return res; - float2 ofs[8] = - { - float2(1.0,1.0), float2(-1.0,-1.0), - float2(-1.0,1.0), float2(1.0,-1.0), - - float2(1.41,1.41), float2(-1.41,-1.41), - float2(-1.41,1.41), float2(1.41,-1.41) - }; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = (1.0/bresl)*bsssharpradius; - float4 tcol = res; - int i; - [unroll] for ( i=0; i<8; i++ ) - tcol += TextureColor.Sample(Sampler,coord+ofs[i]*bof); - tcol /= 9.0; - float4 orig = res; - res = orig*(1.0+dot(orig.rgb-tcol.rgb,0.333333)*bsssharpamount); - float rg = clamp(pow(orig.b,3.0),0.0,1.0); - res = lerp(res,orig,rg); - res.a = 1.0; - return res; -} -float4 PS_Shift( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !bssshiftenable ) return res; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = (1.0/bresl)*bssshiftradius; - res.g = TextureColor.Sample(Sampler,coord).g; - res.r = TextureColor.Sample(Sampler,coord+float2(0,-bof.y)).r; - res.b = TextureColor.Sample(Sampler,coord+float2(0,bof.y)).b; - res.a = 1.0; - return res; -} - -/* That "luma sharpen" thingy, added just because someone might want it */ -float4 PS_LumaSharp( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target -{ - float2 coord = IN.txcoord.xy; - float4 res = TextureColor.Sample(Sampler,coord); - if ( !lsharpenable ) return res; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*lsharpradius; - float4 crawling = TextureColor.Sample(Sampler,coord+float2(0,-1)*bof); - crawling += TextureColor.Sample(Sampler,coord+float2(-1,0)*bof); - crawling += TextureColor.Sample(Sampler,coord+float2(1,0)*bof); - crawling += TextureColor.Sample(Sampler,coord+float2(0,1)*bof); - crawling *= 0.25; - float4 inmyskin = res-crawling; - float thesewounds = luminance(inmyskin.rgb); - thesewounds = clamp(thesewounds,-lsharpclamp*0.01,lsharpclamp*0.01); - float4 theywillnotheal = res+thesewounds*lsharpblend; - return theywillnotheal; -} - -technique11 ExtraFilters -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_LumaSharp())); - } -} -technique11 ExtraFilters1 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_Blur())); - } -} -technique11 ExtraFilters2 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_Sharp())); - } -} -technique11 ExtraFilters3 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_Shift())); - } -} -technique11 ExtraFilters4 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_ChromaKey())); - } -} -technique11 ExtraFilters5 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_Retro())); - } -} -technique11 ExtraFilters6 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_ASCII())); - } -} -technique11 ExtraFilters7 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_DotMatrix())); - } -} -technique11 ExtraFilters8 -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); - SetPixelShader(CompileShader(ps_5_0,PS_Curvature())); - } -} diff --git a/enbseries/enbeffectpostpass.fx.ini b/enbseries/enbeffectpostpass.fx.ini deleted file mode 100644 index f8e99b7..0000000 --- a/enbseries/enbeffectpostpass.fx.ini +++ /dev/null @@ -1,47 +0,0 @@ -[ENBEFFECTPOSTPASS.FX] -TECHNIQUE=1 -Enable Block GFX=false -Emulated Resolution=0, 0, 0 -Zoom Factor=0, 0, 0 -Palette Type=6 -CGA Palette=1 -EGA Palette=0 -Dithering Pattern=4 -Contrast Modifier=1.3 -Saturation Modifier=1.2 -Dither Offset=-0.15 -Dither Range=0.25 -Enable ASCII=false -ASCII Monochrome=false -ASCII Blend=0.0 -Enable Chroma Key=false -Chroma Key Color=0.0, 1.0, 0.0 -Chroma Key Depth=0.92 -Enable Dot Matrix=false -Dot Size=1 -Dot Blend=0.4 -Dot Intensity=1.0 -Dot Contrast=1.0 -Enable Curvature=false -Curve Chromatic Aberration=0.7 -Curve Zooming=50.200008 -Curve Distortion=0.0 -Curve Sampling Soften=0.0 -Enable Blur=true -Blur Sampling Range=0.15 -Enable Sharp=true -Sharp Sampling Range=0.35 -Sharpening Amount=2.0 -Enable Shift=false -Shift Sampling Range=0.6 -Luma Sharpen Enable=true -Luma Sharpen Radius=0.8 -Luma Sharpen Clamp=0.12 -Luma Sharpen Blending=6.0 -Emulated Resolution Width=0.0 -Emulated Resolution Height=0.0 -Zoom Factor X=0.0 -Zoom Factor Y=0.0 -Chroma Key Red=0, 1, 0 -Chroma Key Green=1.0 -Chroma Key Blue=0.0 diff --git a/enbseries/enblens.fx b/enbseries/enblens.fx deleted file mode 100644 index df6a8e9..0000000 --- a/enbseries/enblens.fx +++ /dev/null @@ -1,33 +0,0 @@ -/* This shader intentionally left blank */ -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_OUTPUT_POST -{ - float4 pos : SV_POSITION; - float2 txcoord0 : TEXCOORD0; -}; -VS_OUTPUT_POST VS_Quad(VS_INPUT_POST IN) -{ - VS_OUTPUT_POST OUT; - float4 pos; - pos.xyz = IN.pos.xyz; - pos.w = 1.0; - OUT.pos = pos; - OUT.txcoord0.xy = IN.txcoord.xy; - return OUT; -} -float4 PS_Nothing(VS_OUTPUT_POST IN, float4 v0 : SV_Position0) : SV_Target -{ - return float4(0.0,0.0,0.0,1.0); -} -technique11 Nothing -{ - pass p0 - { - SetVertexShader(CompileShader(vs_5_0,VS_Quad())); - SetPixelShader(CompileShader(ps_5_0,PS_Nothing())); - } -} diff --git a/enbseries/enblens.fx.ini b/enbseries/enblens.fx.ini deleted file mode 100644 index d1938c1..0000000 --- a/enbseries/enblens.fx.ini +++ /dev/null @@ -1,2 +0,0 @@ -[ENBLENS.FX] -TECHNIQUE=0 diff --git a/enbseries/menbdoomlut.png b/enbseries/menbdoomlut.png deleted file mode 100644 index b2c3c45..0000000 Binary files a/enbseries/menbdoomlut.png and /dev/null differ diff --git a/enbseries/menbdots.png b/enbseries/menbdots.png deleted file mode 100644 index 2027ba1..0000000 Binary files a/enbseries/menbdots.png and /dev/null differ diff --git a/enbseries/menbfrost.png b/enbseries/menbfrost.png deleted file mode 100644 index 9cf9f2b..0000000 Binary files a/enbseries/menbfrost.png and /dev/null differ diff --git a/enbseries/menbfrostbump.png b/enbseries/menbfrostbump.png deleted file mode 100644 index 7ee8022..0000000 Binary files a/enbseries/menbfrostbump.png and /dev/null differ diff --git a/enbseries/menbglobaldefs.fx b/enbseries/menbglobaldefs.fx deleted file mode 100644 index 9990541..0000000 --- a/enbseries/menbglobaldefs.fx +++ /dev/null @@ -1,59 +0,0 @@ -/* - menbglobaldefs.fx : MariENB3 global shared code. - (C)2016 Marisa Kirisame, UnSX Team. - Part of MariENB3, the personal ENB of Marisa for Fallout 4. - Released under the GNU GPLv3 (or later). -*/ -/* are we running on skyrim special edition or on fallout 4? */ -#define SKYRIMSE -/* time of day and interior interpolation */ -#define ndfact clamp(0.5+(TimeOfDay1.z+(TimeOfDay1.y+TimeOfDay1.w)*0.5)*0.5\ - -(TimeOfDay2.y+(TimeOfDay1.x+TimeOfDay2.x)*0.5)*0.5,0.0,1.0) -#define tod_ind(a) lerp(lerp(a##_n,a##_d,ndfact),a##_i,EInteriorFactor) -#define todx_ind(a) lerp(a##_dw*TimeOfDay1.x+a##_sr*TimeOfDay1.y+a##_dy\ - *TimeOfDay1.z+a##_ss*TimeOfDay1.w+a##_ds*TimeOfDay2.x+a##_nt\ - *TimeOfDay2.y,a##_i,EInteriorFactor) -/* weather macros (not very useful yet) */ -#define WT_TEMPERATE 0.0 -#define WT_HOT 1.0 -#define WT_COLD 2.0 -#define weatherfactor(id) ((Weather.x==id)?(Weather.y==id)?(1.0):(Weather.z)\ - :(Weather.y==id)?(1.0-Weather.z):(0.0)) -/* - Explanation of macro, because some of the people reading this likely don't - know what a ternary conditional is: - - (WeatherAndTime.x==id) -> transitioning to wanted weather? - ?(WeatherAndTime.y==id) -> coming from wanted weather? - ?(1.0) -> if so, always 1 - :(WeatherAndTime.z) -> if not, return transition - :(WeatherAndTime.y==id) -> not transitioning but coming from wanted weather? - ?(1.0-WeatherAndTime.z) -> return inverse transition - :(0.0) -> otherwise return 0 -*/ -/* asset definitions */ -/* ascii art font */ -#define FONT_WIDTH 8 -#define FONT_HEIGHT 4096 -#define GLYPH_WIDTH 8 -#define GLYPH_HEIGHT 16 -#define FONT_LEVELS 255 -/* - aspect correction for certain overlays - uncommented : the textures are 1:1 and must be corrected - commented : the textures are 16:9 or whatever ratio you use -*/ -//#define ASPECT_LENSDIRT -/* texture sizes */ -#define NOISESIZE 256.0 -#define HEATSIZE 1024.0 -#define FROSTSIZE 1024.0 -/* LUT mode (use only one) - The 256px option was discarded for size reasons */ -//#define LUTMODE_LEGACY -//#define LUTMODE_16 -#define LUTMODE_64 -/* some textures can be provided as DDS rather than PNG to save space */ -//#define HEAT_DDS -//#define LENSDIRT_DDS -//#define FROST_DDS -//#define FROSTBUMP_DDS diff --git a/enbseries/menbheat.png b/enbseries/menbheat.png deleted file mode 100644 index aa29697..0000000 Binary files a/enbseries/menbheat.png and /dev/null differ diff --git a/enbseries/menblens.png b/enbseries/menblens.png deleted file mode 100644 index 61f8955..0000000 Binary files a/enbseries/menblens.png and /dev/null differ diff --git a/enbseries/menblut64.png b/enbseries/menblut64.png deleted file mode 100644 index cf41211..0000000 Binary files a/enbseries/menblut64.png and /dev/null differ diff --git a/enbseries/menbnoise1.png b/enbseries/menbnoise1.png deleted file mode 100644 index 3e915eb..0000000 Binary files a/enbseries/menbnoise1.png and /dev/null differ diff --git a/enbseries/menbnoise2.png b/enbseries/menbnoise2.png deleted file mode 100644 index 450769f..0000000 Binary files a/enbseries/menbnoise2.png and /dev/null differ diff --git a/enbseries/menbquakelut.png b/enbseries/menbquakelut.png deleted file mode 100644 index 44f172a..0000000 Binary files a/enbseries/menbquakelut.png and /dev/null differ diff --git a/enbseries/menbvgaluma.png b/enbseries/menbvgaluma.png deleted file mode 100644 index ff6cccf..0000000 Binary files a/enbseries/menbvgaluma.png and /dev/null differ diff --git a/enbseries/menbvgalut.png b/enbseries/menbvgalut.png deleted file mode 100644 index 9e752b2..0000000 Binary files a/enbseries/menbvgalut.png and /dev/null differ diff --git a/enbseries/menbweatherinfo.txt b/enbseries/menbweatherinfo.txt deleted file mode 100644 index 19e35c9..0000000 --- a/enbseries/menbweatherinfo.txt +++ /dev/null @@ -1,1225 +0,0 @@ -ID NAME TEMPERATURE - -Skyrim - -15E DefaultWeather TEMPERATE -81A SkyrimClear HOT -12F89 SkyrimCloudy HOT -2E7AB TESTCloudyRain HOT -48C14 BlackreachWeather TEMPERATE -4D7FB SkyrimOvercastSnow COLD -5ED7A FXWthrInvertLightsSolitude TEMPERATE -6ED5A FXWthrInvertDayNight TEMPERATE -6ED5B FXWthrCaveBlueSkylight TEMPERATE -7548F FXWthrSunlight TEMPERATE -75491 FXWthrSunlightWhite TEMPERATE -75DE5 FXWthrCaveBluePaleLight TEMPERATE -777CF FXWthrInvertDayNighWarm TEMPERATE -8277A FXWthrInvertWindowsWhiterun TEMPERATE -8282A FXWthrInvertLightsWhiterun TEMPERATE -923FD SovngardeFog TEMPERATE -A6858 WorldMapWeather HOT -AEE84 FXWthrInvertWindowsWindhelm COLD -C821E SkyrimFog COLD -C821F SkyrimOvercastRain COLD -C8220 SkyrimStormRain COLD -C8221 SkyrimStormSnow COLD -D299E SkyrimOvercastWar TEMPERATE -D4886 FXMagicStormRain COLD -D9329 HelgenAttackWeather HOT -ECC96 FXWthrInvertWindowsWindhelm2 COLD -101910 FXWthrInvertLightMarkarth TEMPERATE -10199F SkyrimMQ206weather HOT -104AB4 SkuldafnCloudy COLD -105941 BloatedMansGrottoFog HOT -105942 SolitudeBluePalaceFogARENA TEMPERATE -105943 SolitudeBluePalaceFogFEAR TEMPERATE -105944 SolitudeBluePalaceFogNMARE TEMPERATE -105945 SolitudeBluePalaceFog TEMPERATE -105F40 SkyrimDA02Weather TEMPERATE -106635 KarthspireRedoubtFog TEMPERATE -10A230 SkyrimClearMA HOT -10A231 SkyrimOvercastRainMA TEMPERATE -10A232 SkyrimFogMA TEMPERATE -10A233 SkyrimCloudyMA HOT -10A234 SkyrimClearCO COLD -10A235 SkyrimFogCO COLD -10A236 SkyrimCloudyCO COLD -10A237 SkyrimClearRE HOT -10A238 SkyrimOvercastRainRE TEMPERATE -10A239 SkyrimFogRE TEMPERATE -10A23A SkyrimCloudyRE HOT -10A23B SkyrimClearFF HOT -10A23C SkyrimStormRainFF TEMPERATE -10A23D SkyrimOvercastRainFF TEMPERATE -10A23E SkyrimFogFF TEMPERATE -10A23F SkyrimCloudyFF HOT -10A240 SkyrimClearTU HOT -10A241 SkyrimStormRainTU TEMPERATE -10A242 SkyrimOvercastRainTU TEMPERATE -10A243 SkyrimCloudyTU HOT -10A244 SkyrimClearSN TEMPERATE -10A245 SkyrimCloudySN TEMPERATE -10A7A5 SkyrimClearVT HOT -10A7A6 SkyrimOvercastRainVT TEMPERATE -10A7A7 SkyrimFogVT TEMPERATE -10A7A8 SkyrimCloudyVT HOT -10C32F FXSkyrimStormBlowingGrass TEMPERATE -10D9EC SovngardeClear HOT -10DA13 FXWthrInvertWindowsWinterhold COLD -10E1E3 SkyrimCloudyVT_A HOT -10E1E4 SkyrimClearVT_A HOT -10E1E5 SkyrimCloudyMA_A HOT -10E1E6 SkyrimClearMA_A HOT -10E1E7 SkyrimCloudyCO_A COLD -10E1E8 SkyrimClearCO_A COLD -10E1E9 SkyrimCloudyRE_A HOT -10E1EA SkyrimClearRE_A HOT -10E1EB SkyrimCloudyFF_A HOT -10E1EC SkyrimClearFF_A HOT -10E1ED SkyrimCloudyTU_A HOT -10E1EE SkyrimClearTU_A HOT -10E1EF SkyrimCloudySN_A TEMPERATE -10E1F0 SkyrimClearSN_A TEMPERATE -10E1F1 SkyrimCloudy_A HOT -10E1F2 SkyrimClear_A HOT -10E3D4 EditorCloudPreview TEMPERATE -10FE7E RiftenOvercastFog TEMPERATE -10FEF8 SovngardeDark COLD - -Dawnguard - -1407 SoulCairnAmb01 COLD -6AEC DLC1Eclipse TEMPERATE -959F SoulCairnAurora COLD -F89C DLC1AurielsBowClearWeather TEMPERATE -F89D DLC1MagicAurielBowCloudyWeather TEMPERATE -10E0B DLC1_SkyrimCloudyFV_A COLD -10E0E DLC1_SkyrimCloudyFV COLD -10E0F DLC1_SkyrimClearFV COLD -10E10 DLC1_SkyrimClearFV_A COLD -14551 SoulCairnAmb01_Rain COLD -18DBB SoulCairnAmb02 COLD -18DBC SoulCairnAmb03 COLD -18DBD SoulCairnAmb04 COLD -19599 DLC1FalmerValley_bf COLD -195A0 DLC1FalmerValley_bfDark COLD - -Dragonborn - -18471 DLC02VolcanicAsh01 HOT -1D760 DLC02VolcanicAshTundra01 COLD -1DFF5 DLC2ApocryphaWeather TEMPERATE -31AC0 DLC02VolcanicAsh02 HOT -32336 DLC02VolcanicAshStorm01 HOT -34CFB DLC2ApocryphaWeatherNew TEMPERATE -374B8 DLC02VolcanicAsh01_A HOT -374B9 DLC02VolcanicAsh02_A HOT -374BA DLC02VolcanicAshTundra01_A COLD - -Wet and Cold - Ashes - -5B29C _WetAshFallLight HOT -5B29D _WetAshFallMed HOT -5B2A0 _WetAshFallHeavy HOT - -Natural Lighting and Atmospherics - -1760E SkyrimClearTU_CM_NoClouds HOT -1760F SkyrimClear_CM_NoClouds HOT -19BBE SkyrimMarkarthClear HOT -19BBF SkyrimMarkarthCloudy HOT -19BC0 SkyrimMarkarthClear_NoClouds HOT -1BC0D SkyrimClearMA_CM_NoClouds HOT -1C6D2 SkyrimMarkarthFog TEMPERATE -1CC35 SkyrimMarkarthOvercast TEMPERATE -25D8D SkyrimClearSN_CM_NoClouds HOT -2E982 SkyrimClearCO_CM_NoClouds HOT -2E983 SkyrimClearFF_CM_NoCoulds HOT -3AB68 SkyrimClearRE_CM_NoClouds HOT -4BDF7 SkyrimMist_CM TEMPERATE -57500 SkyrimOvercast_CM TEMPERATE -73963 SkyrimStormRainHeavy_CM TEMPERATE -73964 SkyrimOvercastMarsh_CM TEMPERATE -73EC8 SkyrimFogHeavy_CM TEMPERATE -83665 SkyrimFogRain_CM TEMPERATE - --- In progress - -Darkend - -179AB DLC1EclipseDUPLICATE001 - -161063 XJKphalosFog - -161065 XJKphalosStormRainFOG - -2946E6 XJKphalosFogDUPLICATE001 - -296EB5 XJKphalosFogSovngarde - - -Vigilant - -56A0C zzzCHMonoFogWeather - -56A0D zzzCHMonoClearWeather - -62484 zzzCOCursedWeather - -67BB2 zzzCHMolagWeatherNoCore - -701D2 zzzCHMolagWeather - -2C603B zzzCHOldForestStormRain - -2DA92C zzzCHWhaleGraveyardStormSnow - - -Enderal - -4815 _00E_Swamp01 - -6563 SkyrimClearCOPY0000 - -703C _00E_SuncoastSunrise - -1095F _0E_ForestWeather - -1AB44 _JonasWaldVersuch3 - -1DF4E _0E_Pilzwald - -1DF4F _0E_SullevanWeatherDontUse - -20B13 _00E_WeatherSullevanInterior - -20B16 _00E_WeatherSullevanIntereur - -21310 SkuldafnCloudyDUPLICATE001 - -21311 _00E_EnderalRainLight COLD -2B999 _0E_MaxWetter - -2B9A1 _00E_MaxWetterRegen - -30FE2 _00E_MQ11a_SkyrimOvercastSnowSlow - -30FE3 _00E_KristallwaldWeather - -36DDB _0E_WetterGrberpfad - -36E23 SkyrimClearDUPLICATE002 - -373C7 _00E_Thalgard_New - -39294 _00E_OvercastSnowLight - -3BC11 EnderalClearNoClouds_Aurora - -43C5C _00E_Desert - -477A0 SkyrimCloudyDUPLICATE001 - -477A1 PrologWeather - -53547 _JonasWaldVersuchDUPLICATE004 - -54E05 _0E_MaxWetterGraeberpfad - -5C27C _00E_ClassMenu_Weather - -607CE _0E_GraeberDonnerfrostQuellwacht - -607CF _00E_DesertDUPLICATE001 - -6877C _00E_Thalgard - -6FEC5 _JonasAltDothulgradDUPLICATE002 - -6FEC7 _JonasAltDothulgrad - -72785 _00E_EnderalOvercast - -72B93 _00E_Ark_NQ_Kor_CaveWeather - -74545 _0E_OstBauernkueste - -74546 _0E_GraeberPfade - -76985 _00E_Farmcoast - -7761F _00E_MQP02ShipWeather HOT -7D3FD _JonasWaldVersuchDUPLICATE005 - -8B19C _00E_SilberhainWetter - -962ED _00E_WesternBayWeather - -9649F _00E_MQ11c_SilberhainRealWeather - -9A9C2 _00E_Desertsandstorm - -A8261 _00E_AkropolisWeather - -AD5B3 _00E_GraeberpfadHeiligtum - -AEB93 FFPalmenhain - -C09D0 _00E_TestWeather - -C5634 _00E_TropicalIslandWeather - -CE924 _0E_WeatherSullevanDUPLICATE001 - -D340E _00E_DesertWeather - -DB551 _00E_EnderalRainLightFogged - -DD765 _00E_GoldenforstWeather - -E4318 SkyrimOvercastSnowDUPLICATE002 - -EFCBF _00E_StarCityWeather - -F64A4 SkyrimClearDUPLICATE001 - -F8EF4 _00E_MQ07aOldManManor - -106723 _00E_MQ07aVisionWeatherRain - -10674E _00E_MQ07aVisionWeatherNoRain - -10A758 _00E_MQ07aOldManManorNoRain - -12EAB9 _00E_MQP01_Weather HOT -12ECEC SkyrimOvercastSnowKristallwald - -13706E EnderalClearNoClouds - -14BDDC _00E_Test_Weather_02 - -14BDE0 _00E_MQ17_Purge_Weather - -14BFF0 _00E_MQ18_EpilogueWeather - - --- These ones are going to take me a really long time... - -Climates of Tamriel (absolutely fucking insane) - -29E89 CoTClear_5_TU - -29E8A CoTClear_6_TU - -2A951 CoTClear_7_TU - -2A952 CoTClear_8_TU - -2AEB6 CoTClear_10_TU - -2B419 CoTClear_11_TU - -2B97D CoTClear_13_A_TU - -2B97F CoTClear_12_TU - -2B980 CoTClear_14_A_TU - -2C445 CoTClear_15_TU - -2C446 CoTClear_16_TU - -2D46D CoTClear_17_TU - -2D46E CoTClear_18_TU - -2D9D1 CoTClear_19_AP_TU - -2D9D2 CoTClear_20_AO_TU - -2DF35 CoTClear_21_TU - -2DF36 CoTClear_22_TU - -2E499 CoTClear_23_TU - -2E49A CoTClear_24_TU - -2E49B CoTClear_25_AO_TU - -2E49C CoTClear_26_AO_TU - -2E49D CoTClear_27_TU - -2E49E CoTClear_28_TU - -2EF64 CoTClear_4_TU - -31FDB CoTClear_1_TU - -32AA0 CoTClear_2_TU - -33003 CoTClear_3_TU - -34AEE CoTClear_9_TU - -37B61 CoTCloudy_1_MA - -3A115 CoTCloudy_3_VT - -3A678 CoTCloudy_4_VT - -3B13D CoTCloudy_5_VT - -3B13E CoTCloudy_6_VT - -3B6A1 CoTCloudy_7_VT - -3CC2A CoTCloudy_8_VT - -3D6EF CoTCloudy_9_VT - -3DC52 CoTCloudy_10_VT - -3E1B5 CoTCloudy_11_VT - -3EC7A CoTCloudy_12_VT - -3EC7B CoTCloudy_13_A_VT - -3EC7C CoTCloudy_14_A_VT - -40767 CoTCloudy_15_VT - -40CCE CoTCloudy_16_VT - -40CCF CoTCloudy_17_VT - -40CD0 CoTCloudy_18_VT - -40CD1 CoTCloudy_19_VT - -40CD2 CoTCloudy_20_VT - -40CD3 CoTCloudy_21_VT - -40CD4 CoTCloudy_22_VT - -40CD5 CoTCloudy_23_VT - -40CD6 CoTCloudy_24_VT - -40CD8 CoTCloudy_26_AM_VT - -40CD9 CoTCloudy_27_AM_VT - -40CDA CoTCloudy_28_AM_VT - -437F9 CoTOvercast_1 - -44824 CoTOvercast_2 - -44825 CoTOvercast_3 - -44826 CoTOvercast_4 - -44827 CoTOvercast_5_AP - -44829 CoTOvercast_6_AM - -4482A CoTOvercast_1_T - -4482B CoTOvercast_2_T - -4482C CoTOvercast_4_T - -4482D CoTOvercast_3_T - -4482E CoTOvercast_5_T - -4482F CoTOvercast_6_T - -44830 CoTOvercast_1_LR - -44831 CoTOvercast_1_HR_T - -44832 CoTOvercast_2_HR - -44833 CoTOvercast_2_LR - -44834 CoTOvercast_3_HR - -44835 CoTOvercast_3_LR - -44836 CoTOvercast_4_HR_T - -44837 CoTOvercast_4_LR - -44838 CoTOvercast_5_HR - -44839 CoTOvercast_5_LR - -4483A CoTOvercast_6_HR - -4483B CoTOvercast_6_LR - -45868 CoTFog_1 - -45869 CoTFog_1_T - -4586A CoTFog_2 - -4586B CoTFog_2_T - -4586C CoTFog_3 - -4586D CoTFog_3_T - -4586E CoTFog_4 - -4586F CoTFog_4_T - -45870 CoTFog_5 - -45871 CoTFog_5_T - -45872 CoTFog_6 - -45873 CoTFog_6_T - -47362 CoTSnow_LS - -47E2E CoTFogWind - -47E2F CoTSnow_NS_T - -47E30 CoTSnow_HS - -47E31 CoTSnowStorm_T - -47E33 CoTClear_1_INT - -47E34 CoTClear_10_INT - -47E35 CoTClear_11_INT - -47E36 CoTClear_12_INT - -47E37 CoTClear_13_A_INT - -47E38 CoTClear_15_INT - -47E39 CoTClear_14_A_INT - -47E3A CoTClear_16_INT - -47E3B CoTClear_17_INT - -47E3C CoTClear_18_INT - -47E3D CoTClear_19_AP_INT - -47E3E CoTClear_2_INT - -47E3F CoTClear_20_AO_INT - -47E40 CoTClear_21_INT - -47E41 CoTClear_22_INT - -47E42 CoTClear_23_INT - -47E43 CoTClear_24_INT - -47E44 CoTClear_25_AO_INT - -47E45 CoTClear_26_AO_INT - -47E46 CoTClear_27_INT - -47E47 CoTClear_28_INT - -47E48 CoTClear_3_INT - -47E49 CoTClear_4_INT - -47E4A CoTClear_5_INT - -47E4B CoTClear_6_INT - -47E4C CoTClear_7_INT - -47E4D CoTClear_8_INT - -47E4E CoTClear_9_INT - -483C2 CoTSnow_HS_AM - -48925 CoTSnow_HS_AP - -48926 CoTSnow_HS_A - -53567 CoTFogRIFTEN_1 - -53568 CoTFogRIFTEN_1_T - -53569 CoTFogRIFTEN_2 - -5356A CoTFogRIFTEN_2_T - -5356B CoTFogRIFTEN_3 - -5356C CoTFogRIFTEN_4 - -5356D CoTFogRIFTEN_3_T - -5356E CoTFogRIFTEN_4_T - -5356F CoTFogRIFTEN_5 - -53570 CoTFogRIFTEN_5_T - -53571 CoTFogRIFTEN_6 - -53572 CoTFogRIFTEN_6_T - -53573 CoTFogRIFTENWind - -56088 CoTClear_10_CO - -56089 CoTClear_11_CO - -5608A CoTClear_12_CO - -5608B CoTClear_13_A_CO - -5608C CoTClear_14_A_CO - -5608D CoTClear_15_CO - -5608E CoTClear_16_CO - -5608F CoTClear_17_CO - -56090 CoTClear_18_CO - -56091 CoTClear_19_AP_CO - -56092 CoTClear_1_CO - -56093 CoTClear_20_AO_CO - -56094 CoTClear_21_CO - -56095 CoTClear_22_CO - -56096 CoTClear_23_CO - -56097 CoTClear_24_CO - -56098 CoTClear_25_AO_CO - -56099 CoTClear_26_AO_CO - -5609A CoTClear_27_CO - -5609B CoTClear_28_CO - -5609C CoTClear_2_CO - -5609D CoTClear_3_CO - -5609E CoTClear_4_CO - -5609F CoTClear_5_CO - -560A0 CoTClear_6_CO - -560A1 CoTClear_7_CO - -560A2 CoTClear_8_CO - -560A3 CoTClear_9_CO - -5660B CoTClear_10_RE - -5660C CoTClear_11_RE - -5660D CoTClear_12_RE - -5660E CoTClear_13_A_RE - -5660F CoTClear_14_A_RE - -56610 CoTClear_15_RE - -56611 CoTClear_16_RE - -56612 CoTClear_17_RE - -56613 CoTClear_18_RE - -56614 CoTClear_19_AP_RE - -56615 CoTClear_1_RE - -56616 CoTClear_20_AO_RE - -56617 CoTClear_21_RE - -56618 CoTClear_22_RE - -56619 CoTClear_23_RE - -5661A CoTClear_24_RE - -5661B CoTClear_25_AO_RE - -5661C CoTClear_26_AO_RE - -5661D CoTClear_27_RE - -5661E CoTClear_28_RE - -5661F CoTClear_2_RE - -56620 CoTClear_3_RE - -56621 CoTClear_4_RE - -56622 CoTClear_5_RE - -56623 CoTClear_6_RE - -56624 CoTClear_7_RE - -56625 CoTClear_8_RE - -56626 CoTClear_9_RE - -570F1 CoTClear_10_FF - -570F2 CoTClear_11_FF - -570F3 CoTClear_12_FF - -570F4 CoTClear_13_A_FF - -570F5 CoTClear_14_A_FF - -570F6 CoTClear_15_FF - -570F7 CoTClear_16_FF - -570F8 CoTClear_17_FF - -570F9 CoTClear_18_FF - -570FA CoTClear_19_AP_FF - -570FB CoTClear_1_FF - -570FC CoTClear_20_AO_FF - -570FD CoTClear_21_FF - -570FE CoTClear_22_FF - -570FF CoTClear_23_FF - -57100 CoTClear_24_FF - -57101 CoTClear_25_AO_FF - -57102 CoTClear_26_AO_FF - -57103 CoTClear_27_FF - -57104 CoTClear_28_FF - -57105 CoTClear_2_FF - -57106 CoTClear_3_FF - -57107 CoTClear_4_FF - -57108 CoTClear_5_FF - -57109 CoTClear_6_FF - -5710A CoTClear_7_FF - -5710B CoTClear_8_FF - -5710C CoTClear_9_FF - -5813B CoTClear_10_SN - -5813C CoTClear_11_SN - -5813D CoTClear_12_SN - -5813E CoTClear_13_A_SN - -5813F CoTClear_14_A_SN - -58140 CoTClear_15_SN - -58141 CoTClear_16_SN - -58142 CoTClear_17_SN - -58143 CoTClear_18_SN - -58144 CoTClear_19_AP_SN - -58145 CoTClear_1_SN - -58146 CoTClear_20_AO_SN - -58147 CoTClear_21_SN - -58148 CoTClear_22_SN - -58149 CoTClear_23_SN - -5814A CoTClear_24_SN - -5814B CoTClear_25_AO_SN - -5814C CoTClear_26_AO_SN - -5814D CoTClear_27_SN - -5814E CoTClear_28_SN - -5814F CoTClear_2_SN - -58150 CoTClear_3_SN - -58151 CoTClear_4_SN - -58152 CoTClear_5_SN - -58153 CoTClear_6_SN - -58154 CoTClear_7_SN - -58155 CoTClear_8_SN - -58156 CoTClear_9_SN - -5A1A9 CoTClear_10_MA - -5A1AA CoTClear_11_MA - -5A1AB CoTClear_12_MA - -5A1AC CoTClear_13_A_MA - -5A1AD CoTClear_14_A_MA - -5A1AE CoTClear_15_MA - -5A1AF CoTClear_16_MA - -5A1B0 CoTClear_17_MA - -5A1B1 CoTClear_18_MA - -5A1B2 CoTClear_19_AP_MA - -5A1B4 CoTClear_20_AO_MA - -5A1B5 CoTClear_21_MA - -5A1B6 CoTClear_22_MA - -5A1B7 CoTClear_23_MA - -5A1B8 CoTClear_24_MA - -5A1B9 CoTClear_25_AO_MA - -5A1BA CoTClear_26_AO_MA - -5A1BB CoTClear_27_MA - -5A1BC CoTClear_28_MA - -5A1BD CoTClear_2_MA - -5A1BE CoTClear_3_MA - -5A1BF CoTClear_4_MA - -5A1C0 CoTClear_5_MA - -5A1C1 CoTClear_6_MA - -5A1C2 CoTClear_7_MA - -5A1C3 CoTClear_8_MA - -5A1C4 CoTClear_9_MA - -5A72C CoTClear_1_MA - -5A72D CoTClear_10_VT - -5A72E CoTClear_11_VT - -5A72F CoTClear_12_VT - -5A730 CoTClear_13_A_VT - -5A731 CoTClear_14_A_VT - -5A732 CoTClear_15_VT - -5A733 CoTClear_16_VT - -5A734 CoTClear_17_VT - -5A735 CoTClear_18_VT - -5A736 CoTClear_19_AP_VT - -5A737 CoTClear_1_VT - -5A738 CoTClear_20_AO_VT - -5A739 CoTClear_21_VT - -5A73A CoTClear_22_VT - -5A73B CoTClear_23_VT - -5A73C CoTClear_24_VT - -5A73D CoTClear_25_AO_VT - -5A73E CoTClear_26_AO_VT - -5A73F CoTClear_27_VT - -5A740 CoTClear_28_VT - -5A741 CoTClear_2_VT - -5A742 CoTClear_3_VT - -5A743 CoTClear_4_VT - -5A744 CoTClear_5_VT - -5A745 CoTClear_6_VT - -5A746 CoTClear_7_VT - -5A747 CoTClear_8_VT - -5A748 CoTClear_9_VT - -5B775 CoTCloudy_1_TU - -5B776 CoTCloudy_1_FF - -5B777 CoTCloudy_1_SN - -5B778 CoTCloudy_1_VT - -5B779 CoTCloudy_1_RE - -5B77A CoTCloudy_1_CO - -5B77B CoTCloudy_2_CO - -5B77C CoTCloudy_2_FF - -5B77D CoTCloudy_2_MA - -5B77E CoTCloudy_2_RE - -5B77F CoTCloudy_2_SN - -5B780 CoTCloudy_2_TU - -5B781 CoTCloudy_2_VT - -5B782 CoTCloudy_3_CO - -5B783 CoTCloudy_3_FF - -5B784 CoTCloudy_3_MA - -5B785 CoTCloudy_3_RE - -5B786 CoTCloudy_3_SN - -5B787 CoTCloudy_3_TU - -5B788 CoTCloudy_4_CO - -5B789 CoTCloudy_4_FF - -5B78A CoTCloudy_4_MA - -5B78B CoTCloudy_4_SN - -5B78C CoTCloudy_4_RE - -5B78D CoTCloudy_4_TU - -5B78E CoTCloudy_5_CO - -5B78F CoTCloudy_5_FF - -5B790 CoTCloudy_5_MA - -5B791 CoTCloudy_5_RE - -5B792 CoTCloudy_5_SN - -5B793 CoTCloudy_5_TU - -5B794 CoTCloudy_6_CO - -5B795 CoTCloudy_6_FF - -5B796 CoTCloudy_6_MA - -5B797 CoTCloudy_6_RE - -5B798 CoTCloudy_6_SN - -5B799 CoTCloudy_6_TU - -5B79A CoTCloudy_7_CO - -5B79B CoTCloudy_7_FF - -5B79C CoTCloudy_7_MA - -5B79D CoTCloudy_7_RE - -5B79E CoTCloudy_7_SN - -5B79F CoTCloudy_7_TU - -5B7A0 CoTCloudy_8_CO - -5B7A1 CoTCloudy_8_FF - -5B7A2 CoTCloudy_8_MA - -5B7A3 CoTCloudy_8_RE - -5B7A4 CoTCloudy_8_SN - -5B7A5 CoTCloudy_8_TU - -5B7A6 CoTCloudy_9_CO - -5B7A7 CoTCloudy_9_FF - -5B7A8 CoTCloudy_9_MA - -5B7A9 CoTCloudy_9_RE - -5B7AA CoTCloudy_9_SN - -5B7AB CoTCloudy_9_TU - -5B7AC CoTCloudy_10_CO - -5B7AD CoTCloudy_10_FF - -5B7AE CoTCloudy_10_MA - -5B7AF CoTCloudy_10_RE - -5B7B0 CoTCloudy_10_SN - -5B7B1 CoTCloudy_10_TU - -5B7B2 CoTCloudy_11_CO - -5B7B3 CoTCloudy_11_FF - -5B7B4 CoTCloudy_11_MA - -5B7B5 CoTCloudy_11_RE - -5B7B6 CoTCloudy_11_SN - -5B7B7 CoTCloudy_11_TU - -5B7B8 CoTCloudy_12_CO - -5B7B9 CoTCloudy_12_FF - -5B7BA CoTCloudy_12_MA - -5B7BB CoTCloudy_12_RE - -5B7BC CoTCloudy_12_SN - -5B7BD CoTCloudy_12_TU - -5B7BE CoTCloudy_13_A_CO - -5B7BF CoTCloudy_13_A_FF - -5B7C0 CoTCloudy_13_A_MA - -5B7C1 CoTCloudy_13_A_RE - -5B7C2 CoTCloudy_13_A_SN - -5B7C3 CoTCloudy_13_A_TU - -5B7C4 CoTCloudy_14_A_CO - -5B7C5 CoTCloudy_14_A_FF - -5B7C6 CoTCloudy_14_A_MA - -5B7C7 CoTCloudy_14_A_RE - -5B7C8 CoTCloudy_14_A_SN - -5B7C9 CoTCloudy_14_A_TU - -5B7CA CoTCloudy_15_CO - -5B7CB CoTCloudy_15_FF - -5B7CC CoTCloudy_15_MA - -5B7CD CoTCloudy_15_RE - -5B7CE CoTCloudy_15_SN - -5B7CF CoTCloudy_15_TU - -5B7D0 CoTCloudy_16_CO - -5B7D1 CoTCloudy_16_FF - -5B7D2 CoTCloudy_16_MA - -5B7D3 CoTCloudy_16_RE - -5B7D4 CoTCloudy_16_SN - -5B7D5 CoTCloudy_16_TU - -5B7D6 CoTCloudy_17_CO - -5B7D7 CoTCloudy_17_FF - -5B7D8 CoTCloudy_17_MA - -5B7D9 CoTCloudy_17_RE - -5B7DA CoTCloudy_17_SN - -5B7DB CoTCloudy_17_TU - -5B7DC CoTCloudy_18_CO - -5B7DD CoTCloudy_18_FF - -5B7DE CoTCloudy_18_MA - -5B7DF CoTCloudy_18_RE - -5B7E0 CoTCloudy_18_SN - -5B7E1 CoTCloudy_18_TU - -5B7E2 CoTCloudy_19_CO - -5B7E3 CoTCloudy_19_FF - -5B7E4 CoTCloudy_19_MA - -5B7E5 CoTCloudy_19_RE - -5B7E6 CoTCloudy_19_SN - -5B7E7 CoTCloudy_19_TU - -5B7E8 CoTCloudy_20_CO - -5B7E9 CoTCloudy_20_FF - -5B7EA CoTCloudy_20_MA - -5B7EB CoTCloudy_20_RE - -5B7EC CoTCloudy_20_SN - -5B7ED CoTCloudy_20_TU - -5B7EE CoTCloudy_21_CO - -5B7EF CoTCloudy_21_FF - -5B7F0 CoTCloudy_21_MA - -5B7F1 CoTCloudy_21_RE - -5B7F2 CoTCloudy_21_SN - -5B7F3 CoTCloudy_21_TU - -5B7F4 CoTCloudy_22_CO - -5B7F5 CoTCloudy_22_FF - -5B7F6 CoTCloudy_22_MA - -5B7F7 CoTCloudy_22_RE - -5B7F8 CoTCloudy_22_SN - -5B7F9 CoTCloudy_22_TU - -5B7FA CoTCloudy_23_CO - -5B7FB CoTCloudy_23_FF - -5B7FC CoTCloudy_23_MA - -5B7FD CoTCloudy_23_RE - -5B7FE CoTCloudy_23_SN - -5B7FF CoTCloudy_23_TU - -5B800 CoTCloudy_24_CO - -5B801 CoTCloudy_24_FF - -5B802 CoTCloudy_24_MA - -5B803 CoTCloudy_24_RE - -5B804 CoTCloudy_24_SN - -5B805 CoTCloudy_24_TU - -5B806 CoTCloudy_25_AP_CO - -5B807 CoTCloudy_25_AP_FF - -5B808 CoTCloudy_25_AP_MA - -5B809 CoTCloudy_25_AP_RE - -5B80A CoTCloudy_25_AP_SN - -5B80B CoTCloudy_25_AP_TU - -5B80C CoTCloudy_25_AP_VT - -5B80D CoTCloudy_26_AM_CO - -5B80E CoTCloudy_26_AM_FF - -5B80F CoTCloudy_26_AM_MA - -5B810 CoTCloudy_26_AM_RE - -5B811 CoTCloudy_26_AM_SN - -5B812 CoTCloudy_26_AM_TU - -5B813 CoTCloudy_27_AM_CO - -5B814 CoTCloudy_27_AM_FF - -5B815 CoTCloudy_27_AM_MA - -5B816 CoTCloudy_27_AM_RE - -5B817 CoTCloudy_27_AM_SN - -5B818 CoTCloudy_27_AM_TU - -5B819 CoTCloudy_28_AM_CO - -5B81A CoTCloudy_28_AM_FF - -5B81B CoTCloudy_28_AM_MA - -5B81C CoTCloudy_28_AM_RE - -5B81D CoTCloudy_28_AM_SN - -5B81E CoTCloudy_28_AM_TU - -6497D CoTOvercast_Storm_Needles - -68A17 CoTOvercast_Storm_Grass - -68A18 CoTOvercast_Storm_Leaves - -68A1A CoTSnowBlizzard_Swirl - -6C559 CoTSnowBlizzard_Down_NoFog - - -Climates of Tamriel (Dragonborn Patch) - -1ED92 CoTAsh_HS - -1ED93 CoTAsh_HS_A - -1ED94 CoTAsh_HS_AM - -1ED95 CoTAsh_HS_AP - -1ED96 CoTAsh_LS - - -Vivid Weathers (absolutely fucking insane 2: electric boogaloo) - -36CE DLC2Ashfall_HS - -36D2 DLC2VividSnow_LS - -36D3 DLC2VividSnow_NS_T - -12DDE6 SkyrimSnowBlizzard_Down_NoFog3 - -12DDE7 SkyrimSnowBlizzard_Down_NoFog2 - -12DDE8 SkyrimSnowBlizzard_Down_NoFog1 - -12DDE9 SkyrimSnowBlizzard_Swirl3 - -12DDEA SkyrimSnowBlizzard_Swirl2 - -12DDEB SkyrimSnowBlizzard_Swirl1 - -12DDEC SkyrimSnowStorm_46 - -12DDED SkyrimSnowStorm_45 - -12DDEE SkyrimSnowStorm_44 - -14D2DF SkyrimClear_Tundra_47 - -14D2E0 SkyrimClear_Tundra_48 - -14DDA7 SkyrimClear_Tundra_49 - -14DDA8 SkyrimClear_Tundra_50 - -14E30C SkyrimClear_Tundra_52 - -14E86F SkyrimClear_Tundra_53 - -14EDD3 SkyrimClear_Aurora_Tundra_55 - -14EDD5 SkyrimClear_Tundra_54 - -14EDD6 SkyrimClear_Aurora_Tundra_56 - -14F89B SkyrimClear_Tundra_57 - -14F89C SkyrimClear_Tundra_58 - -1508C3 SkyrimClear_Tundra_59 - -1508C4 SkyrimClear_Tundra_60 - -150E27 SkyrimClear_AuroraPeach_Tundra_61 - -150E28 SkyrimClear_AuroraOverdose_Tundra_62 - -15138B SkyrimClear_Tundra_63 - -15138C SkyrimClear_Tundra_64 - -1518EF SkyrimClear_Tundra_65 - -1518F0 SkyrimClear_Tundra_66 - -1518F1 SkyrimClear_AuroraOverdose_Tundra_67 - -1518F2 SkyrimClear_AuroraOverdose_Tundra_68 - -1518F3 SkyrimClear_Tundra_69 - -1518F4 SkyrimClear_Tundra_70 - -1523BA SkyrimClear_Tundra_46 - -155431 SkyrimClear_Tundra_43 - -155EF6 SkyrimClear_Tundra_44 - -156459 SkyrimClear_Tundra_45 - -157F44 SkyrimClear_Tundra_51 - -15AFB7 SkyrimCloudy_March_43 - -15D56B SkyrimCloudy_VolTundra_45 - -15DACE SkyrimCloudy_VolTundra_46 - -15E593 SkyrimCloudy_VolTundra_47 - -15E594 SkyrimCloudy_VolTundra_48 - -15EAF7 SkyrimCloudy_VolTundra_49 - -160080 SkyrimCloudy_VolTundra_50 - -160B45 SkyrimCloudy_VolTundra_51 - -1610A8 SkyrimCloudy_VolTundra_52 - -16160B SkyrimCloudy_VolTundra_53 - -1620D0 SkyrimCloudy_VolTundra_54 - -1620D1 SkyrimCloudy_Aurora_VolTundra_55 - -1620D2 SkyrimCloudy_Aurora_VolTundra_56 - -163BBD SkyrimCloudy_VolTundra_57 - -164124 SkyrimCloudy_VolTundra_58 - -164125 SkyrimCloudy_VolTundra_59 - -164126 SkyrimCloudy_VolTundra_60 - -164127 SkyrimCloudy_VolTundra_61 - -164128 SkyrimCloudy_VolTundra_62 - -164129 SkyrimCloudy_VolTundra_63 - -16412A SkyrimCloudy_VolTundra_64 - -16412B SkyrimCloudy_VolTundra_65 - -16412C SkyrimCloudy_VolTundra_66 - -16412E SkyrimCloudy_AuroraMental_VolTundra_68 - -16412F SkyrimCloudy_AuroraMental_VolTundra_69 - -164130 SkyrimCloudy_AuroraMental_VolTundra_70 - -166C4F SkyrimOvercast_43 - -167C7A SkyrimOvercast_44 - -167C7B SkyrimOvercast_45 - -167C7C SkyrimOvercast_46 - -167C7D SkyrimOvercast_AuroraPeach_47 - -167C7F SkyrimOvercast_AuroraMental_48 - -167C80 SkyrimOvercast_Thunder_43 - -167C81 SkyrimOvercast_Thunder_44 - -167C82 SkyrimOvercast_Thunder_46 - -167C83 SkyrimOvercast_Thunder_45 - -167C84 SkyrimOvercast_Thunder_47 - -167C85 SkyrimOvercast_Thunder_48 - -167C86 SkyrimOvercast_LowRain_43 - -167C87 SkyrimOvercast_HighRain_Thunder_43 - -167C88 SkyrimOvercast_HighRain_44 - -167C89 SkyrimOvercast_LowRain_44 - -167C8A SkyrimOvercast_HighRain_45 - -167C8B SkyrimOvercast_LowRain_45 - -167C8C SkyrimOvercast_HighRain_Thunder_46 - -167C8D SkyrimOvercast_LowRain_Thunder_46 - -167C8E SkyrimOvercast_HighRain_Thunder_47 - -167C8F SkyrimOvercast_LowRain_Thunder_47 - -167C90 SkyrimOvercast_HighRain_Thunder_48 - -167C91 SkyrimOvercast_LowRain_Thunder_48 - -168CBE SkyrimFog_43 - -168CBF SkyrimFog_Thunder_43 - -168CC0 SkyrimFog_44 - -168CC1 SkyrimFog_Thunder_44 - -168CC2 SkyrimFog_45 - -168CC3 SkyrimFog_Thunder_45 - -168CC4 SkyrimFog_46 - -168CC5 SkyrimFog_Thunder_46 - -168CC6 SkyrimFog_47 - -168CC7 SkyrimFog_Thunder_47 - -168CC8 SkyrimFog_48 - -168CC9 SkyrimFog_Thunder_48 - -16A7B8 SkyrimSnow_LS - -16B284 SkyrimFogWind - -16B285 SkyrimSnow_NS_T - -16B286 SkyrimSnow_HS - -16B287 SkyrimSnowStorm_T - -16B289 SkyrimClear_Interior_43 - -16B28A SkyrimClear_Interior_52 - -16B28B SkyrimClear_Interior_53 - -16B28C SkyrimClear_Interior_54 - -16B28D SkyrimClear_Aurora_Interior_55 - -16B28E SkyrimClear_Interior_57 - -16B28F SkyrimClear_Aurora_Interior_56 - -16B290 SkyrimClear_Interior_58 - -16B291 SkyrimClear_Interior_59 - -16B292 SkyrimClear_Interior_60 - -16B293 SkyrimClear_AuroraPeach_Interior_61 - -16B294 SkyrimClear_Interior_44 - -16B295 SkyrimClear_AuroraOverdose_Interior_62 - -16B296 SkyrimClear_Interior_63 - -16B297 SkyrimClear_Interior_64 - -16B298 SkyrimClear_Interior_65 - -16B299 SkyrimClear_Interior_66 - -16B29A SkyrimClear_AuroraOverdose_Interior_67 - -16B29B SkyrimClear_AuroraOverdose_Interior_68 - -16B29C SkyrimClear_Interior_69 - -16B29D SkyrimClear_Interior_70 - -16B29E SkyrimClear_Interior_45 - -16B29F SkyrimClear_Interior_46 - -16B2A0 SkyrimClear_Interior_47 - -16B2A1 SkyrimClear_Interior_48 - -16B2A2 SkyrimClear_Interior_49 - -16B2A3 SkyrimClear_Interior_50 - -16B2A4 SkyrimClear_Interior_51 - -16B818 SkyrimSnow_HS_AM - -16BD7B SkyrimSnow_HS_AP - -16BD7C SkyrimSnow_HS_A - -1769BD SkyrimFogRIFTEN_43 - -1769BE SkyrimFogRIFTEN_Thunder_43 - -1769BF SkyrimFogRIFTEN_44 - -1769C0 SkyrimFogRIFTEN_Thunder_44 - -1769C1 SkyrimFogRIFTEN_45 - -1769C2 SkyrimFogRIFTEN_46 - -1769C3 SkyrimFogRIFTEN_Thunder_45 - -1769C4 SkyrimFogRIFTEN_Thunder_46 - -1769C5 SkyrimFogRIFTEN_47 - -1769C6 SkyrimFogRIFTEN_Thunder_47 - -1769C7 SkyrimFogRIFTEN_48 - -1769C8 SkyrimFogRIFTEN_Thunder_48 - -1769C9 SkyrimFogRIFTENWind - -1794DE SkyrimClear_Coast_52 - -1794DF SkyrimClear_Coast_53 - -1794E0 SkyrimClear_Coast_54 - -1794E1 SkyrimClear_Aurora_Coast_55 - -1794E2 SkyrimClear_Aurora_Coast_56 - -1794E3 SkyrimClear_Coast_57 - -1794E4 SkyrimClear_Coast_58 - -1794E5 SkyrimClear_Coast_59 - -1794E6 SkyrimClear_Coast_60 - -1794E7 SkyrimClear_AuroraPeach_Coast_61 - -1794E8 SkyrimClear_Coast_43 - -1794E9 SkyrimClear_AuroraOverdose_Coast_62 - -1794EA SkyrimClear_Coast_63 - -1794EB SkyrimClear_Coast_64 - -1794EC SkyrimClear_Coast_65 - -1794ED SkyrimClear_Coast_66 - -1794EE SkyrimClear_AuroraOverdose_Coast_67 - -1794EF SkyrimClear_AuroraOverdose_Coast_68 - -1794F0 SkyrimClear_Coast_69 - -1794F1 SkyrimClear_Coast_70 - -1794F2 SkyrimClear_Coast_44 - -1794F3 SkyrimClear_Coast_45 - -1794F4 SkyrimClear_Coast_46 - -1794F5 SkyrimClear_Coast_47 - -1794F8 SkyrimClear_Coast_50 - -1794F9 SkyrimClear_Coast_51 - -179A61 SkyrimClear_Reach_52 - -179A62 SkyrimClear_Reach_53 - -179A63 SkyrimClear_Reach_54 - -179A64 SkyrimClear_Aurora_Reach_55 - -179A65 SkyrimClear_Aurora_Reach_56 - -179A66 SkyrimClear_Reach_57 - -179A67 SkyrimClear_Reach_58 - -179A68 SkyrimClear_Reach_59 - -179A69 SkyrimClear_Reach_60 - -179A6A SkyrimClear_AuroraPeach_Reach_61 - -179A6B SkyrimClear_Reach_43 - -179A6C SkyrimClear_AuroraOverdose_Reach_62 - -179A6D SkyrimClear_Reach_63 - -179A6E SkyrimClear_Reach_64 - -179A6F SkyrimClear_Reach_65 - -179A70 SkyrimClear_Reach_66 - -179A71 SkyrimClear_AuroraOverdose_Reach_67 - -179A72 SkyrimClear_AuroraOverdose_Reach_68 - -179A73 SkyrimClear_Reach_69 - -179A74 SkyrimClear_Reach_70 - -179A75 SkyrimClear_Reach_44 - -179A76 SkyrimClear_Reach_45 - -179A77 SkyrimClear_Reach_46 - -179A78 SkyrimClear_Reach_47 - -179A79 SkyrimClear_Reach_48 - -179A7A SkyrimClear_Reach_49 - -179A7B SkyrimClear_Reach_50 - -179A7C SkyrimClear_Reach_51 - -17A547 SkyrimClear_FallForrest_52 - -17A548 SkyrimClear_FallForrest_53 - -17A549 SkyrimClear_FallForrest_54 - -17A54A SkyrimClear_Aurora_FallForrest_55 - -17A54B SkyrimClear_Aurora_FallForrest_56 - -17A54C SkyrimClear_FallForrest_57 - -17A54D SkyrimClear_FallForrest_58 - -17A54E SkyrimClear_FallForrest_59 - -17A54F SkyrimClear_FallForrest_60 - -17A550 SkyrimClear_AuroraPeach_FallForrest_61 - -17A551 SkyrimClear_FallForrest_43 - -17A552 SkyrimClear_AuroraOverdose_FallForrest_62 - -17A553 SkyrimClear_FallForrest_63 - -17A554 SkyrimClear_FallForrest_64 - -17A555 SkyrimClear_FallForrest_65 - -17A556 SkyrimClear_FallForrest_66 - -17A557 SkyrimClear_AuroraOverdose_FallForrest_67 - -17A558 SkyrimClear_AuroraOverdose_FallForrest_68 - -17A559 SkyrimClear_FallForrest_69 - -17A55A SkyrimClear_FallForrest_70 - -17A55B SkyrimClear_FallForrest_44 - -17A55C SkyrimClear_FallForrest_45 - -17A55D SkyrimClear_FallForrest_46 - -17A55E SkyrimClear_FallForrest_47 - -17A55F SkyrimClear_FallForrest_48 - -17A560 SkyrimClear_FallForrest_49 - -17A561 SkyrimClear_FallForrest_50 - -17A562 SkyrimClear_FallForrest_51 - -17B591 SkyrimClear_Snow_52 - -17B592 SkyrimClear_Snow_53 - -17B593 SkyrimClear_Snow_54 - -17B594 SkyrimClear_Aurora_Snow_55 - -17B595 SkyrimClear_Aurora_Snow_56 - -17B596 SkyrimClear_Snow_57 - -17B597 SkyrimClear_Snow_58 - -17B598 SkyrimClear_Snow_59 - -17B599 SkyrimClear_Snow_60 - -17B59A SkyrimClear_AuroraPeach_Snow_61 - -17B59B SkyrimClear_Snow_43 - -17B59C SkyrimClear_AuroraOverdose_Snow_62 - -17B59D SkyrimClear_Snow_63 - -17B59E SkyrimClear_Snow_64 - -17B59F SkyrimClear_Snow_65 - -17B5A0 SkyrimClear_Snow_66 - -17B5A1 SkyrimClear_AuroraOverdose_Snow_67 - -17B5A2 SkyrimClear_AuroraOverdose_Snow_68 - -17B5A3 SkyrimClear_Snow_69 - -17B5A4 SkyrimClear_Snow_70 - -17B5A5 SkyrimClear_Snow_44 - -17B5A6 SkyrimClear_Snow_45 - -17B5A7 SkyrimClear_Snow_46 - -17B5A8 SkyrimClear_Snow_47 - -17B5A9 SkyrimClear_Snow_48 - -17B5AA SkyrimClear_Snow_49 - -17B5AB SkyrimClear_Snow_50 - -17B5AC SkyrimClear_Snow_51 - -17D5FF SkyrimClear_March_52 - -17D600 SkyrimClear_March_53 - -17D601 SkyrimClear_March_54 - -17D602 SkyrimClear_Aurora_March_55 - -17D603 SkyrimClear_Aurora_March_56 - -17D604 SkyrimClear_March_57 - -17D605 SkyrimClear_March_58 - -17D606 SkyrimClear_March_59 - -17D607 SkyrimClear_March_60 - -17D608 SkyrimClear_AuroraPeach_March_61 - -17D60A SkyrimClear_AuroraOverdose_March_62 - -17D60B SkyrimClear_March_63 - -17D60C SkyrimClear_March_64 - -17D60D SkyrimClear_March_65 - -17D60E SkyrimClear_March_66 - -17D60F SkyrimClear_AuroraOverdose_March_67 - -17D610 SkyrimClear_AuroraOverdose_March_68 - -17D611 SkyrimClear_March_69 - -17D612 SkyrimClear_March_70 - -17D613 SkyrimClear_March_44 - -17D614 SkyrimClear_March_45 - -17D615 SkyrimClear_March_46 - -17D616 SkyrimClear_March_47 - -17D617 SkyrimClear_March_48 - -17D618 SkyrimClear_March_49 - -17D619 SkyrimClear_March_50 - -17D61A SkyrimClear_March_51 - -17DB82 SkyrimClear_March_43 - -17DB83 SkyrimClear_VolTundra_52 - -17DB84 SkyrimClear_VolTundra_53 - -17DB85 SkyrimClear_VolTundra_54 - -17DB86 SkyrimClear_Aurora_VolTundra_55 - -17DB87 SkyrimClear_Aurora_VolTundra_56 - -17DB88 SkyrimClear_VolTundra_57 - -17DB89 SkyrimClear_VolTundra_58 - -17DB8A SkyrimClear_VolTundra_59 - -17DB8B SkyrimClear_VolTundra_60 - -17DB8C SkyrimClear_AuroraPeach_VolTundra_61 - -17DB8D SkyrimClear_VolTundra_43 - -17DB8E SkyrimClear_AuroraOverdose_VolTundra_62 - -17DB8F SkyrimClear_VolTundra_63 - -17DB90 SkyrimClear_VolTundra_64 - -17DB91 SkyrimClear_VolTundra_65 - -17DB92 SkyrimClear_VolTundra_66 - -17DB93 SkyrimClear_AuroraOverdose_VolTundra_67 - -17DB94 SkyrimClear_AuroraOverdose_VolTundra_68 - -17DB95 SkyrimClear_VolTundra_69 - -17DB96 SkyrimClear_VolTundra_70 - -17DB97 SkyrimClear_VolTundra_44 - -17DB98 SkyrimClear_VolTundra_45 - -17DB99 SkyrimClear_VolTundra_46 - -17DB9A SkyrimClear_VolTundra_47 - -17DB9B SkyrimClear_VolTundra_48 - -17DB9C SkyrimClear_VolTundra_49 - -17DB9D SkyrimClear_VolTundra_50 - -17DB9E SkyrimClear_VolTundra_51 - -17EBCB SkyrimCloudy_Tundra_43 - -17EBCC SkyrimCloudy_FallForrest_43 - -17EBCD SkyrimCloudy_Snow_43 - -17EBCE SkyrimCloudy_VolTundra_43 - -17EBCF SkyrimCloudy_Reach_43 - -17EBD0 SkyrimCloudy_Coast_43 - -17EBD1 SkyrimCloudy_Coast_44 - -17EBD2 SkyrimCloudy_FallForrest_44 - -17EBD3 SkyrimCloudy_March_44 - -17EBD4 SkyrimCloudy_Reach_44 - -17EBD5 SkyrimCloudy_Snow_44 - -17EBD6 SkyrimCloudy_Tundra_44 - -17EBD7 SkyrimCloudy_VolTundra_44 - -17EBD8 SkyrimCloudy_Coast_45 - -17EBD9 SkyrimCloudy_FallForrest_45 - -17EBDA SkyrimCloudy_March_45 - -17EBDB SkyrimCloudy_Reach_45 - -17EBDC SkyrimCloudy_Snow_45 - -17EBDD SkyrimCloudy_Tundra_45 - -17EBDE SkyrimCloudy_Coast_46 - -17EBDF SkyrimCloudy_FallForrest_46 - -17EBE0 SkyrimCloudy_March_46 - -17EBE1 SkyrimCloudy_Snow_46 - -17EBE2 SkyrimCloudy_Reach_46 - -17EBE3 SkyrimCloudy_Tundra_46 - -17EBE4 SkyrimCloudy_Coast_47 - -17EBE5 SkyrimCloudy_FallForrest_47 - -17EBE6 SkyrimCloudy_March_47 - -17EBE7 SkyrimCloudy_Reach_47 - -17EBE8 SkyrimCloudy_Snow_47 - -17EBE9 SkyrimCloudy_Tundra_47 - -17EBEA SkyrimCloudy_Coast_48 - -17EBEB SkyrimCloudy_FallForrest_48 - -17EBEC SkyrimCloudy_March_48 - -17EBED SkyrimCloudy_Reach_48 - -17EBEE SkyrimCloudy_Snow_48 - -17EBEF SkyrimCloudy_Tundra_48 - -17EBF0 SkyrimCloudy_Coast_49 - -17EBF1 SkyrimCloudy_FallForrest_49 - -17EBF2 SkyrimCloudy_March_49 - -17EBF3 SkyrimCloudy_Reach_49 - -17EBF4 SkyrimCloudy_Snow_49 - -17EBF5 SkyrimCloudy_Tundra_49 - -17EBF6 SkyrimCloudy_Coast_50 - -17EBF7 SkyrimCloudy_FallForrest_50 - -17EBF8 SkyrimCloudy_March_50 - -17EBF9 SkyrimCloudy_Reach_50 - -17EBFA SkyrimCloudy_Snow_50 - -17EBFB SkyrimCloudy_Tundra_50 - -17EBFC SkyrimCloudy_Coast_51 - -17EBFD SkyrimCloudy_FallForrest_51 - -17EBFE SkyrimCloudy_March_51 - -17EBFF SkyrimCloudy_Reach_51 - -17EC00 SkyrimCloudy_Snow_51 - -17EC01 SkyrimCloudy_Tundra_51 - -17EC02 SkyrimCloudy_Coast_52 - -17EC03 SkyrimCloudy_FallForrest_52 - -17EC04 SkyrimCloudy_March_52 - -17EC05 SkyrimCloudy_Reach_52 - -17EC06 SkyrimCloudy_Snow_52 - -17EC07 SkyrimCloudy_Tundra_52 - -17EC08 SkyrimCloudy_Coast_53 - -17EC09 SkyrimCloudy_FallForrest_53 - -17EC0A SkyrimCloudy_March_53 - -17EC0B SkyrimCloudy_Reach_53 - -17EC0C SkyrimCloudy_Snow_53 - -17EC0D SkyrimCloudy_Tundra_53 - -17EC0E SkyrimCloudy_Coast_54 - -17EC0F SkyrimCloudy_FallForrest_54 - -17EC10 SkyrimCloudy_March_54 - -17EC11 SkyrimCloudy_Reach_54 - -17EC12 SkyrimCloudy_Snow_54 - -17EC13 SkyrimCloudy_Tundra_54 - -17EC14 SkyrimCloudy_Aurora_Coast_55 - -17EC15 SkyrimCloudy_Aurora_FallForrest_55 - -17EC16 SkyrimCloudy_Aurora_March_55 - -17EC17 SkyrimCloudy_Aurora_Reach_55 - -17EC18 SkyrimCloudy_Aurora_Snow_55 - -17EC19 SkyrimCloudy_Aurora_Tundra_55 - -17EC1A SkyrimCloudy_Aurora_Coast_56 - -17EC1B SkyrimCloudy_Aurora_FallForrest_56 - -17EC1C SkyrimCloudy_Aurora_March_56 - -17EC1D SkyrimCloudy_Aurora_Reach_56 - -17EC1E SkyrimCloudy_Aurora_Snow_56 - -17EC1F SkyrimCloudy_Aurora_Tundra_56 - -17EC20 SkyrimCloudy_Coast_57 - -17EC21 SkyrimCloudy_FallForrest_57 - -17EC22 SkyrimCloudy_March_57 - -17EC23 SkyrimCloudy_Reach_57 - -17EC24 SkyrimCloudy_Snow_57 - -17EC25 SkyrimCloudy_Tundra_57 - -17EC26 SkyrimCloudy_Coast_58 - -17EC27 SkyrimCloudy_FallForrest_58 - -17EC28 SkyrimCloudy_March_58 - -17EC29 SkyrimCloudy_Reach_58 - -17EC2A SkyrimCloudy_Snow_58 - -17EC2B SkyrimCloudy_Tundra_58 - -17EC2C SkyrimCloudy_Coast_59 - -17EC2D SkyrimCloudy_FallForrest_59 - -17EC2E SkyrimCloudy_March_59 - -17EC2F SkyrimCloudy_Reach_59 - -17EC30 SkyrimCloudy_Snow_59 - -17EC31 SkyrimCloudy_Tundra_59 - -17EC32 SkyrimCloudy_Coast_60 - -17EC33 SkyrimCloudy_FallForrest_60 - -17EC34 SkyrimCloudy_March_60 - -17EC35 SkyrimCloudy_Reach_60 - -17EC36 SkyrimCloudy_Snow_60 - -17EC37 SkyrimCloudy_Tundra_60 - -17EC38 SkyrimCloudy_Coast_61 - -17EC39 SkyrimCloudy_FallForrest_61 - -17EC3A SkyrimCloudy_March_61 - -17EC3B SkyrimCloudy_Reach_61 - -17EC3C SkyrimCloudy_Snow_61 - -17EC3D SkyrimCloudy_Tundra_61 - -17EC3E SkyrimCloudy_Coast_62 - -17EC3F SkyrimCloudy_FallForrest_62 - -17EC40 SkyrimCloudy_March_62 - -17EC41 SkyrimCloudy_Reach_62 - -17EC42 SkyrimCloudy_Snow_62 - -17EC43 SkyrimCloudy_Tundra_62 - -17EC44 SkyrimCloudy_Coast_63 - -17EC45 SkyrimCloudy_FallForrest_63 - -17EC46 SkyrimCloudy_March_63 - -17EC47 SkyrimCloudy_Reach_63 - -17EC48 SkyrimCloudy_Snow_63 - -17EC49 SkyrimCloudy_Tundra_63 - -17EC4A SkyrimCloudy_Coast_64 - -17EC4B SkyrimCloudy_FallForrest_64 - -17EC4C SkyrimCloudy_March_64 - -17EC4D SkyrimCloudy_Reach_64 - -17EC4E SkyrimCloudy_Snow_64 - -17EC4F SkyrimCloudy_Tundra_64 - -17EC50 SkyrimCloudy_Coast_65 - -17EC51 SkyrimCloudy_FallForrest_65 - -17EC52 SkyrimCloudy_March_65 - -17EC53 SkyrimCloudy_Reach_65 - -17EC54 SkyrimCloudy_Snow_65 - -17EC55 SkyrimCloudy_Tundra_65 - -17EC56 SkyrimCloudy_Coast_66 - -17EC57 SkyrimCloudy_FallForrest_66 - -17EC58 SkyrimCloudy_March_66 - -17EC59 SkyrimCloudy_Reach_66 - -17EC5A SkyrimCloudy_Snow_66 - -17EC5B SkyrimCloudy_Tundra_66 - -17EC5C SkyrimCloudy_AuroraPeach_Coast_67 - -17EC5D SkyrimCloudy_AuroraPeach_FallForrest_67 - -17EC5E SkyrimCloudy_AuroraPeach_March_67 - -17EC5F SkyrimCloudy_AuroraPeach_Reach_67 - -17EC60 SkyrimCloudy_AuroraPeach_Snow_67 - -17EC61 SkyrimCloudy_AuroraPeach_Tundra_67 - -17EC62 SkyrimCloudy_AuroraPeach_VolTundra_67 - -17EC63 SkyrimCloudy_AuroraMental_Coast_68 - -17EC64 SkyrimCloudy_AuroraMental_FallForrest_68 - -17EC65 SkyrimCloudy_AuroraMental_March_68 - -17EC66 SkyrimCloudy_AuroraMental_Reach_68 - -17EC67 SkyrimCloudy_AuroraMental_Snow_68 - -17EC68 SkyrimCloudy_AuroraMental_Tundra_68 - -17EC69 SkyrimCloudy_AuroraMental_Coast_69 - -17EC6A SkyrimCloudy_AuroraMental_FallForrest_69 - -17EC6B SkyrimCloudy_AuroraMental_March_69 - -17EC6C SkyrimCloudy_AuroraMental_Reach_69 - -17EC6D SkyrimCloudy_AuroraMental_Snow_69 - -17EC6E SkyrimCloudy_AuroraMental_Tundra_69 - -17EC6F SkyrimCloudy_AuroraMental_Coast_70 - -17EC70 SkyrimCloudy_AuroraMental_FallForrest_70 - -17EC71 SkyrimCloudy_AuroraMental_March_70 - -17EC72 SkyrimCloudy_AuroraMental_Reach_70 - -17EC73 SkyrimCloudy_AuroraMental_Snow_70 - -17EC74 SkyrimCloudy_AuroraMental_Tundra_70 - -187DD3 SkyrimOC_Storm_ANWE - -18BE6D SkyrimOC_Storm_ANWE2 - -18BE6E SkyrimOC_Storm_ALWE - -18BE70 SkyrimSnowBlizzard_Swirl - -18F9AF SkyrimSnowBlizzard_Down_NoFog - -18FDAF DLC2VividAshBlizzard - -18FDB0 DLC2VividAshFall - -194EB6 FXVampireAttack -