unity shaderGraph实例-扫描效果

文章目录

效果展示

整体结构

各区域内容

区域1

用场景深度减去顶点的View空间的视野深度(Z值),这里Z值需要乘-1是因为从相机看到的物体顶点的视野深度为-1,而场景深度是正值,所以需要乘-1让两者都为正。

这一步的意义是,用场景中的深度减去sphere的视野深度,当sphere与场景的物体接近时,这个差将会非常接近0,如下图

View空间类似于屏幕坐标,在屏幕正中心永远是(0,0,0),向左为X正,向上为Y正,向摄像机镜头内部为Z正。

区域2

可以用来扩展或缩小范围

区域3

将值钳制在0-1,并四舍五入,这样可以得到非常锐利的扫描边缘,如果不四舍五入则会得到渐变的效果

区域4

用1减去之前的值,目的是反转黑白色,如下

区域5

给白线上一个颜色

区域6

输出颜色,用黑色区域当透明通道

GraphSetttings

改成透明的

注意事项

需要确保相机开启了深度纹理

使用方法

我们可以通过缩放shpere来调节扫描

csharp 复制代码
 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScannerController : MonoBehaviour
{
    public float speed = 10;
    public float delay_destory_time=5;
    private void Start()
    {
        Destory_Object();
    }
    void Update()
    {
        Vector3 vectorMesh = transform.localScale;
        float growing = this.speed * Time.deltaTime;
        transform.localScale = new Vector3(vectorMesh.x+growing,vectorMesh.y+growing,vectorMesh.z+growing);
    }
    private void Destory_Object()
    {
        Destroy(gameObject,delay_destory_time);
    }
}
相关推荐
玖玥拾1 天前
C# 语言进阶(十四)Unity UI界面开发 + 网络消息联动
服务器·开发语言·网络·ui·unity·c#·游戏引擎
野区捕龙为宠1 天前
Unity 持久化数据
unity·游戏引擎·lucene
郝学胜-神的一滴1 天前
[简化版 GAMES 101] 计算机图形学 17:纹理技术从基础原理到多场景实战应用
c++·unity·游戏引擎·图形渲染·three.js·opengl·unreal
_ZHOURUI_H_2 天前
MyFramework: 同样是 Unity 游戏开发框架,和 HTFramework 的设计取向有什么不同?(下)
unity·游戏引擎·游戏开发·游戏ui·手游开发
小贺儿开发3 天前
Unity 知识库智能问答系统(RAG)
人工智能·unity·ai·大模型·智能问答·知识库·互动
丁小未3 天前
基于MVVM框架的XUUI 扩展的UI管理系统教程
unity·mvvm·ui框架·xuui·ui管理器
丁小未4 天前
基于MVVM框架的XUUI HelloWorld 新手教程
unity·性能优化·c#·游戏引擎
丁小未4 天前
基于MVVM框架的XUUI MoreComplex案例
unity·c#
EQ-雪梨蛋花汤4 天前
【Unity笔记】VR 一体机画面锯齿、模型边缘闪烁、接缝抖动排查:MSAA、Mipmap、Render Scale、Z-Fighting 全流程记录
笔记·unity·vr
YigAin4 天前
Unity Spine 资源出现白边的解决办法
unity·游戏引擎·spine