Pure Nature Packs - Readme
.png)
Builtin or URP setup are only needed for versions prior to Unity6 (from 2022.3.10f1 to 6000.0.34f1).
No setup needed for Version 6000.0.34f1 and above - packs use URP by default on Unity6.
⚠️ Make sure your Project Settings are set to Linear when using older versions of Unity.

.png)
_________________________________________________________________________________________________
➡️ Setup - BUILTIN
To achieve the exact same lighting setup as the screenshots seen on the Asset Store,
install the Post-Processing via the PackageManager, located in Window > Package Manager.
.png)
.png)
When installed, create a Game Object > 3D Object > Post-Process Volume in the scene.
On the created Volume, assign the existing Profile located in Settings > Built-in, or create a new one.
Assign a Layer for the Post-Process Volume by clicking on the Default Layer and Add Layer...
Give any name to the new Layer (here “Fx”), and go back to the Volume to assign it.
Check Is Global.

Next, add a Post-Process Layer component to the scene Camera

and assign the newly created Layer to it.
Choose FXAA as anti-aliasing mode.
_________________________________________________________________________________________________
➡️ Setup - URP
Install the Universal Render Pipeline via the Package Manager if the project isn’t already using it.
.png)
Open the UnityPackage located in the Settings > URP folder of the pack.
This package contains all URP settings, aswell as shaders, materials, and scenes to be replaced.
Find the extracted URP Asset located here :
.png)
And drag it into Edit > Project Settings > Graphics :
.png)
You may have to reload the scene for some shaders like terrain grass to fully update / refresh.
If you are using a version of Unity6 prior to 6000.0.34f1, compatible shaders are available :
Simply replace the existing ones in BK/Pure_Common/Shaders folder.
_________________________________________________________________________________________________
URP Settings
Depth and Opaque Texture need to be enabled in the URPAsset for the shaders to work properly.
.png)
Depth Priming Mode also need to be set on Forced on the URP Renderer.
.png)
Post-Processing profiles for each pipeline are located in the Settings folder of each individual packs.
.png)
_________________________________________________________________________________________________
Scripts
Environment Manager
The EnvironmentManager script is provided to give some global controls over the scene.
Colors for Sun, Fog, Clouds, and Ambient Lighting can be set relative to the Directional Light angle. Uncheck to disable the override.
Base Wind controls the movement intensity of trees trunks.
Wind Bursts gives some intensity variations to the Base Wind
Micro Wind controls the movement intensity of grass and tree leaves.
Render Distance is for grass. This value only set the fade distance. The actual grass culling still needs to be set on the Terrain itself.
Clouds are managed on both EnvironmentManager and Clouds material.
The EnvironmentManager spawns a number of planes (QuadMeshes using GPU instancing).
Volume Samples is the number of planes, Volume Size controls spacing between planes.
.png)
You can edit coverage, movement, color etc, directly on the Clouds Material just below the script.
Apply LOD Transition
Menu Item placed under Tools/BK
Changes the LOD crossfade transition distance to all selected prefabs in scene or in Project tab to the selected value.
Copy Colors to Impostors
Menu Item placed under Tools/BK
Editor script to copy/paste colors values from tree Prefabs to their Impostors.
If you edit tree leaves colors, simply select the prefab (in scene or in folders) and run this script.
Material Replacer
Menu Item placed under Tools/BK
Editor script to switch a material on all the LODs of a prefab.
Free Camera
Simple WASD free flying Camera, Shift to boost, Mousewheel to change Field of View.
GodraysController
This script will rotate Prefabs relative to the Directional Light rotation.

Either list the objects you want to affect
or place them as children of the GameObject with the script, and check Affect All Children.
_________________________________________________________________________________________________
Shaders
All Shaders are made, and are fully editable with Amplify Shader Editor.
They are all located in BK > Pure_Common > Shader.

Some transparent shaders (Grass and Trees) uses Dithering as opacity method. This can show pixellated artifacts, FXAA will greatly reduce those.
It can be disabled on the Tree leaves materials - it is needed for AngleFade. Simply Uncheck HideSides.
Most shaders use either VertexColor, an IDmap, or a Maskmap to control their effects.
BK_Grass
Transparent shader for Grass with color variation and wind.
Grass distance is managed by both EnvironmentManager (fade) and Terrain (culling). A distance multiplier is also present on the material.
Normal map can be put in WorldSpace to change grass lighting more globally than per-patch. The noise that controls the color variation (blend between Color1 and Color2) will use the same UV.
Have a Wind multiplier.
BK_StandardLayer
Standard PBR Shader, with a masked layer for moss or snow.
Layer mask uses either Vertex Color or World-Space Normals (top of the object).
This masking can be adjusted by using Layer Position and Layer Contrast.
Mesh normals and Layer normals, can be blended together.
The Detail Layer uses triplanar.
Mask map use the following channels (standard Unity packing) :
R – Metalness
G – Occlusion
B – n/a
A – Smoothness
BK_VegetationTrunk
Same Shader as the BK_StandardLayer, with VertexAnimation added to move trunks with the wind.
Wind is controlled via mesh VertexColor (Green channel).
Wind VertexColor can be adjusted by using Layer Position and Layer Contrast.
Also has a wind mulplier for per-material tweaks.
Mask map use the following channels (standard Unity packing) :
R – Metalness
G – Occlusion
B – n/a (Height when available)
A – Smoothness
All trees Meshs use the following VertexColor :

