执着(75988405) 15:51:36
大家好,请教一个问题:
我用多面体(6个面)构造了一个长方体,用线框模式显示时,怎样做到中间三角面的线不显示出来。
[广州] 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