Added terrain and basic terrain textures
This commit is contained in:
217
Assets/Filamented/FilamentMaterialInputs.cginc
Normal file
217
Assets/Filamented/FilamentMaterialInputs.cginc
Normal file
@ -0,0 +1,217 @@
|
||||
#ifndef FILAMENT_MATERIAL_INPUTS
|
||||
#define FILAMENT_MATERIAL_INPUTS
|
||||
|
||||
// Decide if we can skip lighting when dot(n, l) <= 0.0
|
||||
#if defined(SHADING_MODEL_CLOTH)
|
||||
#if !defined(MATERIAL_HAS_SUBSURFACE_COLOR)
|
||||
#define MATERIAL_CAN_SKIP_LIGHTING
|
||||
#endif
|
||||
#elif defined(SHADING_MODEL_SUBSURFACE)
|
||||
// Cannot skip lighting
|
||||
#else
|
||||
#define MATERIAL_CAN_SKIP_LIGHTING
|
||||
#endif
|
||||
|
||||
struct MaterialInputs {
|
||||
half4 baseColor;
|
||||
#if !defined(SHADING_MODEL_UNLIT)
|
||||
#if !defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
half roughness;
|
||||
#endif
|
||||
#if !defined(SHADING_MODEL_CLOTH) && !defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
half metallic;
|
||||
half reflectance;
|
||||
#endif
|
||||
half ambientOcclusion;
|
||||
#endif
|
||||
half4 emissive;
|
||||
|
||||
#if !defined(SHADING_MODEL_CLOTH) && !defined(SHADING_MODEL_SUBSURFACE) && !defined(SHADING_MODEL_UNLIT)
|
||||
half3 sheenColor;
|
||||
half sheenRoughness;
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_GLINT)
|
||||
float2 uv;
|
||||
float glintAlpha;
|
||||
float glintDensity;
|
||||
#endif
|
||||
|
||||
half clearCoat;
|
||||
half clearCoatRoughness;
|
||||
|
||||
half anisotropy;
|
||||
half3 anisotropyDirection;
|
||||
|
||||
#if defined(SHADING_MODEL_SUBSURFACE) || defined(HAS_REFRACTION)
|
||||
half thickness;
|
||||
#endif
|
||||
#if defined(SHADING_MODEL_SUBSURFACE)
|
||||
half subsurfacePower;
|
||||
half3 subsurfaceColor;
|
||||
#endif
|
||||
|
||||
#if defined(SHADING_MODEL_CLOTH)
|
||||
half3 sheenColor;
|
||||
#if defined(MATERIAL_HAS_SUBSURFACE_COLOR)
|
||||
half3 subsurfaceColor;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
half3 specularColor;
|
||||
half glossiness;
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_NORMAL)
|
||||
half3 normal;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_BENT_NORMAL)
|
||||
half3 bentNormal;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_CLEAR_COAT) && defined(MATERIAL_HAS_CLEAR_COAT_NORMAL)
|
||||
half3 clearCoatNormal;
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_POST_LIGHTING_COLOR)
|
||||
half4 postLightingColor;
|
||||
#endif
|
||||
|
||||
#if !defined(SHADING_MODEL_CLOTH) && !defined(SHADING_MODEL_SUBSURFACE) && !defined(SHADING_MODEL_UNLIT)
|
||||
#if defined(HAS_REFRACTION)
|
||||
#if defined(MATERIAL_HAS_ABSORPTION)
|
||||
half3 absorption;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_TRANSMISSION)
|
||||
half transmission;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_IOR)
|
||||
half ior;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_MICRO_THICKNESS) && (REFRACTION_TYPE == REFRACTION_TYPE_THIN)
|
||||
half microThickness;
|
||||
#endif
|
||||
#elif !defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
#if defined(MATERIAL_HAS_IOR)
|
||||
half ior;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
void initMaterial(out MaterialInputs material) {
|
||||
material = (MaterialInputs)0;
|
||||
|
||||
material.baseColor = 1.0;
|
||||
#if !defined(SHADING_MODEL_UNLIT)
|
||||
#if !defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
material.roughness = 1.0;
|
||||
#endif
|
||||
#if !defined(SHADING_MODEL_CLOTH) && !defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
material.metallic = 0.0;
|
||||
material.reflectance = 0.5;
|
||||
#endif
|
||||
material.ambientOcclusion = 1.0;
|
||||
#endif
|
||||
material.emissive = half4(half3(0.0.xxx), 1.0);
|
||||
|
||||
#if !defined(SHADING_MODEL_CLOTH) && !defined(SHADING_MODEL_SUBSURFACE) && !defined(SHADING_MODEL_UNLIT)
|
||||
#if defined(MATERIAL_HAS_SHEEN_COLOR)
|
||||
material.sheenColor = half3(0.0.xxx);
|
||||
material.sheenRoughness = 0.0;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_CLEAR_COAT)
|
||||
material.clearCoat = 1.0;
|
||||
material.clearCoatRoughness = 0.0;
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_ANISOTROPY)
|
||||
material.anisotropy = 0.0;
|
||||
material.anisotropyDirection = half3(1.0, 0.0, 0.0);
|
||||
#endif
|
||||
|
||||
#if defined(SHADING_MODEL_SUBSURFACE) || defined(HAS_REFRACTION)
|
||||
material.thickness = 0.5;
|
||||
#endif
|
||||
#if defined(SHADING_MODEL_SUBSURFACE)
|
||||
material.subsurfacePower = 12.234;
|
||||
material.subsurfaceColor = half3(1.0.xxx);
|
||||
#endif
|
||||
|
||||
#if defined(SHADING_MODEL_CLOTH)
|
||||
material.sheenColor = sqrt(material.baseColor.rgb);
|
||||
#if defined(MATERIAL_HAS_SUBSURFACE_COLOR)
|
||||
material.subsurfaceColor = half3(0.0.xxx);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
material.glossiness = 0.0;
|
||||
material.specularColor = half3(0.0.xxx);
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_NORMAL)
|
||||
material.normal = half3(0.0, 0.0, 1.0);
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_BENT_NORMAL)
|
||||
material.bentNormal = half3(0.0, 0.0, 1.0);
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_CLEAR_COAT) && defined(MATERIAL_HAS_CLEAR_COAT_NORMAL)
|
||||
material.clearCoatNormal = half3(0.0, 0.0, 1.0);
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_POST_LIGHTING_COLOR)
|
||||
material.postLightingColor = half4(0.0.xxx);
|
||||
#endif
|
||||
|
||||
#if defined(MATERIAL_HAS_GLINT)
|
||||
material.uv = float2(0.0, 0.0);
|
||||
material.glintAlpha = 0.05;
|
||||
material.glintDensity = 10000.0;
|
||||
#endif
|
||||
|
||||
#if !defined(SHADING_MODEL_CLOTH) && !defined(SHADING_MODEL_SUBSURFACE) && !defined(SHADING_MODEL_UNLIT)
|
||||
#if defined(HAS_REFRACTION)
|
||||
#if defined(MATERIAL_HAS_ABSORPTION)
|
||||
material.absorption = half3(0.0.xxx);
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_TRANSMISSION)
|
||||
material.transmission = 1.0;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_IOR)
|
||||
material.ior = 1.5;
|
||||
#endif
|
||||
#if defined(MATERIAL_HAS_MICRO_THICKNESS) && (REFRACTION_TYPE == REFRACTION_TYPE_THIN)
|
||||
material.microThickness = 0.0;
|
||||
#endif
|
||||
#elif !defined(SHADING_MODEL_SPECULAR_GLOSSINESS)
|
||||
#if defined(MATERIAL_HAS_IOR)
|
||||
material.ior = 1.5;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(MATERIAL_HAS_CUSTOM_SURFACE_SHADING)
|
||||
/** @public-api */
|
||||
struct LightData {
|
||||
half4 colorIntensity;
|
||||
half3 l;
|
||||
half NdotL;
|
||||
half3 worldPosition;
|
||||
half attenuation;
|
||||
half visibility;
|
||||
};
|
||||
|
||||
/** @public-api */
|
||||
struct ShadingData {
|
||||
half3 diffuseColor;
|
||||
half perceptualRoughness;
|
||||
half3 f0;
|
||||
half roughness;
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif // FILAMENT_MATERIAL_INPUTS
|
||||
Reference in New Issue
Block a user