unity高度图形成主要的原理是对原始模型mesh先形成boundingBox,并在原始模型的上方添加射线方向向下进行碰撞检测,通过碰撞点与射线的截距获得模型的高度值,最后把高度值转换成像素点写入图片中形成最后的高度图
1.先形成boundingBox并获取相关坐标轴的最大值、最小值
2.计算模型宽度和模型高度并设置射线间的宽度和高度
3.产生射线并设置方向与起始位置
private static Ray ray = new Ray(new Vector3(), new Vector3());//创建一条射线
Vector3 rayDirE = ray.direction;//设置原始的方向
rayDirE.x = 0;
rayDirE.y = -1;
rayDirE.z = 0;
const float heightOffset =1f;
Vector3 originRay = ray.origin;
float rayY = maxY + heightOffset;//增加Y方向的高度
originRay.y = rayY;
ray.direction = new Vector3(rayDirE.x, rayDirE.y, rayDirE.z);
4.通过碰撞检测得到高度值
5.通过得到的高度转化成像素点
6.把像素点写入到png图片上
比如原始图片为
通过以上方法形成高度图:
今天的文章Unity高度图形成分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/32292.html