探讨0sg线框模式

执着(75988405)  15:51:36

大家好,请教一个问题:

我用多面体(6个面)构造了一个长方体,用线框模式显示时,怎样做到中间三角面的线不显示出来。

探讨0sg线框模式_第1张图片探讨0sg线框模式_第2张图片

 

[广州] 15:52:12

直接画线,不要画三角形即可

执着(75988405)  15:55:40

我是做一个切换真实模型与线框模型显示的功能。

@[广州]微景 我没有画三角形,是osg内部给划分了三角形了

[广州] 15:56:07

那么你自己算顶点,画线,不要用人家的

执着(75988405)  15:57:07

你的意思是在线框模式下自已再画一次线?

[广州] 15:57:50

对,线框模式本来画的就是三角形,你希望不是画三角形,自然只能是自己重新画一次线

执着(75988405)  16:02:17

谢谢。

 

那切换显示模式时,重新画一次肯定会影响显示效率了,我想做成像AutoCAD一样,直接切换显示样式,如:

 

 北京osg张工(有CAD框架)## 16:03:31

每个实体都对应两个节点,一个二维、一个三维

切换时自动隐藏其中一个

只有这样才能瞬间完成切换

一心(抠脚的大胡子怪蜀黍)## 16:05:09

那个圆柱不是用消除相邻三角形共边的方式重绘线框哦

执着(75988405)  16:06:22

@一心(抠脚的大胡子怪蜀黍)

请教你的方案?

一心(抠脚的大胡子怪蜀黍)## 16:06:50

味精大大的方案是正确的。

我只是说你发的截图的,可能用的不是这个方案

一心(抠脚的大胡子怪蜀黍)## 16:08:24

更像是使用简单模型的方程函数参数来绘制的相框

线框

执着(75988405)  16:16:57

谢谢大家的帮助

##  17:28:40

CAD也是维护的两套数据

CAD效率高做了很多优化了 不是表面上看起来那么简单

[广州] 17:30:45

这么一点东西能影响什么效率。你甚至可以两套东西都写在同一个vertex buffer跟index buffer,就两个不同的指针位置。反正一点线框压根占不了什么显存

##  17:31:05

类似max和max这种软件  都是同时维护拓扑数据和显示数据的

可以分开并不需要一个VBO

拓扑数据 正常都不是三角面

 北京osg张工(有CAD框架)## 17:32:29

@[广州]微景 场景里可能有上万个对象,需要在切换时一瞬间完成

如果动态再去创建节点需要不少的时间

[广州] 17:33:10

当然不需要动态创建啊,直接就创建了放显存,就这点顶点数据占不了什么显存

##  17:33:16

绘制效率可以通过编辑状态来优化

路过##  17:35:52

又不是切换时创建,甚至不用切换时加载。

##  17:36:55

同时建立就行了 没必要卸载

CAD里的redraw 才重新更新数据

他用的是绘制缓冲池  显示对象全部放在同一个状态的pool里

##  17:37:57

界面缩放 仅仅是堆pool对象的静态更新

并不生成新的显示对象

所以redraw会卡一下

 北京osg张工(有CAD框架)## 17:39:33

我对OpenGL不够了解,如果在OSG层面上,不就只能建立两套Node吗?

##  17:39:45

不是

这只是第一步

一个对象对应多个node 只是第一步

##  17:41:03

我刚才说的是优化的问题  合并显示对象 控制渲染精度  才能提升效率

 北京osg张工(有CAD框架)## 17:41:39

嗯,类似于同类节点共用吗?

##  17:41:45

区别对待当前编辑对象  让其他对象完全静态渲染

公用节点也是初级策略

数量过大 公用节点是会更慢的

 北京osg张工(有CAD框架)## 17:42:47

嗯,我们用的确实比较肤浅,当时发现初次加载时创建每个对象对应的节点很慢

看来还是需要好好补课

现在还只会玩场景树

[广州] 17:45:27

对于不修改顶层,不熟悉底层的而言,写两套node,切换的时候隐藏另外一套即可。就算一万个node也占不了多少资源,顶多切换的时候稍稍有一点点卡顿罢了

 北京osg张工(有CAD框架)## 17:46:40

嗯,其实创建Node时间消耗多,显示不是最大的瓶颈了

##  17:46:41

是的  这事最简单的方案

难度低 容易理解

路过##  17:47:09

不用创建

 北京osg张工(有CAD框架)## 17:47:40

不创建节点,怎么显示?

路过##  17:47:47

你模型建好了,自己写个工具创建对应的线框模型,匹配存下来。

 北京osg张工(有CAD框架)## 17:48:06

我们做CAD,模型都是参数化的

路过##  17:48:11

预加载的时候,二者一起加载。就是一个切换耗时

大神们不是说在编辑态也能处理吗

##  17:50:18

是的 你可以在编辑的时候再建立编辑模型

默认就显示普通的

大量数据处理 最好先分解操作

不要一个for

 

你可能感兴趣的:(OSG)