• 3dContactPointAnnotationTool开发日志(六)


      一种可行的思路就是枚举一个模型的三角面片,然后判断三角形是否与另一个物体相交即可。为了让效果更好我想只渲染模型的线框。
      在网上查了半天好像Unity里都没有自带的方便的渲染线框的方式,我又自己玩了玩发现可以将材质换成unity自带的VR/SpatialMapping/Wireframe。不过看上去模型不是镂空的,只是表面显示了三角面片,要是只有线框就更好了。
    1.png
      又回过头看了看,发现Unity用shader显示物体线框提到的方法还挺好的,就是下载一个UCLA Wireframe Shader资源然后导入到项目中。
    2.png
      将它提供的wireframe材质拖到模型上,效果还挺不错的。
    3.png
      颜色也可以轻松改变,超赞。
    4.png
      想在代码里调用就这么写:

    meshRenderer.material = new Material(Shader.Find("UCLA Game Lab/Wireframe/Single-Sided"));
    

      路径名和下图Shader中的一致就行。
    5.png

      添加了一个toggle,命名为wireframe,实现了模型网格材质与默认材质间的切换。
    6.png
      tag必须先定义后使用。不然会报错。
    7.png
      这个是压根没有这个组件,然后获取该组件会报错。虽然它讲的不是很明确,但实际上就是这样。

    8.png   试着求了求接触点,通过判断一个模型每个三角面片的点是否在另一个模型里,在的话就画一个球。不过这球都画脑袋上去了,不知道是什么bug。 9.png
  • 相关阅读:
    一个不错的谈架构的链接
    监控报警平台设计思路
    从数据库到NoSQL思路整理
    大数据流式计算:关键技术及系统实例
    接口和类
    学习的逻辑
    [kuangbin带你飞]专题五 并查集 J
    [kuangbin带你飞]专题五 并查集 E
    [kuangbin带你飞]专题五 并查集 D
    [kuangbin带你飞]专题五 并查集 C
  • 原文地址:https://www.cnblogs.com/yaoling1997/p/9956106.html
Copyright © 2020-2023  润新知