Files
MinFt/Client/Assets/Shader/CrystalRayM_3Samples.hlsl
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

51 lines
2.4 KiB
HLSL

void MyCustomRaymarching_float( float3 ViewDirection,
float3 Position,
float Refraction,
float3 NormalVector,
float StepLength,
UnityTexture2D CustomVolumeNoise,
UnitySamplerState CustomVolumeNoiseSampler,
float VolumeNoiseScale,
float NoiseStrength,
float NoisePow,
float3 CameraWP,
float RefractionSurfaceNoise,
UnityTexture2D VolumeNoise,
float VolumeNoise2Exp,
float VolumeNoise2Scale,
float VolumeNoise2Multiply,
float4x4 ObjectToWorldPosition,
float LinearMaskScale,
float LinearMaskNegate,
float LinearMaskOffset,
float3 LinearMaskVector,
float3 LinearMaskVectorWorldOffset,
out float2 outputpom
)
{
float step = 0.0;
float final = 0.0;
float final2 = 0.0;
float3 sampledPosition;
for (int i = 0; i < 3; i++)
{
sampledPosition = Position + refract(normalize(ViewDirection), NormalVector, saturate(1-(1.0/Refraction * RefractionSurfaceNoise))) * step;
float2 sampledCustomNoise =SAMPLE_TEXTURE2D(CustomVolumeNoise, CustomVolumeNoiseSampler, sampledPosition.xy * VolumeNoiseScale) * SAMPLE_TEXTURE2D(CustomVolumeNoise, CustomVolumeNoiseSampler, sampledPosition.zy * VolumeNoiseScale + float2(144.23, 5444.12));
sampledCustomNoise *= SAMPLE_TEXTURE2D(CustomVolumeNoise, CustomVolumeNoiseSampler, sampledPosition.xz * VolumeNoiseScale + float2(3127.11, 1522.12));
//float sampledDarkenCustomNoise = SAMPLE_TEXTURE2D(VolumeNoise, CustomVolumeNoiseSampler, sampledPosition.xy * VolumeNoise2Scale) * SAMPLE_TEXTURE2D(VolumeNoise, CustomVolumeNoiseSampler, sampledPosition.zy * VolumeNoise2Scale + float2(144.23, 5444.12));
//sampledDarkenCustomNoise *= SAMPLE_TEXTURE2D(VolumeNoise, CustomVolumeNoiseSampler, sampledPosition.xz * VolumeNoise2Scale + float2(3127.11, 1522.12));
float linearMask = saturate(saturate((dot(sampledPosition - LinearMaskVectorWorldOffset, LinearMaskVector) + LinearMaskOffset) * LinearMaskScale) + LinearMaskNegate);
final += pow(saturate((pow(sampledCustomNoise.x, NoisePow) * NoiseStrength * 2.75)), 1.25) * saturate(1.0-(i/20.0)) * linearMask;
final2 += pow(sampledCustomNoise.y, VolumeNoise2Exp * 0.75) * VolumeNoise2Multiply * 3.0 * linearMask;
step += (StepLength/3.0);
}
outputpom.x = final;
outputpom.y = final2;
}