Language: English | 简体中文
| Path | Role in Alpha Piscium |
|---|---|
shaders/ |
Runtime shader-pack contents that can be installed directly |
scripts/ |
Generators, packaging, release, and offline asset tools |
docs/ |
Project-specific development and module documentation |
changelogs/ |
Release notes; the options script also derives its default version from them |
data/ |
Source data used by offline scripts |
licenses/ |
Third-party licenses shipped in the package |
.github/ |
GitHub workflows and repository configuration |
README.md, LICENSE |
Public overview and primary license |
shaders/
├─ Base.glsl common include root
├─ base/ shared interfaces and generated bindings
├─ pass/ entry-point shaders grouped by pipeline stage
├─ techniques/ reusable modules plus existing direct compute entries
├─ util/ general GLSL helpers and data types
├─ textures/ runtime LUT, noise, sky, cloud, and sampling assets
├─ lang/ generated option localization
├─ *.csh generated compute wrappers
├─ *.vsh/*.fsh… Iris compatibility entry wrappers
├─ shaders.properties
└─ shadesmith.json
Base.glsl and base/
shaders/Base.glslis the common include root for most shaders. It brings in the compatibility, uniform, texture, SSBO, and option interfaces underbase/; utilities are included separately as needed.Uniforms.glsl,Textures.glsl, andSSBO.glsldefine the project's shared data bindings.Configs.glslseparately defines Iris/shadow compatibility, attachment-clear behavior, and retains a format reference table in its comments.Options.glslandTextOptions.glslare generated by the options DSL.Textile.glslcarries Shadesmith tile bindings;shadesmith.jsonis the source of the tile layout.
Only shaders with an entry point belong here; it is the standard location for new entry points:
setup/: initialization and cleanup when the shader pack loads or its dimensions change.begin/: per-frame global-data, LUT, work-queue, and transient-resource preparation.geometry/: solid, translucent, and shadow geometry entry implementations.shadowcomp/: water-normal processing after shadow geometry.composite/: screen-space lighting, GI, volumetrics, translucency, and post-processing entry points.general/: shared full-screen and no-op wrapper implementations.
Shared code without main belongs under techniques/ or util/.
This directory groups reusable implementations by algorithm or module. It also currently retains a few compute entry
points registered directly in the program list, including
Bloom.comp.glsl, rtwsm/*.comp.glsl, and atmospheric LUT/cloud passes:
gi/: shared ReSTIR, reprojection, reservoir, and GI-denoising implementations; the SST core isSST2.glslat the technique root.atmospherics/: atmospheric-scattering LUTs, epipolar scattering, underwater volumetrics, and clouds.rtwsm/: shadow importance maps, warping, and coordinate mapping.displaytransform/: exposure, DRT, and final display transforms.ffx/: the FSR1/RCAS/SPD code currently in use and third-party compatibility layers.- Files at the directory root include shared bloom, DOF, Hi-Z, lighting, environment-probe, and water-wave implementations.
Treat the existing direct compute entries as existing layout, not as a template for new entry points.
This directory contains helpers that are genuinely shared across modules: math, coordinate, sampling, random-number,
material/G-buffer, BSDF/Fresnel, and color-space utilities. Debug implementations live under
shaders/techniques/debug/. Code used by one major module should stay in its
corresponding techniques/<module>/ directory rather than expanding the shared layer.
setup*.csh,begin*.csh,shadowcomp*.csh, andcomposite*.cshare generated byscripts/programs.main.kts.gbuffers_*,shadow*,dh_*, andfinal.*are Iris compatibility entry points that include the real implementations underpass/.shaders.propertiesis generated; maintainscripts/shaders.propertiesand the program/options source files instead.block.propertiessupplies block material/emissive mappings.item.propertiescurrently contains onlyitem.0=air, which controls held-item/empty-hand ID behavior.voxy*.glslandvoxy.jsonare Voxy integration entry points. Voxy implementsvoxy_emitFragmentdirectly and does not include the general geometry pass.
The core generation chain is programs.main.kts,
options.main.kts, shadesmith.ps1, and
make-zip.main.kts. The remaining *.kts/*.main.kts files mainly generate
offline textures/LUTs or perform release operations; see other scripts.
scripts/shaders.properties is a handwritten property source, not generated
output.
- New entry points with
main:shaders/pass/; withoutmain:shaders/techniques/orshaders/util/. Maintain existing technique compute entries in place unless a dedicated structure refactor moves them. - Reuse an existing module directory unless a genuinely separate pipeline responsibility appears.
- Update generated files through their source script.
- New settings go through the options DSL, tiles through
shadesmith.json, and compute passes through the program list.