Files
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

109 lines
3.6 KiB
HLSL

#ifndef VACUUM_SHADERS_T2M_DEFERRED_CGINC
#define VACUUM_SHADERS_T2M_DEFERRED_CGINC
#define TERRAIN_TO_MESH_RP_UNIVERSAL
#if (SHADERPASS == SHADERPASS_DEPTHONLY) || (SHADERPASS == SHADERPASS_DEPTHNORMALS) || (SHADERPASS == SHADERPASS_SHADOWCASTER)
#if defined(TERRAIN_TO_MESH_NEED_NORMAL)
#undef TERRAIN_TO_MESH_NEED_NORMAL
#endif
#if defined(TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION)
#undef TERRAIN_TO_MESH_NEED_METALLIC_SMOOTHNESS_OCCLUSION
#endif
#endif
#include "../cginc/Core.cginc"
#if defined(TERRAIN_TO_MESH_FALLBACK)
TEXTURE2D(_BaseMap); SAMPLER(sampler_BaseMap);
TEXTURE2D(_BumpMap);
#endif
//Curved World//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SHG_TerrainToMeshCurvedWorld_float(float3 inVertex, float3 inNormal, float4 inTangent, out float3 outVertex, out float3 outNormal)
{
float4 vertex = float4(inVertex, 1);
float3 normal = inNormal;
float4 tangent = inTangent;
//Curved World
#if defined(CURVEDWORLD_IS_INSTALLED) && !defined(CURVEDWORLD_DISABLED_ON)
#ifdef CURVEDWORLD_NORMAL_TRANSFORMATION_ON
CURVEDWORLD_TRANSFORM_VERTEX_AND_NORMAL(vertex, normal, tangent)
#else
CURVEDWORLD_TRANSFORM_VERTEX(vertex)
#endif
#endif
outVertex = vertex.xyz;
outNormal = normal.xyz;
}
void SHG_TerrainToMeshCurvedWorld_half(float3 inVertex, float3 inNormal, float4 inTangent, out float3 outVertex, out float3 outNormal)
{
SHG_TerrainToMeshCurvedWorld_float(inVertex, inNormal, inTangent, outVertex, outNormal);
}
//Holes//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SHG_TerrainToMeshCalculateClipValue_float(float4 uv, out float clipValue)
{
clipValue = TerrainToMeshCalculateClipValue(uv.xy);
}
void SHG_TerrainToMeshCalculateClipValue_half(float4 uv, out float clipValue)
{
SHG_TerrainToMeshCalculateClipValue_float(uv, clipValue);
}
//Layers//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void SHG_TerrainToMeshCalculateLayersBlend_float(float4 uv, out float3 albedoValue, out float alphaValue, out float3 normalValue, out float metallicValue, out float smoothnessValue, out float occlusionValue)
{
#if defined(TERRAIN_TO_MESH_FALLBACK)
float4 baseColor = SAMPLE_TEXTURE2D(_BaseMap, sampler_BaseMap, uv.xy);
albedoValue = baseColor.rgb;
alphaValue = baseColor.a;
//Unpack normal
float4 bumpMap = SAMPLE_TEXTURE2D(_BumpMap, sampler_BaseMap, uv.xy);
normalValue.rgb = UnpackNormal(bumpMap);
//
metallicValue = 0;
smoothnessValue = 0;
occlusionValue = 1;
//Commented for Unity 2021.3 (URP)
//#elif defined(SHADERPASS_SHADOWCASTER) || defined(SHADERPASS_DEPTHONLY)
// albedoValue = 0;
// alphaValue = 1;
// normalValue = float3(0, 0, 1);
// metallicValue = 0;
// smoothnessValue = 0;
// occlusionValue = 0;
#else
TerrainToMeshCalculateLayersBlend(uv.xy, albedoValue, alphaValue, normalValue, metallicValue, smoothnessValue, occlusionValue);
#endif
}
void SHG_TerrainToMeshCalculateLayersBlend_half(float4 uv, inout float3 albedoValue, inout float alphaValue, inout float3 normalValue, inout float metallicValue, inout float smoothnessValue, out float occlusionValue)
{
SHG_TerrainToMeshCalculateLayersBlend_float(uv, albedoValue, alphaValue, normalValue, metallicValue, smoothnessValue, occlusionValue);
}
#endif