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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!