Skip to content

Community-driven advanced graphics modifications for AE, SE and VR. Also fixes bugs and improves performance.

License

Notifications You must be signed in to change notification settings

doodlum/skyrim-community-shaders

Repository files navigation

Skyrim Community Shaders

SKSE core plugin for community-driven advanced graphics modifications.

Nexus

Requirements

  • Any terminal of your choice (e.g., PowerShell)
  • Visual Studio Community 2022
    • Desktop development with C++
  • CMake
    • Edit the PATH environment variable and add the cmake.exe install path as a new value
    • Instructions for finding and editing the PATH environment variable can be found here
  • Git
    • Edit the PATH environment variable and add the Git.exe install path as a new value
  • Vcpkg
    • Install vcpkg using the directions in vcpkg's Quick Start Guide
    • After install, add a new environment variable named VCPKG_ROOT with the value as the path to the folder containing vcpkg
    • Make sure your local vcpkg repo matches the commit id specified in builtin-baseline in vcpkg.json otherwise you might get another version of a non pinned vcpkg dependency causing undefined behaviour

User Requirements

Register Visual Studio as a Generator

  • Open x64 Native Tools Command Prompt
  • Run cmake
  • Close the cmd window

Or, in powershell run:

& "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64

Clone and Build

Open terminal (e.g., PowerShell) and run the following commands:

git clone https://github.com/doodlum/skyrim-community-shaders.git --recursive
cd skyrim-community-shaders
.\BuildRelease.bat

CMAKE Options (optional)

If you want an example CMakeUserPreset to start off with you can copy the CMakeUserPresets.json.template -> CMakeUserPresets.json

AUTO_PLUGIN_DEPLOYMENT

  • This option is default "OFF"
  • Make sure "AUTO_PLUGIN_DEPLOYMENT" is set to "ON" in CMakeUserPresets.json
  • Change the "CommunityShadersOutputDir" value to match your desired outputs, if you want multiple folders you can separate them by ; is shown in the template example

AIO_ZIP_TO_DIST

  • This option is default "ON"
  • Make sure "AIO_ZIP_TO_DIST" is set to "ON" in CMakeUserPresets.json
  • This will create a CommunityShaders_AIO.7z archive in /dist containing all features and base mod

ZIP_TO_DIST

  • This option is default "ON"
  • Make sure "ZIP_TO_DIST" is set to "ON" in CMakeUserPresets.json
  • This will create a zip for each feature and one for the base Community shaders in /dist
  • If having a file with name CORE in the root of the features folder it will instead be merged into the core zip

TRACY_SUPPORT

  • This option is default "OFF"
  • This will enable tracy support, might need to delete build folder when this option is changed

When using custom preset you can call BuildRelease.bat with an parameter to specify which preset to configure eg: .\BuildRelease.bat ALL-WITH-AUTO-DEPLOYMENT

When switching between different presets you might need to remove the build folder

Build with Docker

For those who prefer to not install Visual Studio or other build dependencies on their machine, this encapsulates it. This uses Windows Containers, so no WSL for now.

  1. Install Docker first if not already there.
  2. In a shell of your choice run to switch to Windows containers and create the build container:
& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchWindowsEngine; `
docker build -t skyrim-community-shaders .
  1. Then run the build:
docker run -it --rm -v .:C:/skyrim-community-shaders skyrim-community-shaders:latest
  1. Retrieve the generated build files from the build/aio folder.
  2. In subsequent builds only run the build step (3.)

License

Default

GPL-3.0-or-later WITH Modding Exception AND GPL-3.0 Linking Exception (with Corresponding Source).
Specifically, the Modded Code includes:

The Modding Libraries include:

  • SKSE
  • Commonlib (and variants).

Shaders

See LICENSE within each directory; if none, it's Default