Unity 3D mesh制作地形工具
来源:互联网 发布:淘宝静一茗假货 编辑:程序博客网 时间:2024/03/28 17:03
如果要把unity3D的工程,转到flash平台,是有一些限制的,其中,unity3d的地形不能使用,这就是一个很大的问题。
所以,使用mesh来替代unity自带的地形,就变成首选的解决方案。
问题接着而来,mesh怎么像unity自带的地形一样刷地表贴图,怎么种树,草。这就需要一套完整的系统与工具来支持。
于是有了这个新的工具。
1 先说刷地表贴图的实现,这个其实就很简单,首先是mesh材质的shader的支持,shader要支持4层纹理混合,外加一个mix texture,也就是5层贴图的shader。这个很简单了,就是4层贴图根据mix texture的R G B A通道来混合最后的颜色。
half4 splat_control = tex2D (_Control, IN.uv_Control);
half3 col;
col = splat_control.r * tex2D (_Splat0, IN.uv_Splat0).rgb;
col += splat_control.g * tex2D (_Splat1, IN.uv_Splat1).rgb;
col += splat_control.b * tex2D (_Splat2, IN.uv_Splat2).rgb;
col += splat_control.a * tex2D (_Splat3, IN.uv_Splat3).rgb;
有了shader之后,刷mesh的贴图,无非就是修改mix texture的各个通道的颜色而已。用从屏幕中心点发出射线做碰撞,碰撞得到的mesh的点的uv坐标,来确定被修改的mix texture的部分。然后根据笔刷的值来修改mix texture相应通道的值。
上图中,scene窗口中,原点就是笔刷,笔刷可以预览选中的贴图,方便美术绘制。
2 种树,这个就更简单了,把树的模型放到mesh表面。
3 种草,草要会动才有真实感,把草的动画都写在顶点shader里面,只要给shader传入一个时间参数就可以。然后场景中可能存在大量的草,最后考虑到效率的优化,在运行场景的时候,脚本会判断是否是同样mesh,同样材质的草,如果是一样的,会把一定范围内所有的相同的草合并成一个大的mesh,这样做,场景中可以存在许多的草,且效率很高。
- Unity 3D mesh制作地形工具
- Unity 3D 地形元素
- Unity 3D 创建Mesh(一)
- Unity 3D 创建Mesh(二)
- Unity 3D 创建Mesh(一)
- Unity 3D 创建Mesh(二)
- 用Unity 3D生成真实地形
- Unity 3d地形系统自定义画笔
- 用Unity 3D生成真实地形
- Unity Ferr2D 地形工具
- 用Unity 3D生成真实地形(一)
- 3D-MAX真实三维地形制作过程
- 3D地形渲染
- Unity制作简单3D图表
- Unity制作简单3D图表
- unity制作一个3d旋转菜单
- Unity 3D飞机大战制作心得
- unity 制作3D等温图
- firefox手动设置火狐浏览器的默认主页
- struts2标签遍历时,显示内容忽略<html>代码问题
- 局部缓存
- 贪吃蛇制作
- 判断参数(String、Array、Object)是否为undefined或者值为空
- Unity 3D mesh制作地形工具
- uCOS变量初始化情况
- GDI+ 与 GDI (平铺与拉伸)PNG背景图贴图片的方法
- 网页编码,转载自:http://www.admin10000.com/document/1177.html
- GET和POST方式传递参数
- php中转义html标签
- GDI+ DrawImage函数拉伸图片时自动渐变问题
- 使用PLSQL Developer从oracle数据库 导入导出数据
- Web app 开发常用框架使用记录