当前位置: 首页 > article >正文

Unity Shader 学习15:可交互式雪地流程

本质是 利用顶点变换实现的:
通过一个俯视整个场地的正交摄像机,根据绑定在移动物体身上的粒子系统,来获取物体移动过的位置,记录到一张RenderTexture上作为轨迹图,再通过这张图来对雪地做顶点变换。

1. 由于顶点变换需要,用建模软件建一个高精度的地面,导入unity

2. 使用simple noise模拟雪地基本的凹凸起伏

很简单啦,对每个顶点的y坐标根据噪声图的黑白值进行抬起。

3. 创建粒子系统,并将其作为移动物体的子物体绑定

创建一个绑定在角色身上能跟着角色水平移动的粒子,贴图选择白色图案的(因为后面我会设置设置摄像机的背景为黑色),注意它需要旋转至面朝上(这样才能被后续俯视的摄像机拍到内容)。粒子创建后,将其layer设置为particles(用于摄像机设置其可见性)。

4. 创建记录轨迹图的摄像机

创建一个正交相机,俯视场景,让其拍摄范围与雪地范围尽量完全一致,这样才能保证记录下来的轨迹图信息映射到顶点变换时能不出现位移偏差。设置摄像机只渲染particles层,并将背景色设为黑色,这样粒子移动时就能拍摄到黑底白线的轨迹图啦。

5. 将轨迹图计入雪地凹凸的计算


遗留问题:

  1. 顶点变换只针对gpu有效,做碰撞检测的cpu不知道有变换,该如何同步?
  2. 该方法只能简单地检测到一个整体的交互,想要获得更精细的记录该怎么做?
  3. 只能对边界有限的小场景有效,该如何优化?


http://www.kler.cn/a/574175.html

相关文章:

  • Codepen和tailwindcss 进行UI布局展示
  • VBA第十八期 如何获得WPS中已经安装字体的列表
  • 在vue2项目中el-table表格的表头和内容错位问题
  • 责任链模式:让请求在链条中流动
  • 基于GeoTools的GIS专题图自适应边界及高宽等比例生成实践
  • pytorch3d学习(二)——安装与纹理显示demo测试
  • 2025年中职大数据应用与服务竞赛培训方案分享
  • 介绍一个能支持高带宽的EDID编辑软件
  • 23种设计模式之《状态模式(State)》在c#中的应用及理解
  • Spring Boot整合Resilience4j教程
  • 大模型基础-深度解析-什么是语言模型及大模型相关历史回顾
  • Unity帧同步与状态同步混合架构开发指南
  • python之爬虫入门实例
  • 永恒之塔鼠标卡顿移动鼠标卡屏的问题
  • 高考數學。。。
  • 0.QT概述|下载|配置环境
  • dify 工作流 迭代
  • Anolis服务器Arm64架构服务器配置(其他版本服务器解决方式思路一质)
  • C++海康相机DEMO
  • Ubuntu 安装docker docker-compose