unity shaderGraph实例-可交互地毯(顶点变形)

2024-01-09 22:29:38

效果展示

请添加图片描述

整体结构

在这里插入图片描述

各区域内容

区域1

在这里插入图片描述
获取球体和地毯顶点之间的距离,然后减去一个范围,获得一个影响的范围

区域2

在这里插入图片描述

由于第一步的raidus的值可能很大,导致差的结果为一个负数,所以此处用smoothstep进行平滑过渡,将结果钳制在0-1之间

区域3

在这里插入图片描述

获取物体的原法线方向,然后和第2步中得到的0-1的范围进行乘法融合,越靠近球体的中心,影响越明显

区域4

在这里插入图片描述
乘以一个隆起的力度

区域5

在这里插入图片描述
将物体顶点的原Y轴坐标和新的Y轴坐标按照距离做差值

区域6

提取地毯顶点的XZ值,并和抬升后的Y值重新组合
在这里插入图片描述

GraphSetttings

在这里插入图片描述
主要是双面渲染

脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RugActive : MonoBehaviour
{
    public Material mat;
    void Update()
    {
         Shader.SetGlobalVector("_position", transform.position);   
        //mat.SetVector("_position", transform.position);   
    }
}

要设置全局变量,需要在shadergraph里,将变量如下设置
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_44568736/article/details/135489696
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。