因为需要使用unity3d自带的风力,需要speedtree或者unity3d里面自己做树

这个比较麻烦,当然商城里也有一堆类似的插件,或者类似Custom Tree Importer都比较麻烦

不过我找了一个方便双面顶点动画材质对于小地方可以解急

Shader "Custom/Grass/GrassBending" {
Properties {_Color ("Main Color", Color) = (1,1,1,1)_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5_ShakeDisplacement ("Displacement", Range (0, 1.0)) = 1.0_ShakeTime ("Shake Time", Range (0, 1.0)) = 1.0_ShakeWindspeed ("Shake Windspeed", Range (0, 1.0)) = 1.0_ShakeBending ("Shake Bending", Range (0, 1.0)) = 1.0
}
SubShader {Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}LOD 200Cull OffCGPROGRAM
#pragma target 3.0
#pragma surface surf Lambert alphatest:_Cutoff vertex:vert addshadow
sampler2D _MainTex;
fixed4 _Color;
float _ShakeDisplacement;
float _ShakeTime;
float _ShakeWindspeed;
float _ShakeBending;
float dist;
float _GrassAlpha;
struct Input {float2 uv_MainTex;float3 worldPos;
};
void FastSinCos (float4 val, out float4 s, out float4 c) {val = val * 6.408849 - 3.1415927;float4 r5 = val * val;float4 r6 = r5 * r5;float4 r7 = r6 * r5;float4 r8 = r6 * r5;float4 r1 = r5 * val;float4 r2 = r1 * r5;float4 r3 = r2 * r5;float4 sin7 = {1, -0.16161616, 0.0083333, -0.00019841} ;float4 cos8  = {-0.5, 0.041666666, -0.0013888889, 0.000024801587} ;s =  val + r1 * sin7.y + r2 * sin7.z + r3 * sin7.w;c = 1 + r5 * cos8.x + r6 * cos8.y + r7 * cos8.z + r8 * cos8.w;
}
void vert (inout appdata_full v) {float factor = (1 - _ShakeDisplacement -  v.color.r) * 0.5;const float _WindSpeed  = (_ShakeWindspeed  +  v.color.g );  const float _WaveScale = _ShakeDisplacement;const float4 _waveXSize = float4(0.048, 0.06, 0.24, 0.096);const float4 _waveZSize = float4 (0.024, .08, 0.08, 0.2);const float4 waveSpeed = float4 (1.2, 2, 1.6, 4.8);float4 _waveXmove = float4(0.024, 0.04, -0.12, 0.096);float4 _waveZmove = float4 (0.006, .02, -0.02, 0.1);float4 waves;waves = v.vertex.x * _waveXSize;waves += v.vertex.z * _waveZSize;waves += _Time.x * (1 - _ShakeTime * 2 - v.color.b ) * waveSpeed *_WindSpeed;float4 s, c;waves = frac (waves);FastSinCos (waves, s,c);float waveAmount = v.texcoord.y * (v.color.a + _ShakeBending);s *= waveAmount;s *= normalize (waveSpeed);s = s * s;float fade = dot (s, 1.3);s = s * s;float3 waveMove = float3 (0,0,0);waveMove.x = dot (s, _waveXmove);waveMove.z = dot (s, _waveZmove);v.vertex.xz -= mul ((float3x3)_World2Object, waveMove).xz;}
void surf (Input IN, inout SurfaceOutput o) {fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color * _Color;o.Albedo = c.rgb;float dist = distance(_WorldSpaceCameraPos, IN.worldPos);dist = clamp(dist / 300, 0.4, 1.0);o.Alpha = c.a - dist - _GrassAlpha;
}
ENDCG
}
Fallback "Transparent/Cutout/VertexLit"
}

虽然只能一张贴图,但是也能控制alpha

这个也很好扩展

下面四个属性是控制风力大小的

原始shader网址

https://forum.unity.com/threads/custom-vegetation-mesh-wind-sway.305105/

