在油管上看到unityJapan办的官方演讲会中,讲解了如何用shaderGraph制作一个能量护盾。我就跟着模仿地做了一下,效果如图。
官方油管地址:https://www.youtube.com/watch?v=7ToExWKVZW0&t=2407s

主要有3个工作:
1)检测物体之间的接触边缘
2)画出透明物体的边缘
3)扭曲透过物体的像。

STEP 1)
打开渲染管线设定中的DepthTextture,获取场景深度
建立一个Unlit shader,master节点设定改为transparent渲染队列,双面渲染。

建立一个sceenDepth节点,采样改为eye
再建立一个screenPosition节点,模式改为raw来获取不透明物体的深度信息。
把screenPosition节点里的w分量分出来,用sceenDepth节点输出的值去减,最后输出到master节点上的color看一下。发现同球体接触的边缘变黑。
节点图:

效果:
原理如下图:

球体表面的深度同不透明物体深度一致的话,相减得零,自然输出黑色。视线网上移动,差值增加,直到大于等于1,以上就都是白色了。
接着,用一个值去减之前输出的值,让接近接触边缘的值大,远离边缘的值小,再输出到master节点的alpha里,就能形成边缘有颜色的,远离边缘的地方透明的效果。
节点图为:
利用一个Vector1的变量(即edgeOffset)通过控制被减数的大小来控制边缘描绘的宽度。因为相减后有小于0的情况同时为了让边缘过度更平滑,用smoothstep来控制输出的值。
结果:

这里要注意的是因为是用ztest的深度值来做差分,这个只能检测出透明和不透明的边界。
其他的应用的话,如制作岸边发白的部分。
之后绘出非接触的边缘轮廓线。
首先考虑直接用菲涅尔效应节点。但因为要用双面绘制,导致无法使用这个节点。
考虑菲涅尔效应的原理。
将物体表面的法线向量点乘视线方向的单位向量的值,如上图所示。越靠近摄像机中间的点内积越接近1或-1,而物体边缘的内积为0。如果将内积看作alpha值的话。我们是希望边缘为1,中间为0。但由于背面的值为负。所以先取绝对值,再用1减这个值。
节点图
用1减后的值,用一个vector1的变量和power节点来控制菲尼尔效应的强度。将这个输出值用add节点同之前的边缘发光的值相加。效果如下:
STEP 1)END

用unity制作能量护盾(1)相关推荐

  1. 用unity制作能量护盾(3)

    为护盾力场添加一个扭曲光线的效果. 这个实现的原理是先将当前不透明物体的渲染结果作为一张贴图保存起来.再把它贴到要实现透明效果的物体上,通过扭曲改变这张贴图,实现扭曲光线的效果. 首先要获得不透明物体 ...

  2. 用unity制作能量护盾(2)

    接下来就是给护盾加上花纹的效果. 花纹图案的实现就比较简单,就是在原本基础上加上一层黑白的纹理图案,如下图: 之后通过时间节点和一个速度的变量控制贴图的位移实现贴图动画.(上面这条路径) 通过再叠加一 ...

  3. Unity制作2D动作平台游戏视频教程

    Metroidvania工具包:打造统一的2D行动平台 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确 ...

  4. Unity制作游戏中的场景

    Unity制作游戏中的场景 1.2.3  场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...

  5. arkit unity_凯蒂猫! 如何使用ARKit和Unity制作增强现实应用程序。

    arkit unity by Francesco Pallotta 由Francesco Pallotta 凯蒂猫! 如何使用ARKit和Unity制作增强现实应用程序. (Hello, Kitty! ...

  6. unity 制作书本 翻页效果

    unity 制作书籍翻页效果 unity C# 翻书效果 2D 真实翻页 不使用插件 自制 实现思路: 将书本分为两边,一边一个翻页实现: 下图为书本的右面,以OA为分界线,△OAB是下一面的如上图的 ...

  7. Unity 制作简单的任务动画

    Unity 制作简单的任务动画 1.添加人物模型到unity 我使用的是unity store中的免费模型: https://assetstore.unity.com/packages/3d/char ...

  8. Unity 制作萌系live2d桌宠:屏幕自适应+交互

    目录 准备工作 使用unity显示live2d人物 全屏+背景透明+点击穿透+置顶 屏幕自适应 交互 本文在之前的博客如何使用unity制作萌萌的live2d桌宠的基础上对项目继续改进,解决了屏幕自适 ...

  9. Unity制作格斗游戏核心思路总结

    http://anchorart9.com/2016/05/22/unity%E5%88%B6%E4%BD%9C%E6%A0%BC%E6%96%97%E6%B8%B8%E6%88%8F%E6%A0%B ...

最新文章

  1. Windows Phone版微信,在朋友圈发送仅文本内容
  2. android Hander Service 广播的综合使用案例
  3. matlab 数据降维和重构_核主成分分析(Kernel PCA, KPCA)的MATLAB 实现
  4. files函数提取文件名HTML,Javascript – 如何从文件input控件提取文件名
  5. mac下的svn服务器建立
  6. Vision Transformer中的自监督学习
  7. 【转载】小米2进入recovery的方法
  8. poj 3256 Cow Picnic 优化深搜
  9. 进销存软件定制开发怎么做?
  10. MLDN 五子棋。笔记
  11. html 漂亮的星空登录模板
  12. OJ刷题二——设计输出实数格式
  13. 异步编程举例之闹钟程序
  14. srs10流程图_srs技术文档说明
  15. iPhone 14连夜跌至4800元,现在应该直接入手14,还是等15?
  16. Linux关闭防火墙、设置开放端口
  17. Debian10更换软件源
  18. 论文翻译神器:SCITranslate 10.0,一键翻译整篇文献
  19. libjpeg解码 jpeg文件
  20. 电弧光保护系统 就选汉光HKHB-608智能电弧光保护系统

热门文章

  1. 3- 基于代理 Dao 实现 CRUD 操作
  2. python 单链表查找元素_如何在python中一次找到链表的中间元素?
  3. 算法 查找子节点_掌握着十大编程算法助你走上高手之路
  4. python编写win 本地reader程序_使用Python、win32api和Acrobat Reader 9打印PDF
  5. 在linux系统中 用户的主目录可以不在,在Linux系统中,root用户的家目录是 答案:/root...
  6. visual studio能统计代码规模吗_描述统计之用——熟悉数据
  7. 在电脑上怎么打印文件_电脑上怎么mov格式怎么转换成mp4
  8. java的string访问某个元素_架构师必懂的——RBAC基于角色的访问权限设计
  9. 充满生机!UI设计灵感|绿植相关APP界面设计
  10. 个人简介页面如何设计?优秀案例给你灵感