赞
踩
-
-
-
- positionNDC
-
- =
-
- positionSS
-
- *
-
- _ScreenSize
-
- .
-
- zw
-
- ;
-
-
- positionSS
-
- =
-
- positionNDC
-
- *
-
- _ScreenSize
-
- .
-
- xy
-
- ;
-
-
-
-
- // ddx & ddy outline by device depth
-
-
- md
-
- =
-
- posInput
-
- .
-
- deviceDepth
-
- *
-
-
-
- 1000
-
- ;
-
-
- finalColor
-
- =
-
-
-
- abs
-
- (
-
- ddx
-
- (
-
- md
-
- )
-
- )
-
-
-
- +
-
-
-
- abs
-
- (
-
- ddy
-
- (
-
- md
-
- )
-
- )
-
- ;
-
-
- finalColor
-
- =
-
-
-
- saturate
-
- (
-
- finalColor
-
- )
-
- ;
-
-
-
-
- // ddx & ddy outline by linear depth
-
-
- md
-
- =
-
- posInput
-
- .
-
- linearDepth
-
- *
-
-
-
- 10
-
- ;
-
-
- finalColor
-
- =
-
-
-
- abs
-
- (
-
- ddx
-
- (
-
- md
-
- )
-
- )
-
-
-
- +
-
-
-
- abs
-
- (
-
- ddy
-
- (
-
- md
-
- )
-
- )
-
- ;
-
-
- finalColor
-
- =
-
-
-
- saturate
-
- (
-
- finalColor
-
- )
-
- ;
-
-
-
-
- float
-
-
-
- Contrast
-
- (
-
- float
-
- contrastInput
-
- ,
-
-
-
- float
-
- valueInput
-
- )
-
- {
-
-
-
-
- return
-
-
-
- (
-
- (
-
- valueInput
-
- -
-
-
-
- 0.5f
-
- )
-
-
-
- *
-
- contrastInput
-
- )
-
-
-
- +
-
-
-
- 0.5f
-
- ;
-
-
-
-
- }
-
-
-
-
- // offset outline by world normal
-
-
- linearDepth
-
- =
-
- posInput
-
- .
-
- linearDepth
-
- ;
-
-
- outlineWidth
-
- =
-
- _OutlineWidth
-
- ;
-
-
- outlineWidth
-
- =
-
-
-
- saturate
-
- (
-
- 1
-
-
-
- -
-
- linearDepth
-
- /
-
-
-
- 1000
-
- )
-
-
-
- *
-
- outlineWidth
-
- ;
-
-
-
-
- NormalData
-
- normalData0
-
- ;
-
-
-
-
- NormalData
-
- normalData1
-
- ;
-
-
-
-
- NormalData
-
- normalData2
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- ,
-
- normalData0
-
- )
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- +
-
-
-
- float2
-
- (
-
- outlineWidth
-
- ,
-
- 0
-
- )
-
- ,
-
- normalData1
-
- )
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- +
-
-
-
- float2
-
- (
-
- 0
-
- ,
-
- outlineWidth
-
- )
-
- ,
-
- normalData2
-
- )
-
- ;
-
-
- distanceXNormal
-
- =
-
-
-
- distance
-
- (
-
- normalData0
-
- .
-
- normalWS
-
- ,
-
- normalData1
-
- .
-
- normalWS
-
- )
-
- ;
-
-
- distanceYNormal
-
- =
-
-
-
- distance
-
- (
-
- normalData0
-
- .
-
- normalWS
-
- ,
-
- normalData2
-
- .
-
- normalWS
-
- )
-
- ;
-
-
- distanceSumNormal
-
- =
-
- distanceXNormal
-
- +
-
- distanceYNormal
-
- ;
-
-
- distanceSumNormal
-
- =
-
- distanceSumNormal
-
- /
-
- _DivideFactor
-
- ;
-
-
-
-
- distanceSum
-
- =
-
- distanceSumNormal
-
- ;
-
-
- distanceSum
-
- =
-
- distanceSum
-
- /
-
- _DivideFactor
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- Contrast
-
- (
-
- _ContrastInput
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- saturate
-
- (
-
- distanceSum
-
- )
-
- ;
-
-
- finalColor
-
- =
-
-
-
- lerp
-
- (
-
- color
-
- ,
-
- _OutlineColor
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //finalColor = color + distanceSum * _OutlineColor;
-
-
-
-
- linearDepth
-
- =
-
- posInput
-
- .
-
- linearDepth
-
- ;
-
-
- outlineWidth
-
- =
-
- _OutlineWidth
-
- ;
-
-
- outlineWidth
-
- =
-
-
-
- saturate
-
- (
-
- 1
-
-
-
- -
-
- linearDepth
-
- /
-
-
-
- 1000
-
- )
-
-
-
- *
-
- outlineWidth
-
- ;
-
-
-
-
- NormalData
-
- normalData0
-
- ;
-
-
-
-
- NormalData
-
- normalData1
-
- ;
-
-
-
-
- NormalData
-
- normalData2
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- ,
-
- normalData0
-
- )
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- +
-
-
-
- float2
-
- (
-
- outlineWidth
-
- ,
-
- 0
-
- )
-
- ,
-
- normalData1
-
- )
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- +
-
-
-
- float2
-
- (
-
- 0
-
- ,
-
- outlineWidth
-
- )
-
- ,
-
- normalData2
-
- )
-
- ;
-
-
-
-
- distanceXNormal
-
- =
-
-
-
- distance
-
- (
-
- normalData0
-
- .
-
- normalWS
-
- ,
-
- normalData1
-
- .
-
- normalWS
-
- )
-
- ;
-
-
- distanceYNormal
-
- =
-
-
-
- distance
-
- (
-
- normalData0
-
- .
-
- normalWS
-
- ,
-
- normalData2
-
- .
-
- normalWS
-
- )
-
- ;
-
-
-
-
- distanceSumNormal
-
- =
-
- distanceXNormal
-
- +
-
- distanceYNormal
-
- ;
-
-
-
-
- distanceSum
-
- =
-
- distanceSumNormal
-
- ;
-
-
- distanceSum
-
- =
-
- distanceSum
-
- /
-
- _DivideFactor
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- Contrast
-
- (
-
- _ContrastInput
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- saturate
-
- (
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //color = float4(0,0,0,1);
-
-
- finalColor
-
- =
-
-
-
- lerp
-
- (
-
- color
-
- ,
-
- _OutlineColor
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- finalColor
-
- =
-
- color
-
- +
-
- distanceSum
-
- *
-
- _OutlineColor
-
- ;
-
-
-
-
- // offset outline by device depth
-
-
- linearDepth
-
- =
-
- posInput
-
- .
-
- linearDepth
-
- ;
-
-
- outlineWidth
-
- =
-
- _OutlineWidth
-
- ;
-
-
- outlineWidth
-
- =
-
-
-
- saturate
-
- (
-
- 1
-
-
-
- -
-
- linearDepth
-
- /
-
-
-
- 10000
-
- )
-
-
-
- *
-
- outlineWidth
-
- ;
-
-
-
-
- float2
-
- positionCS0
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- ;
-
-
-
-
- float
-
- depth0
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS0
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput0
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS0
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- float2
-
- positionCS1
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- +
-
-
-
- float2
-
- (
-
- outlineWidth
-
- ,
-
- 0
-
- )
-
- ;
-
-
-
-
- float
-
- depth1
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS1
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput1
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS1
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth1
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- float2
-
- positionCS2
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- +
-
-
-
- float2
-
- (
-
- 0
-
- ,
-
- outlineWidth
-
- )
-
- ;
-
-
-
-
- float
-
- depth2
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS2
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput2
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS2
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth2
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
- distanceXDepth
-
- =
-
-
-
- distance
-
- (
-
- posInput0
-
- .
-
- linearDepth
-
- ,
-
- posInput1
-
- .
-
- linearDepth
-
- )
-
- ;
-
-
- distanceYDepth
-
- =
-
-
-
- distance
-
- (
-
- posInput0
-
- .
-
- linearDepth
-
- ,
-
- posInput2
-
- .
-
- linearDepth
-
- )
-
- ;
-
-
- distanceSumDepth
-
- =
-
- distanceXDepth
-
- +
-
- distanceYDepth
-
- ;
-
-
-
-
- distanceSum
-
- =
-
- distanceSumDepth
-
- ;
-
-
- distanceSum
-
- =
-
- distanceSum
-
- /
-
- _DivideFactor
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- Contrast
-
- (
-
- _ContrastInput
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- saturate
-
- (
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //color = float4(0,0,0,1);
-
-
- finalColor
-
- =
-
-
-
- lerp
-
- (
-
- color
-
- ,
-
- _OutlineColor
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //finalColor = color + distanceSum * _OutlineColor;
-
-
-
-
- float2
-
- positionCS0
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- ;
-
-
-
-
- float
-
- depth0
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS0
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput0
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS0
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- float2
-
- positionCS1
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- +
-
-
-
- float2
-
- (
-
- outlineWidth
-
- ,
-
- 0
-
- )
-
- ;
-
-
-
-
- float
-
- depth1
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS1
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput1
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS1
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth1
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- float2
-
- positionCS2
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- +
-
-
-
- float2
-
- (
-
- 0
-
- ,
-
- outlineWidth
-
- )
-
- ;
-
-
-
-
- float
-
- depth2
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS2
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput2
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS2
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth2
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- distanceXDepth
-
- =
-
-
-
- distance
-
- (
-
- posInput0
-
- .
-
- linearDepth
-
- ,
-
- posInput1
-
- .
-
- linearDepth
-
- )
-
- ;
-
-
- distanceYDepth
-
- =
-
-
-
- distance
-
- (
-
- posInput0
-
- .
-
- linearDepth
-
- ,
-
- posInput2
-
- .
-
- linearDepth
-
- )
-
- ;
-
-
-
-
- distanceSumNormal
-
- =
-
- distanceXNormal
-
- +
-
- distanceYNormal
-
- ;
-
-
-
-
- distanceSum
-
- =
-
- distanceSumDepth
-
- ;
-
-
- distanceSum
-
- =
-
- distanceSum
-
- /
-
- _DivideFactor
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- Contrast
-
- (
-
- _ContrastInput
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- saturate
-
- (
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //color = float4(0,0,0,1);
-
-
- finalColor
-
- =
-
-
-
- lerp
-
- (
-
- color
-
- ,
-
- _OutlineColor
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- finalColor
-
- =
-
- color
-
- +
-
- distanceSum
-
- *
-
- _OutlineColor
-
- ;
-
-
-
-
- // offset outline by world normal
-
-
- linearDepth
-
- =
-
- posInput
-
- .
-
- linearDepth
-
- ;
-
-
- outlineWidth
-
- =
-
- _OutlineWidth
-
- ;
-
-
- outlineWidth
-
- =
-
-
-
- saturate
-
- (
-
- 1
-
-
-
- -
-
- linearDepth
-
- /
-
-
-
- 1000
-
- )
-
-
-
- *
-
- outlineWidth
-
- ;
-
-
-
-
- NormalData
-
- normalData0
-
- ;
-
-
-
-
- NormalData
-
- normalData1
-
- ;
-
-
-
-
- NormalData
-
- normalData2
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- ,
-
- normalData0
-
- )
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- +
-
-
-
- float2
-
- (
-
- outlineWidth
-
- ,
-
- 0
-
- )
-
- ,
-
- normalData1
-
- )
-
- ;
-
-
-
-
- DecodeFromNormalBuffer
-
- (
-
- posInput
-
- .
-
- positionSS
-
- +
-
-
-
- float2
-
- (
-
- 0
-
- ,
-
- outlineWidth
-
- )
-
- ,
-
- normalData2
-
- )
-
- ;
-
-
- distanceXNormal
-
- =
-
-
-
- distance
-
- (
-
- normalData0
-
- .
-
- normalWS
-
- ,
-
- normalData1
-
- .
-
- normalWS
-
- )
-
- ;
-
-
- distanceYNormal
-
- =
-
-
-
- distance
-
- (
-
- normalData0
-
- .
-
- normalWS
-
- ,
-
- normalData2
-
- .
-
- normalWS
-
- )
-
- ;
-
-
- distanceSumNormal
-
- =
-
- distanceXNormal
-
- +
-
- distanceYNormal
-
- ;
-
-
-
-
- // offset outline by device depth
-
-
- linearDepth
-
- =
-
- posInput
-
- .
-
- linearDepth
-
- ;
-
-
- outlineWidth
-
- =
-
- _OutlineWidth
-
- ;
-
-
- outlineWidth
-
- =
-
-
-
- saturate
-
- (
-
- 1
-
-
-
- -
-
- linearDepth
-
- /
-
-
-
- 10000
-
- )
-
-
-
- *
-
- outlineWidth
-
- ;
-
-
-
-
- float2
-
- positionCS0
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- ;
-
-
-
-
- float
-
- depth0
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS0
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput0
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS0
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- float2
-
- positionCS1
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- +
-
-
-
- float2
-
- (
-
- outlineWidth
-
- ,
-
- 0
-
- )
-
- ;
-
-
-
-
- float
-
- depth1
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS1
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput1
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS1
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth1
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
-
-
- float2
-
- positionCS2
-
- =
-
- varyings
-
- .
-
- positionCS
-
- .
-
- xy
-
- +
-
-
-
- float2
-
- (
-
- 0
-
- ,
-
- outlineWidth
-
- )
-
- ;
-
-
-
-
- float
-
- depth2
-
- =
-
-
-
- LoadCameraDepth
-
- (
-
- positionCS2
-
- )
-
- ;
-
-
-
-
- PositionInputs
-
- posInput2
-
- =
-
-
-
- GetPositionInput
-
- (
-
- positionCS2
-
- ,
-
- _ScreenSize
-
- .
-
- zw
-
- ,
-
- depth2
-
- ,
-
- UNITY_MATRIX_I_VP
-
- ,
-
- UNITY_MATRIX_V
-
- )
-
- ;
-
-
- distanceXDepth
-
- =
-
-
-
- distance
-
- (
-
- posInput0
-
- .
-
- linearDepth
-
- ,
-
- posInput1
-
- .
-
- linearDepth
-
- )
-
- ;
-
-
- distanceYDepth
-
- =
-
-
-
- distance
-
- (
-
- posInput0
-
- .
-
- linearDepth
-
- ,
-
- posInput2
-
- .
-
- linearDepth
-
- )
-
- ;
-
-
- distanceSumDepth
-
- =
-
- distanceXDepth
-
- +
-
- distanceYDepth
-
- ;
-
-
-
-
- distanceSum
-
- =
-
- _NormalFactor
-
- *
-
- distanceSumNormal
-
- +
-
-
-
- (
-
- 1
-
- -
-
- _NormalFactor
-
- )
-
-
-
- *
-
- distanceSumDepth
-
- ;
-
-
-
-
- //distanceSum = max(distanceSumDepth, distanceSumNormal);
-
-
- distanceSum
-
- =
-
- distanceSum
-
- /
-
- _DivideFactor
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- Contrast
-
- (
-
- _ContrastInput
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
- distanceSum
-
- =
-
-
-
- saturate
-
- (
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //color = float4(0,0,0,1);
-
-
- finalColor
-
- =
-
-
-
- lerp
-
- (
-
- color
-
- ,
-
- _OutlineColor
-
- ,
-
- distanceSum
-
- )
-
- ;
-
-
-
-
- //finalColor = color + distanceSum * _OutlineColor;
-
-
-
-
-
- distanceSum
-
- =
-
- _NormalFactor
-
- *
-
- distanceSumNormal
-
- +
-
-
-
- (
-
- 1
-
- -
-
- _NormalFactor
-
- )
-
-
-
- *
-
- distanceSumDepth
-
- ;
-
-
-
-
- //distanceSum = max(distanceSumDepth, distanceSumNormal);
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。