在OpenInventor里画一个多边形时,遇到了奇怪的填充问题,多边形的第一个顶点竟然与其中的某一个顶点相连,在wireframe模式下显示一切正常,在填充模式中就显示不正常。

初始代码是这样的:

        float[,] vertices2 = new float[8, 3] {{ -5.0f, 0.0f, 0.0f},  {  5.0f, 0.0f, 0.0f},  {  4.0f, 2.0f, 0.0f},    {  3.0f, 2.0f, 0.0f},{  2.0f, 4.0f, 0.0f},  { -2.0f, 4.0f, 0.0f},  { -3.0f, 2.0f, 0.0f},    { -4.0f, 2.0f, 0.0f}};SoSeparator MakeFaceSet(){SoSeparator face = new SoSeparator();SoVertexProperty myVertexProperty = new SoVertexProperty();myVertexProperty.orderedRGBA.SetValue(new SbColor(0.4f, 0.4f, 0.4f).GetPackedValue());// Define coordinates for verticesmyVertexProperty.vertex.SetValues(0, 8, vertices2);SoFaceSet myFaceSet = new SoFaceSet();myFaceSet.numVertices.SetValue(8);myFaceSet.vertexProperty.SetValue(myVertexProperty);face.AddChild(myFaceSet);return face;}
 

经过一阵子检查,发现是应该用ShpaeHints类,默认的FaceSet是把多边形当作凸多边形来处理的,在渲染时可能是提高效率,所以上面这个图形绘制就出现问题了,在myFaceSet结点前加上SoShapeHints结点,问题解决。

         SoShapeHints hints = new SoShapeHints();
         hints.faceType.Value = SoShapeHints.FaceTypes.UNKNOWN_FACE_TYPE;face.AddChild(hints);

正确的显示效果见下图:


OpenInventor开发笔记:解决FaceSet的填充问题相关推荐

  1. 开发笔记:解决安卓GestureOverlayView手势和ListView点击事件、文本框获取焦点冲突的问题

    要解决这个问题,首先要弄清楚几个问题: 1.onThouch事件的触发原理是怎样的? 2.GestureOverlayView的绘制手势的事件是在什么时候触发的? 3.父子嵌套的控件触发事件的顺序是怎 ...

  2. Android开发笔记: 解决View宽高为0的问题

    在做android项目时,大多数会遇到view的width,height为0的情况,不管你是用getWidth()还是getMeasuredWidth都无效,下面就是解决方法,将下面代码拷贝到任何一个 ...

  3. Spring Boot笔记-解决前后端分离在开发时的跨域问题

    这里可以用Nginx解决跨越问题,也可以用下面这种方式在开发时解决: @Configuration public class CorsConfig implements WebMvcConfigure ...

  4. Android开发笔记(一百二十四)自定义相册

    画廊Gallery Gallery是一个早期的画廊控件,左右滑动手势可展示内嵌的图片列表,类似于一个平面的万花筒.虽然Android现在将Gallery标记为Deprecation(表示已废弃),建议 ...

  5. Android开发笔记(七十五)内存泄漏的处理

    内存泄漏的原因 一直以来以为只有C/C++才存在内存泄漏的问题,没想到拥有内存回收机制的Java也可能出现内存泄漏.C/C++存在指针的概念,程序中需要使用指针变量时,就从内存中开辟一块区域,并把该区 ...

  6. 【Python】开发笔记

    [Python]开发笔记 1. 开发工具篇 1)前言 2)VScode VScode搭建Python环境 简明教程 3)Pycharm 4)Visual Studio 5)Jupyter Lab/Ju ...

  7. 【Visual C++】游戏开发笔记四十七 浅墨DirectX教程十五 翱翔于三维世界 摄像机的实现

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本系列文章由zhm ...

  8. ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置

    目录 ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置 1.Encrypted Read 1.1 Standard Encrypted Read Flow 1.2 Simp ...

  9. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 作者:毛星云(浅墨)    邮箱: happylifemxy@163.com 本篇文章里,我们首先对Direct3D之中固定功能流水线中的 ...

最新文章

  1. Unicode的前世今生
  2. C#中用NPOI的excel导出
  3. Java中的线程和同步
  4. fatal error C1189: #error : Building MFC application with /MD[d]
  5. 技术实践 | 网易云信视频转码提速之分片转码
  6. 使用rmi实现ehcache集群模式
  7. autocopy2u_借助AutoCopy简化Firefox中的文本复制和粘贴
  8. Android之jni编译出现multiple definition of ‘××××ב
  9. openshift k8s_带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8
  10. opencv yuv保存本地_OpenCV-dlib-python3实现人脸戴墨镜和含Y的抖音效果
  11. Python视频处理案例六则:旋转视频、调整音量/播放速度、淡入淡出、插入转场素材...
  12. 如何提高阅读源代码的效率
  13. Android 直接生成实体类工具GsonFormat,一键生成实体类,对象;GsonFormat插件安装步骤gsonformatplus生成对象报错解决;jason,json
  14. Qt之SQLite数据库可视化工具
  15. 生物信息数据格式:fastq格式
  16. 绝对干货-国内值得关注的官方API集合,很全很强大(必须收藏)
  17. android堆内存解析,heapsnap HeapSnap 是一款针对 Android 进程堆内存进行追踪、定位,以便查出泄露位置的工具 @codeKK c开源站...
  18. 漫画 | 程序员大战公务员!到底谁猛?
  19. 计算机基础知识(基础入门小白专属)五
  20. 学习Python,怎能不懂点PEP呢? 1

热门文章

  1. Python 基础:分分钟入门
  2. Javascript中的valueOf与toString
  3. 用DzzOffice管理阿里云OSS
  4. smarty中如何统计数组的个数?
  5. Transaction And Lock--事务中使用return会回滚事务吗?
  6. 【转】InstantClient安装使用
  7. python网络安全宣传周_Python
  8. java弱引用怎么手动释放,Java 如何有效地避免OOM:善于利用软引用和弱引用
  9. 4.5 搭建深层神经网络块-深度学习-Stanford吴恩达教授
  10. 构建根文件系统之busybox(一)浅析