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

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

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

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

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

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

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

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

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

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

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


遗留问题:

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

相关文章:

  • vulnhub靶场之【digitalworld.local系列】的torment靶机
  • HarmonyOS:如何将图片转为PixelMap并进行图片缓存策略
  • linux0.11内核源码修仙传第四章——操作系统的框架代码
  • 删除已加入 .gitignore却仍被git追踪的文件
  • 突破极限:高性能ROCK 220A-M 工业级无人机电调深度测评 —— 无人机动力系统的核心守护者
  • 审批流AntV框架蚂蚁数据可视化X6饼图(附注释)
  • Java 8 Stream API 详解
  • MySQL的安装和配置
  • 【Vue3 Element UI - Plus + Tyscript 实现Tags标签输入及回显】
  • 阿里云QwQ-32B模型发布:AI领域的新突破
  • 机器学习数学基础:43.外生变量与内生变量
  • linux固定IP并解决虚拟机无法ping其他电脑问题
  • Java面试第八山!《Spring框架》
  • 中学学习难点管理思维魔方
  • Qt的QTextBrowser`的样式设计
  • Spring Boot API 项目中 HAProxy 与 Nginx 的选择与实践
  • 《V8 引擎狂飙,Node.js 续写 JavaScript 传奇》
  • nodejs关于后端服务开发的探究
  • 豪越智慧消防安全:电气火灾监控系统守护用电安全
  • upload-labs详解(1-12)文件上传分析
  • 网站开发流程百度文库/淘宝代运营
  • 湖北网站建设费用/网络销售就是忽悠人
  • 冠县网站建设/博客优化网站seo怎么写
  • 彻底关闭qq顶部小程序入口/seo手机排名软件
  • 一台云服务器做多个网站/定制网站
  • wordpress建站安全性/自媒体135网站免费下载安装