Architecture¶
How the _Core library is built. For advanced users who want to read the graphs or build their own master. See also: Naming and standards, Editing the masters.
How a master works¶
- Every surface comes from MF_KurinMaster (textures, color, normal, roughness, height). Layered masters call it once per layer.
- Add-ons are separate MF_Kurin... functions, chained one after another on Material Attributes. Each sits behind its own Use ...? switch.
- Each master has one output point: Break → Make Material Attributes → Output. Features never write into the output directly.
- Surface add-ons (Cover, Dust, Weather, Landscape Blend, Fuzzy Shading) also output their mask (0..1), so a custom master or a future Substrate setup can reuse them.
flowchart LR
A[MF_KurinMaster] --> B[Layer blend] --> C[Fuzzy / Emissive / Opacity / Dust] --> D[Landscape Blend] --> E[Cover] --> F[Weather] --> G[Break - Make - Output]
W[Wind / Cloth Wind] -. WPO .-> G
Not every master has every step: single-surface masters skip the layer blend, layered masters skip Fuzzy / Emissive / Opacity / Dust.
Functions¶
| Function | What it does | Extra outputs |
|---|---|---|
| MF_KurinMaster | One full surface from Base Color, NNMR, Mask and Height Map; parallax inside | Mask, Height |
| MF_KurinNormalReconstructZ | Rebuilds the normal from NNMR / NNOR | |
| MF_KurinParallax | Relief parallax (used by MF_KurinMaster) | |
| MF_KurinVtxBlend | Height-aware blend of two layers | Alpha, Border Signal |
| MF_KurinWeather | Wetness, puddles, rain, streaks, shore, submerged, ice, frost, condensation | Wetness / Puddle / Frost / Submerged / Condensation Mask |
| MF_KurinCover | Moss, snow, leaves on top | Cover Mask |
| MF_KurinDust | Dust on up-facing surfaces | Dust Mask |
| MF_KurinRVTBlend | Landscape Blend from the Runtime Virtual Textures | Landscape Blend Mask |
| MF_KurinFuzzy | Fuzzy Shading | Fuzzy Mask |
| MF_KurinEmissive | Glow by a Mask Map channel | |
| MF_KurinOpacityMask | Cut-out, invert, contrast, camera fade | |
| MF_KurinFoliage, MF_KurinSubsurface | Foliage color variation, bush normals; light through leaves | |
| MF_KurinVegetationWind, MF_KurinClothWind | Foliage wind; waving cloth (WPO) | |
| MF_KurinScreen | Screen image / flipbook with CRT and LCD effects | |
| MF_KurinInterior | Fake rooms, blinds, cracks and grime behind glass | Interior Mask, Interior Depth |
| MF_KurinWaterRipplesNormal, MF_KurinWaterWaves | Water ripples; puddle waves inside Weather |
Masters¶
| Master | Built from |
|---|---|
| MM_KurinAsset_01a | MF_KurinMaster + Fuzzy, Emissive, Opacity, Dust, Landscape Blend, Cover, Weather, Cloth Wind |
| MM_KurinAssetFoliage_01a | MF_KurinMaster + Foliage, Opacity, Subsurface, Vegetation Wind |
| MM_KurinAssetVtxBlend_01a | 3 × MF_KurinMaster + VtxBlend, Landscape Blend, Cover, Weather |
| MM_KurinAssetMaskBlend_01a | 4 × MF_KurinMaster + VtxBlend, Landscape Blend, Cover, Weather |
| MM_KurinLandscape_01a | 4 × MF_KurinMaster + layer blend, cliff, macro variation, Cover, Weather |
| MM_KurinAssetDecalMasked_01a, MM_KurinAssetDecalTranslucent_01a | MF_KurinMaster + Opacity, Weather |
| MM_KurinAssetGlass_01a | Own glass surface + Opacity, Weather |
| MM_KurinInterior_01a | Glass base + MF_KurinInterior, Weather |
| MM_KurinScreen_01a | MF_KurinMaster + MF_KurinScreen |
| MM_KurinWater_01a | Own Single Layer Water graph + MF_KurinWaterRipplesNormal |
| MLB_KurinMaterialLayered | Material Layers stack (MLB_KurinAssetLayer, blends MLB_KurinMask / Direction / WorldHeight) + Cover, Weather |
Shared assets¶
| Asset | Used by |
|---|---|
| MPC_KurinWeather | Use Global Weather?, Use Global Cover? |
| MPC_KurinWind | Use Global Wind?, Use Interaction? |
| RVT_KurinLandscapeColor, RVT_KurinLandscapeHeight | Landscape Blend |
Details: Presets and helper assets.