unityzgy/Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/MultiScaleVODownsample2.compute
ayuan9957 8cfebcb657 feat: 丘陵地形优化与注册 + 地形材质调整
- 丘陵.unity: 地形材质优化(增大tileSize), 添加枯草2种, 替换树木为杨树+阔叶树, 平滑平坦区域过渡, Splatmap用Perlin噪声平滑混合减少突兀边界, 调整减少黄色层次
- 丘陵注册到程序: AB打包, SAMap.txt, SQLite数据库(替换平原), 本地化XML, 8192x8192地图图片(含绿色起点区域)
- 海岛/沙漠/山地: PermissibleArea MeshRenderer统一禁用, 移除临时砾石道路层
- 山地/海岛/沙漠: 地形材质参数调整
2026-07-29 15:50:34 +08:00

77 lines
2.0 KiB
Plaintext

//
// This is a modified version of the SSAO renderer from Microsoft's MiniEngine
// library. The copyright notice from the original version is included below.
//
// The original source code of MiniEngine is available on GitHub.
// https://github.com/Microsoft/DirectX-Graphics-Samples
//
//
// Copyright (c) Microsoft. All rights reserved.
// This code is licensed under the MIT License (MIT).
// THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
// IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
// PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
//
// Developed by Minigraph
//
// Author: James Stanard
//
#pragma warning(disable : 3568)
#pragma exclude_renderers gles gles3 d3d11_9x
#pragma kernel MultiScaleVODownsample2 main=MultiScaleVODownsample2
#pragma kernel MultiScaleVODownsample2_MSAA main=MultiScaleVODownsample2_MSAA MSAA
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/StdLib.hlsl"
#ifdef MSAA
Texture2D<float2> DS4x;
RWTexture2D<float2> DS8x;
RWTexture2DArray<float2> DS8xAtlas;
RWTexture2D<float2> DS16x;
RWTexture2DArray<float2> DS16xAtlas;
#else
Texture2D<float> DS4x;
RWTexture2D<float> DS8x;
RWTexture2DArray<float> DS8xAtlas;
RWTexture2D<float> DS16x;
RWTexture2DArray<float> DS16xAtlas;
#endif
#ifdef DISABLE_COMPUTE_SHADERS
TRIVIAL_COMPUTE_KERNEL(main)
#else
[numthreads(8, 8, 1)]
void main(uint3 Gid : SV_GroupID, uint GI : SV_GroupIndex, uint3 GTid : SV_GroupThreadID, uint3 DTid : SV_DispatchThreadID)
{
#ifdef MSAA
float2 m1 = DS4x[DTid.xy << 1];
#else
float m1 = DS4x[DTid.xy << 1];
#endif
uint2 st = DTid.xy;
uint2 stAtlas = st >> 2;
uint stSlice = ((st.x & 3) | (st.y << 2)) & 15;
DS8x[st] = m1;
DS8xAtlas[uint3(stAtlas, stSlice)] = m1;
if ((GI & 011) == 0)
{
uint2 st = DTid.xy >> 1;
uint2 stAtlas = st >> 2;
uint stSlice = ((st.x & 3) | (st.y << 2)) & 15;
DS16x[st] = m1;
DS16xAtlas[uint3(stAtlas, stSlice)] = m1;
}
}
#endif // DISABLE_COMPUTE_SHADERS