unity3d 植物风力晃动材质 非地形风力相关推荐

  1. unity3d双面材质_[转]unity3d中创建双面材质

    在其它三维软件中设置好的双面材质导入到unity3d中就失去了效果,不过我们可以通过自定义材质来在unity3d中实现双面材质的效果.步骤如下: 1.在资源库中新建一新shader:代码如下: Sha ...

  2. ue4风格化材质_ue4商城资源Stylized Terrain Pack of 50 Materials50种材质风格化地形包

    Unreal Engine虚幻游戏引擎素材资源 Unreal Engine Marketplace –Stylized Terrain Pack of 50 Materials风格化地形包,50种材质 ...

  3. 离网型风力发电机与并网型风力发电机之间的区别

    离网型风力发电机与并网型风力发电机之间的区别: 离网型风力发电机主要是指:不用接连国家用电,就可以发电的,他主要是完全靠风力发电或者是靠太阳能光伏板发电的,是完全靠的大自然的风力或者是太阳光设发电的, ...

  4. matlab xfoil计算风力,低风速长叶片风力机翼型气动分析及优化研究

    太原科技大学 机械工程学院 硕士 2018 TN83 低风速长叶片风力机翼型气动分析及优化研究 Aerodynamic Analysis and Optimization of Airfoil of ...

  5. Unity3D代码动态修改材质球的颜色

    代码动态修改材质球的颜色: gameObject.GetComponent<Renderer>().material.color=Color.red;//当材质球的Shader为标准时,可 ...

  6. 基于matlab的风力发电,基于matlab的风力发电机组的建模与仿真

    基于matlab的风力发电机组的建模与仿真 实验一 :风力发电机组的建模与仿真 姓名: 学号: 一.实验目标: 1.能够对风力发电机组的系统结构有深入的了解. 2.能熟练的利用MATLAB软件进行模块 ...

  7. 【UE4 006】材质 自适应 地形海拔高度

    先看效果图: 可以看到山顶是岩石,山腰和下面都是绿色草地 一.需要用到的资源: 草地:                 岩石: 二.蓝图节点 选中系统材质属性节点 设置为自定义材质 这一步设置之后,材 ...

  8. 【Unity3D】物体、材质的设置、物体位移与旋转

    Unity3D和Flash一样,甚至可以说是和C#一样,拖完组件,再写一系列的脚本,完成编程,甚至可以说,就是带编程脚本的3DSMAX.那么如何完成最基本的物体.材质的设置.物体位移与旋转呢?下面用一 ...

  9. 关于Unity3d模型导入的材质问题

    我遇到的问题是,使用网上下好的模型在3dmax中打开,都是正常的有材质的.但是导入到unity3d里面之后,会发现模型都是灰色的,没有材质或者贴图.把模型重新用3dmax导出,调整导出的设置,也没起作 ...

最新文章

  1. 0709 C语言常见误区----------函数指针问题
  2. 最简单的方式实现一棵二叉树
  3. linux mysql 5.6.24_Mysql实例Linux安装MySQL5.6.24使用文字说明
  4. java excel表格数据导入
  5. HDU 1727 Hastiness(模拟)
  6. 安卓下拉框获取序号_中文编程:安卓的右上角菜单
  7. 【nodejs原理源码赏析(4)】深度剖析cluster模块源码与node.js多线程(上)
  8. 也许你需要在 Antergos 与 Arch Linux 中查看印度语和梵文?
  9. 安全工具系列 -- 信息收集(二)
  10. Office 检测到一个与此文件相关的问题为帮助保护您的计算机,无法打开此文件。
  11. 金蝶应收应付模块流程_金蝶财务软件里的应收应付模块核算哪些会生
  12. android博客园蓝牙指令,【安卓相关】蓝牙开发、扫描、通知、发送指令
  13. Java--制作乱字游戏
  14. Mybatis 报错Mapper method ‘xxx‘ has an unsupported return type,解决办法
  15. 为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu
  16. Windows 环境配置Github 的SSH key
  17. MOFs/氧化硅;MOFs/石墨烯;MOFs/生物相容性水凝胶合成方法
  18. CSS实现强制换行的解决方法
  19. c语言中%p和%x的意思
  20. mysql got signal 11_从库crash一直自动重启(mysqld got signal 11)问题解决

热门文章

  1. 实验五 数组的运算(第8周)
  2. 计算机 多块硬盘 配置,一台电脑怎么连接两个硬盘,怎么设置?
  3. jaff decyptor system新型勒索病毒
  4. 建筑行业迎来巨变,资质整合之后,企业难以生存?
  5. css选择器优先级排序
  6. VR制作中必须踩的坑365之010(oculus2、UE4、UE5、VR记录一年的踩坑之旅)学习魔法VR的坑001
  7. 定制 Jenkins 镜像说明
  8. REGENCY HAMPERS案例分享:使用 Aspose.PSD 渲染用户定义的图像
  9. Java读取Json文件内容
  10. pptp的 服务器位置,pptp类型服务器地址大全