转自:http://qiankanglai.me/misc/2014/11/15/fur-shader/

花时间看了下毛发效果,苦于囊中羞涩没能买QuickFur、furFX等插件,最后找到了Fur Shader学习了一下。

这个代码一开始貌似是Unity 3.x版本的,我稍微改了几个地方,不然在Android上是黑的:

  • 第一遍绘制的时候Blend Off不知道为何,在Nexus 5上起不了作用,我就单独重写了第一遍Pass、保证底图能画上去;
  • Alphatest Greater [_Cutoff]据说性能比alpha blend还糟,而且效果不明显就被我直接注释了;
  • 把第二个文件用CGINCLUDE ENDCG合并进来;
  • 把VertexProgram改成了vert/frag形式。

这段代码为了利用光源,还单独写了一个Script将两个平行光的方向和颜色传进来~偷懒起见也被我干掉了。

简单解释一下原理:这个说穿了,就是画多个Pass,然后每个Pass中将顶点沿着法向方向挪动出来一部分,同时控制顶点的alpha:

  • 移动的越往外的顶点alpha越小
  • 法向量与视线越接近垂直的顶点alpha越小

最后在vert里根据normal计算下顶点的Diffuse Light,传到frag之后采样贴图乘上去就行了。

这里把相邻Pass挪动顶点的距离放大,就很清晰的看到一层层结构:

顺便提一句就是,我也见到有人是从噪声纹理贴图中取alpha,配合前面的“移动的越往外的顶点alpha越小”规则,调出一个Fur。

此外,我看了下asset shop里那俩插件的描述:

The package comes with 3 detail levels, with 10, 20 and 40 steps. More steps gives you more detailed fur, but is more expensive to render.

Pack contains multi pass FUR shaders with many extra features like physics based fur movement, fur gravity, custom coloring etc. Shaders are compiled.

感觉是同一个思路,不过控制每个Pass中顶点移动方式更加多样罢了……具体在移动设备上性能还需要再研究研究,不过随便搞20 Pass这种事情还是不幻想了...

转载于:https://www.cnblogs.com/wonderKK/p/4862214.html

(转)Fur Shader相关推荐

  1. Unity Fur Shader 皮毛着色器

    Github 仓库地址: github.com/Sorumi/UnityFurShader 博文原文: sorumi.xyz/posts/unity-fur-shader/ 基础皮毛 0.1 Basi ...

  2. [转载] 翻译 西川善司著针对3D游戏爱好者的”METAL GEAR SOLID 4”图形讲座(下)

    http://www.cnblogs.com/arai/articles/1701596.html 西川善司著针对3D游戏爱好者的"METAL GEAR SOLID 4"图形讲座 ...

  3. [索尼克WA]的GI技术

    [索尼克WA]的GI技术(1)----对静态对象(Object)的GI     静止的对象GI,采用了事前离线计算,把计算结果绘制(烘培)到纹理(Texture)的方法.这种使用事前计算的GI信息烘培 ...

  4. Unity 开源示例合集

    Unity Shaders Book <Unity Shader入门精要>源代码 https://github.com/candycat1992/Unity_Shaders_Book Ra ...

  5. 【GPU精粹与Shader编程】(一) 全系列核心知识点总览

    系列文章前言 <GPU Gems>1~3 .<GPU Pro>1~7 以及<GEM Zen>组成的GPU精粹系列书籍,是游戏开发.计算机图形学和渲染领域的业界大牛们 ...

  6. 【GPU精粹与Shader编程】(一) 开篇 全系列11本书核心知识点总览

    本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请注明出处   文章链接: https://zhuanlan.zhihu.com/p/34917895 系列文章前言 <GPU Gems>1 ...

  7. 绘制多边形_XDGE_RayMarchine 1- 利用Frag Shader绘制图形

    转载于小道的博客园 XDGE_RayMarchine 1- 利用Frag Shader绘制图形​www.cnblogs.com # Render/RayMarchine/Base 1- 利用Frag绘 ...

  8. 早上突然看明白 shader和材质球的关系

    计算机的世界不外乎 指令+数据 shader即Gpu指令,材质即数据 转载于:https://www.cnblogs.com/jiahuafu/p/7348663.html

  9. unity中使用自定义shader进行光照贴图烘培无法出现透明度的坑爹问题

    最近开发中在对场景进行光照贴图烘焙时发现一个坑爹问题,在使用自定义shader的时候,shader命名中必须包含Transparent路径,否则烘焙的时候不对alpha通道进行计算,烘焙出来都是狗皮膏 ...

最新文章

  1. Android 布局文件Graphical Layout不显示预览+不能实现拖置功能
  2. 【加密解密】单表加密(Javascript实现)
  3. 深度学习人体姿态估计:2014-2020全面调研
  4. Mysql数据库Sql语句执行效率-Explain
  5. Spark Structured SQL:row_number Non-time-based windows are not supported on streaming DataFrames
  6. 【转】将QT开发的界面程序封装成DLL,在VC中成功调用
  7. NodeJS:图片验证码登录
  8. 鹏业安装算量软件功能按钮汇总(一)
  9. [转载]Android开发网上的一些重要知识点
  10. web程序设计(9)——编写阅读器(JQuery基础)
  11. python去除图片水印api_python opencv去图片水印
  12. 一个字符等于多少磅?
  13. Python男票管理系统
  14. Vue2 面试题总结1(笔记自用)
  15. 酒店价格、集合、文件名称
  16. Win10 正式版系统启动盘制作教程
  17. 工业工程跨考计算机难吗,工业工程硕士跨考 难度大不大?
  18. 计算机vfp二级sql,计算机二级vfp-SQL命令集合.doc
  19. 前端生成PDF 文件教程+在线demo案例
  20. 如果我来设计“有道词典”单词本同步

热门文章

  1. 2019第十二届“认证杯”数学建模(第二阶段)
  2. [BZOJ4756] [Usaco2017 Jan]Promotion Counting(线段树合并)
  3. [异常解决] How make ubuntu use Google Search
  4. JavaWeb实现文件上传下载功能实例解析
  5. 多个PHP版本环境搭建(nginx,php)
  6. Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端
  7. Html5 WebSocket 技术介绍(转载)
  8. 关于A*寻路算法的认识
  9. 把windows一个目录mount到Ubuntu下,非root用户没有写权限
  10. OkHttp 源码解析---拦截器