unity shaderGraph实例-可交互草地

文章目录

    • 效果展示
    • 整体结构
    • 各区域内容
      • 区域1
      • 区域2
      • 区域3
      • 区域4
      • 区域5
      • 区域6
      • 区域7
      • GraphSetttings

效果展示

请添加图片描述

整体结构

请添加图片描述

各区域内容

区域1

在这里插入图片描述
计算交互用的cube和草各个顶点的距离
此处可以理解为,从cube的中心到草的顶点的距离,其距离是一个从0到整数的过程,如下图
在这里插入图片描述

区域2

在这里插入图片描述
将距离除以某个值,这个值是交互范围,相当于将白条范围向右移动
在这里插入图片描述
然后使用saturate节点将值限制到0-1之内

区域3

在这里插入图片描述
首先上一步已经将值限制到0-1,这一步取反,直观解释就是将黑白条对调,越靠近cube的部分越白,也就代表了对草的顶点shader的影响越强。
在这里插入图片描述

区域4

在这里插入图片描述
为了移动草的顶点向量,我们需要知道移动方法,用草的顶点位置减去cube的世界坐标即可获得两者的方向

然后和区域3中计算出的影响力度相乘,即可得到越靠近,顶点偏移越大的效果。

区域5

在这里插入图片描述
这一步看似复杂,其实做的事很简单,将区域4中获得顶点偏移量加到草原本的顶点坐标上去,由于草不需要再y轴移动,所以只加x轴和z轴即可。

区域6

在这里插入图片描述

在草移动时,我们不需要草的根部移动,所以我们使用了顶点颜色,即在制作草的模型的时候,在根部的顶点处添加了顶点颜色(注意不是贴图的颜色)为黑色,可交互部分为白色,这样可以通过一个Lerp,在不需要移动的区域和需要移动的区域里平滑过渡,当然这里也可以用顶点坐标计算。

区域7

最后我们需要给一张贴图
在这里插入图片描述

GraphSetttings

在这里插入图片描述

最后需要编写一个脚本,告诉材质cube在哪

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

public class TrackPosition : MonoBehaviour
{
    public Material grassMat;
    private void Update()
    {
        grassMat.SetVector("_TrackerPosition_v3", transform.position);
    }
}

然后挂到cube上,将材质球拖到属性里即可

工程下载gitee地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/157702.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

半平面求交 - 洛谷 - UVA1475 Jungle Outpost

欢迎关注更多精彩 关注我,学习常用算法与数据结构,一题多解,降维打击。 往期相关背景点击前往 题目大意 题目链接 https://www.luogu.com.cn/problem/UVA1475 在丛林里有n个瞭望塔,瞭望塔的保护范围就是一个凸n多边形&#xf…

vscode设置latex

