Post-processing scanning, post-processing stroke, asynchronous collision detection, instantiation rendering
Scanning effect:
1 World coordinates are reconstructed using depth maps, and distance maps are calculated using scene world coordinates and scan start coordinates
2 Service SDF + frac + smoothStep Make scan lines and scan ranges
3 Scanning range * Scanning line to Get the scan line in the range, use DOTWEEN with c# to make scan animation
outline:
1 Depth map + Sobel kernel to draw stroke
2 Use a depth map as a stroke mask to reduce the intensity of distant strokes
3 Control stroke display with scan range
Ground indicator:
1 Array ray detection is used to query the mark position and normal line, and the mark type is distinguished by the normal line
2 The Async method is used to apportionate collisions detected in multiple frames, consuming from 15.07ms per frame to 0.17ms per frame
3 The ground marks are drawn in batches using the GPU Instance method, and the vertex shader redraws the face pieces as Billboard
4 Manually writes the depth in frag shader to solving the problem of shading the mark and the ground
Particle:
1 Particle instances are created when the tag is generated and automatically destroyed after play
Final effect:
Environmental assets: real landscapes - valley forest
(From unity asset store)