OSG 显示3D模型以及对应模型切层的2D效果
2017-10-17 17:52
561 查看
在3D打印中,经常需要将打印仓内进行模型的摆放,在控制软件中模拟并呈现出来。最常用的就是在俯视模型(即2D下)的情况下对模型进行摆放。然后在3D模式下对修改调整位置后的模型进行预览。
首先展示一下效果: 图1为3D下的模型效果 图2为2D下的图形效果
在2D模式下对模型进行旋转平移后,对应的要更新3D模型的显示,其本质还是获取2D模型下的变换矩阵,再设置给3D下的模型。下面来看一下此模型节点的设计:
// ModelNode
// |
// | ————m_ModelSwitch 控制模型节点的显示
// | |
// | | ———— m_ModelTransform 存储模型矩阵
// | |
// | |———— ptrModelGeode 模型节点 (模型+支撑)
// |
// | ————m_LayerSwitch 控制层节点的显示
// |
// | ———— m_LayerTramsform 模型显示层矩阵
// |
// | ———— ModelLayer 层节点
上述的树节点形式展示了单个模型节点的构成:
1) ModelNode 由
m_ModelSwitch和m_LayerSwitch构成,分别控制在3D与2D模式下显示的内容。
2)对于3D模型节点而言,主要所有3D模式下的预览内容在ptrModelGeode中,由于模型始终不变,所以是Geode。它作为子节点,添加给m_ModelTransform,此矩阵节点则是负责存储之前在2D下设置的变换矩阵
3) 对于2D下的节点而言,由于不同层的节点展示不同所以需要注意的有2点:
A. m_LayerTramsform为模型显示层矩阵, 在2D切换至3D时,需要将此矩阵设置给m_ModelTransform
B. 当层号改变时需要删除当前层的ModelLayer 节点,重新创建对应层号的ModelLayer节点,并设置新创建层节点为m_LayerTramsform的子节点.(PS之所以删除之前的节点则是由于通常模型数据非常大,几个G,我们没有必要将模型数据始终保存在内存中。)
通过此树节点式的设计,可以轻易的将同一个模型在2D模式下操作的变换矩阵呈现于模型的3D模式下。
首先展示一下效果: 图1为3D下的模型效果 图2为2D下的图形效果
在2D模式下对模型进行旋转平移后,对应的要更新3D模型的显示,其本质还是获取2D模型下的变换矩阵,再设置给3D下的模型。下面来看一下此模型节点的设计:
// ModelNode
// |
// | ————m_ModelSwitch 控制模型节点的显示
// | |
// | | ———— m_ModelTransform 存储模型矩阵
// | |
// | |———— ptrModelGeode 模型节点 (模型+支撑)
// |
// | ————m_LayerSwitch 控制层节点的显示
// |
// | ———— m_LayerTramsform 模型显示层矩阵
// |
// | ———— ModelLayer 层节点
上述的树节点形式展示了单个模型节点的构成:
1) ModelNode 由
m_ModelSwitch和m_LayerSwitch构成,分别控制在3D与2D模式下显示的内容。
2)对于3D模型节点而言,主要所有3D模式下的预览内容在ptrModelGeode中,由于模型始终不变,所以是Geode。它作为子节点,添加给m_ModelTransform,此矩阵节点则是负责存储之前在2D下设置的变换矩阵
3) 对于2D下的节点而言,由于不同层的节点展示不同所以需要注意的有2点:
A. m_LayerTramsform为模型显示层矩阵, 在2D切换至3D时,需要将此矩阵设置给m_ModelTransform
B. 当层号改变时需要删除当前层的ModelLayer 节点,重新创建对应层号的ModelLayer节点,并设置新创建层节点为m_LayerTramsform的子节点.(PS之所以删除之前的节点则是由于通常模型数据非常大,几个G,我们没有必要将模型数据始终保存在内存中。)
通过此树节点式的设计,可以轻易的将同一个模型在2D模式下操作的变换矩阵呈现于模型的3D模式下。
相关文章推荐
- [unity3d]设置3D模型显示在2D背景之前(多个相机分层显示)
- 2d GUI的上层显示3d模型
- [unity3d]设置3D模型显示在2D背景之前(多个相机分层显示)
- Flash Stage3D 在2D UI 界面上显示3D模型问题完美解决
- 设置3D模型在2DUI界面中的显示,要设置所有的layer
- CSS3新标准选择器 框模型 背景和边框 文本效果 2D/3D 转换 动画 多列布局 用户界面
- unity3d设置3D模型显示在2D背景之前(多个相机分层显示)(转)
- CSS3-2D及3D效果以及过渡
- jQuery Flux Slider 2D/3D 图片切换效果展示
- CSS3(背景样式,文本立体效果,2d3d转换及动画)第八天
- jeecms栏目模型和内容模型的使用以及对应前台的标签中的属性名
- Android OpenGL显示任意3D模型文件
- 求2D照片转3D模型开发接口
- Unity3D游戏开发之在3D场景中选择物体并显示轮廓效果强化版
- 【Stage3D学习笔记续】真正的3D世界(二):显示模型
- 【Unity3D】利用Shader以及更改Mesh实现2D游戏的动态阴影效果
- 如何在 Unity 2D 和 3D 中放大或缩小以及点击屏幕
- 使用Three.js + Blender构建在浏览器端显示的3D模型(3)
- Android中使用自定义selector来实现view的点击效果以及view的显示样式
- datagrid 显示 效果对应的代码