vscode配置latex 1.安装vscode,并添加环境变量路径 2.安装latex,bin文件夹添加到环境变量路径 3.vscode安装插件 4.vscode->文件->首选项->显示配置内容->setting.json文件,查看其位置目录,通过我的电脑找到此文件(不要使用v…

Git 分支管理

目录 列出分支 删除分支 分支合并 合并冲突 几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。 Git 分支实际上是指向更改快照的指针。 有…

GB28181 编码规则说明

背景: GB/T28181-2011 《安全防范视频监控联网系统信息传输、交换、控制技术要求》中规定了联网系统应对前端设备、监控中心设备、用户终端ID进行统一编码,该编码具有全局唯一性。这就是国标编码。编码分20位和18位,其中18位编码已经淘汰。下文中&#…

【案例】可视化大屏

人狠话不多,直接上效果图 这里放的地图自己去实现吧,如果也想实现3D地球话,等笔者那天有心情写篇文章; 说明:script中methods部分代码是没用,可以直接删掉,根据个人情况去写, 内容:笔者也就对页面布局进行了设计,内容的填充就靠个人了 <template><div :sty…

图数据库Neo4J 中文分词查询及全文检索(建立全文索引)

Neo4j的全文索引是基于Lucene实现的&#xff0c;但是Lucene默认情况下只提供了基于英文的分词器&#xff0c;下篇文章我们在讨论中文分词器&#xff08;IK&#xff09;的引用&#xff0c;本篇默认基于英文分词来做。我们前边文章就举例说明过&#xff0c;比如我要搜索苹果公司&…

低代码是“银弹”,还是“毒弹”?

目录 1.Pro Code 真的更“香”吗&#xff1f; 门槛高 跨界难 代码编写只是第一步 2.Low Code 银弹论合理吗&#xff1f; Pro Code和Low Code的差异&#xff1a; 3.写在最后 “低代码”接力“中台”燃起了熊熊之火&#xff0c;引发了众多业内人士论战。有人认为低代码是毒瘤&…

苍穹外卖--新增员工

请求方式Post,请求参数&#xff1a; 用EmployeeDTO类接收参数 Controller层实现&#xff1a; PostMappingpublic Result save(RequestBody EmployeeDTO employeeDTO){employeeService.save(employeeDTO);return Result.success();}service层实现&#xff1a; Overridepublic …

竞赛选题 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x…

kubernetes学习-概念3

工作负载资源 Kubernetes 提供了几个内置的 API 来声明式管理工作负载及其组件。 最终&#xff0c;你的应用以容器的形式在 Pods 中运行&#xff1b; 但是&#xff0c;直接管理单个 Pod 的工作量将会非常繁琐。例如&#xff0c;如果一个 Pod 失败了&#xff0c;你可能希望运行…

水厂消毒的设施设备有哪些

水厂消毒的设施设备主要包括以下几种&#xff1a; 紫外线消毒器&#xff1a;利用紫外线辐射破坏微生物DNA的复制和细胞分裂功能&#xff0c;达到杀灭微生物的目的。紫外线消毒器具有操作简便、效果明显、净化速度快等优点&#xff0c;广泛应用于家庭、学校、饮用水生产企业等场…

振弦传感器表面钢筋计与振弦采集仪组成岩土工程安全监测

振弦传感器表面钢筋计与振弦采集仪组成岩土工程安全监测 振弦传感器表面钢筋计和振弦采集仪可以组成岩土工程安全监测系统&#xff0c;用于监测结构物或岩土体的振动和应变变化情况。具体可以实现以下功能&#xff1a; 1. 振动监测&#xff1a;振弦传感器可以实时监测结构物或…

【数据结构】树与二叉树(十八):树的存储结构——Father链接结构、儿子链表链接结构

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语 5.2 二叉树5.3 树5.3.1 树的存储结构1. 理论基础2. 典型实例 5.3.2 Father链接结构a. 定义树节点结构b. 创建新节点c. 主函数d. 代码整合 5.3.3 儿子链表链接结构a. 定义树节点结构b. 创建新节点c. 添加…

cocos----刚体

刚体&#xff08;Rigidbody&#xff09; 刚体&#xff08;Rigidbody&#xff09;是运动学&#xff08;Kinematic&#xff09;中的一个概念&#xff0c;指在运动中和受力作用后&#xff0c;形状和大小不变&#xff0c;而且内部各点的相对位置不变的物体。在 Unity3D 中&#xff…

2023 OceanBase 年度发布会:砥砺自研,为“关键业务负载”打造一体化数据库

11 月 16 日&#xff0c;2023 OceanBase 年度发布会在京顺利召开。在本次发布会上&#xff0c;OceanBase 对外正式宣布&#xff1a;将持续践行“一体化”新战略&#xff0c;为关键业务负载打造一体化数据库。同时&#xff0c;会上发布一体化数据库的首个长期支持版本 OceanBase…

html在线生成二维码(附源码)

文章目录 1.设计来源1.1 主界面1.2 美化功能 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134458927 html二维码生成&#xff08;附源码&#xff09;&#xff0c;生成二…

每天一道算法题(四)——移动零(将数组中的零移到最后面)

文章目录 前言1、问题2、示例3、解决方法&#xff08;1&#xff09;方法1&#xff08;2&#xff09;方法2&#xff08;双指针&#xff09; 前言 提示&#xff1a; 1、问题 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的…

如何选择适合企业的ERP管理系统?

如何选择适合企业的ERP管理系统&#xff1f; 企业业务不断发展和扩大&#xff0c;ERP管理系统已成为企业实现信息化管理、提高工作效率、降低成本的重要工具。然而&#xff0c;市场上ERP管理系统种类繁多&#xff0c;如何选择适合自己企业的ERP管理系统成为了企业面临的难题。…

【测试功能篇 01】Jmeter 压测接口最大并发量、吞吐量、TPS

压力测试&#xff0c;我们针对比较关键的接口&#xff0c;可以进行相应的压力测试&#xff0c;主要还是测试看看接口能抗住多少的请求数&#xff0c;TPS稳定在多少&#xff0c;也就是吞吐量多少 安装 Jmeter的安装很简单&#xff0c;官网下载地址 http://jmeter.apache.org/ &…

UE5 - ArchvizExplorer - 数字孪生城市模板 -学习笔记

1、学习资料 https://www.unrealengine.com/marketplace/zh-CN/product/archviz-explorer https://karldetroit.com/archviz-explorer-documentation/ 官网下载的是一个简单版&#xff0c;需要下载扩展&#xff0c;并拷贝到项目录下&#xff0c;才有完整版 https://drive.googl…