R – Micro wind - Color mask for leaves
G – Base Wind for trunk
B – Layer for moss, snow, sand…
A – Ambient Occlusion
BK_VegetationLeaves
Shader for trees leaves with Transluency and wind.
Has a gradient parameter to control a blend between two colors from base to top,
a third color is used for a global color variation (controlled by a World-Space noise).
Has a Wind Multiplier override.

Planes visible at angle..

Smooth fluffy leaves !
The checkbox Hide Sides enables hiding of flat geometry when viewed at glancing angles.
This uses Dithering - can be disabled.
BK_Impostors
Same shader as BK_VegetationLeaves, transluency and wind with Normal and Mask added.
Has a Wind Multiplier override.
Mask map uses the following channels :
R – Metalness
G – Occlusion
B – Leaves color mask
A – Smoothness
BK_Billboards
Same shader as BK_Impostor but for billboards instead of crossed cards.
Only used by PureNature 1 - Newer packs use Impostors.
BK_Clouds
Transparent shader for pseudo-volumetric clouds.
It controls two moving noises at different scales/speeds/directions.
Has multiple parameters for color, coverage, softness, scattering, distortion...
The main color can be set relative to the sun rotation with the EnvironmentManager.
BK_Water
Transparent Shader with depth color, edge foam, refraction, caustics, and waves.
Normal Direction controls the direction and speed of the waves.
The normal map is duplicated twice and uses XY and ZW values for speed/direction.
Edges Fade add a subtle fade on the borders of the water (to avoid sharp mesh edges)
Have a Distance Fade checkbox and values, to avoid thick fog onto water at far horizon.
_________________________________________________________________________________________________
(Pure Village only)
Organisation
Modularity
All modular pieces are made on a base grid of 3x3 units.
All architectural elements, like walls, roofs or supports, are sequetinally named and/or numbered with suffixes like _start / _middle / _end, to ensure proper texture alignment and shape continuity.
In addition, all Floors also have two other suffix _Up and _Down (relative from a top view).


In the above case, the _End piece is specifically designed to frame a house, by placing a wooden beam in the corner. The _Start piece is designed to fit the _End.
_Start > _Middle > _Middle >_Middle > _Middle > _Middle > _Middle > _End
All architectural elements, like walls, roofs or supports, have a size suffix (XY).
For example, a wall named 30x10 is equal to 3.0 units in X and 1.0 units in Y
Available sizes are 5, 10, 15, 20, 30 in both separate axes.
.png)
The same goes for Floors, which makes their number seems high. All the border parts are here to ensure precise alignment with a wide range of architecture configs.
For ease of use, the screenshot above is a prefab named Floors, placed in the Prefabs folder.
Drop it in your scene, unpack it via Right-Click > Prefab > Unpack, and start building from it.
.png)
Prefabs / Merged / Warped
Some props comes with 2 or 3 variations of distortion in order to avoid shape repetition.
.png)
Each house prefab of the pack comes in 3 variants :
-
Houses : made of modulars prefab instances,
-
HousesMerge : with all parts merged into 1 mesh per LOD
-
HousesWarp : with a light warp/distortion on them.

Houses LOD3 (optional)
Each architecture prefab includes a LOD3 mesh that remains inactive during rendering.
This LOD3 is utilized to allow you to facilitate the bake of a final HLOD for custom made houses.
HLODs are optional, but they greatly improve performance on large scale levels.
All merged houses from the pack already have HLODs.
Here are some very high-level steps on how to :
-
Export your custom house from unity, with all elements placed in child of an empty GameObject.
Install the "FBX Exporter" from the package manager, and go to GameObject/Export To FBX. Ensure to select all lods levels.
-
Import the house on any 3d application like Blender, Maya, 3dsMax...
Be sure for the house to be imported with it's materials and textures assigned.
-
Isolate the LOD3 and the LOD0 elements.
-
Merge/Weld the vertices of all the LOD3 elements.
Optionally, remove unwanted parts/vertices.
-
Apply some auto-UV mapping to the new merged HLOD.
-
Bake the LOD0 with all it's textures, onto the HLOD.
-
Import the new HLOD in Unity and add it to the LODgroupd of the desired House prefab.
We also have a small tool to automate this process, available on demand on Discord !
_________________________________________________________________________________________________
Misc. / FAQ / Tips&Tweaks
Global Tips :
LODs distance can be easily increased/decreased in Project Settings > Quality > LOD Bias.
Change the Fog Density in Window > Rendering > Lighting > Environment.
In the Project tab, search for the keyword _imp to show all the impostors materials if you
need to edit them all at once.
You can duplicate Project or Inspector or any window and lock them to the current selection,
for ease of multiple materials/prefabs modification.
I can’t see any grass !
Make sure you have an EnvironmentManager present in scene, as it set the grass render distance.
_________________________________________________________________________________________________
Thank you ♥