导航:首页 > 文件教程 > osg支持的文件格式

osg支持的文件格式

发布时间:2023-03-22 17:41:49

① OSG仿真案例(8)——读取FBX格式文件并显示(无动画)

包含的头

所需要的类(结构体)

加载吧缓搜显示模型

文件液芹夹中闹哪毕数据

② 想请问下高手们,用3ds Max制作模型导出*.3ds格式,然后利用OSG加载模型,如何让模型上面有纹理呢

3ds格式 不支持 贴图文件名超过8个字符的。。

超过8个的会被截掉 只保留8位 所以osg 不认

③ 有懂OSG的吗帮忙看看……

你检查闹尺下以下三腔雹条:
1、使用#include <osgDB/ReadFile>了吗液圆高?
2、确定你的path环境变量里面包含C:\OSG\OpenSceneGraph\build\bin路径
3、工程属性的附加依赖项中有osgDBd.lib
尝试一下。

④ 我手上有osgb格式的倾斜摄影文件,如何打开进行浏览

1、首先打开LocaSpace Viewer软件,进入到应用程序的首页中。

⑤ 小白请教osg(OpenSceneGraph)如何安装

一下载资料:

1、下载源码:
在http://www.openscenegraph.org/projects/osg/wiki/Downloads下载稳定版本的源代码或预编译包。

source code为源代码,可以用CMAKE工具生成.sln的解决方案;
binaries为预编译包,预编译包不是openscenegraph官方直接维护,而是有其他爱好者上传,可能会有隐患,最好是从源代码进行编译。
版本说明:<主版本号>.<副版本号>.<修订号>
主版本号高的,功能丰富;副版本号为偶数的为正式版本,比较稳定;副版本号为奇数的为开发者版本,有新特性和功能,但会存在未解决的兼容性和效率问题;开发者版本和正式版本是同步发行的。

下载文件为:OpenSceneGraph-2.8.0.zip

2、下载Cmake工具:
在http://www.cmake.org/cmake/resources/software.html中下载CMake工具cmake-2.8.2-win32-x86.exe。

3、下载SVN软件(用于下载源码或第三方库,有的版本不需要此软件,可直接下,根据情况定):

在http://tortoisesvn.tigris.org/下载TortoiseSVN。

4、下载第三方库Dependencies,http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies,
“VisualStudio 8 (2005) SP1 - svn access directory ”

5、下载示例:
在http://www.openscenegraph.org/projects/osg/wiki/Downloads/SampleDatasets中下载示例数据文件OpenSceneGraph-Data-2.8.0.zip 。

二、安装
1、安装cmake工具
2、在某盘符下建立osg文件夹,在该文件夹中放置源码文件、第三方文件和示例文件。
3、运行cmake,
第一行(where is the source code)输入osg文件夹中的源码文件;
第二行(where to build the binaries)输入一个新文件夹名及地址,如osg/build_osg;
点configure,选择所用的编译器版本,即c++版本;
点grouped,选择build项,选择build_osg_examples和build_osg_wrappers;
选择cmake项,设置cmake_install_prefix的位置(用于存放编译完的各种模块文件,如库文件、可执行文件和头文件)
点configure,点advanced,选上build_mfc_example
点configure,
点generate,完成。
此时在osg/build_osg文件中生成了对应编译版本的.sln文件。
4、用c++编译器打开该.sln文件,在解决方案管理器窗口中的all_build上右击,选“生成”,将在osg/build_osg中生成几个G的文件。
在install上右击,选“生成”,将在第三步中cmake_install_prefix设置的文件夹中生成编译完的各种模块文件(如库文件、可执行文件和头文件)。

三、设置环境变量
我的电脑-属性-高级-环境变量
系统变量
OPENSCENEGRAPH_VERSION=2.8.0
OSGDIR=D:\Program Files\OpenSceneGraph
PATH新增:%OSGDIR%\bin;
%OSGDIR%\bin\osgPlugins-%OPENSCENEGRAPH_VERSION%
OSG_FILE_PATH=%OSGDIR%\data
OSG_NOTIFY_LEVEL=INFO

四、简单测试
在控制台下输入osgviewerd cow.osg

五、建立工程环境
1、使VS支持无扩展名头文件的高亮显示。
进入visual studio,选择Tools-Options,选text editor-file extension,在下面的map extensionless files to选项选择microsoft visual c++。
2、构建基于OSG开发的工程。
1)建一个工程
2)在project-properties中选择configuration properties-c/c++,在additional include directories中输入“$(OSGDIR)\include”。
3)选择configuration properties-linker,在additional library directories中输入“$(OSGDIR)\lib”。
4)选择configuration properties-linker-input,打开additional dependencies窗口,准备配置输入的依赖库文件名称。如OpenThreadsd.lib;osgd.lib;osgDBd.lib;osgUtild.lib;osgGAd.lib;osgTextd.lib;osgViewerd.lib
注意:Debug版本的工程和Release版本的工程所依赖的OSG库文件类型相同,但名称有区别.Debug版本的文件名末尾有"d"标识。根据用户需要的不同,还可以添加其他库依赖文件,这些文件在osg的lib文件夹中。

OK,现在可以编代码,编译、调试,输出效果了,体会OSG渲染引擎的强大吧

⑥ 如何在Web上直接浏览大规模OSGB格式倾斜模型(二):转换OSGB

欢迎关注公号【 三维网格3D 】,第一时间获取最新文章

上一篇( 如何在Web上直接浏览大规模OSGB格式倾斜模型(一):解析OSGB )已经贴出了解析结果,让我们对OSGB倾斜模型文件内部结构有了比较清晰的认识,本篇我们将解析结果转成three.js对象,并实现单个模型的显示。

为什么转成three.js对象

从解析结果看,Osg对象的节点关系用three.js对象表达更容易,转换结果可以直接用three.js显示,通过我们团队的Cesium和three.js融合方案,可以轻松将成果用于Cesium开发的项目,既可以单独使用,又可以拥有GIS能力。

需要转换的Osg类型

解析得到的Osg对象,Type属性指示对象的类型,我们只是要转换倾斜摄影模型文件的Osg对象,而不是做一个通用的转换工具,所以先将类型做一下分类,只转换目前所用测试数据(100多G的测试数据)已知的类型。

PS:我们团队内部使用的版本,经过一年多的应用和改进,支持了更多类型的转换,填了许多坑,而且支持osgb、osgt、osg、osgjs四种格式文件,加载速度和健壮性都得到保障。欢迎咨询~

节点类

osg::Node

osg::Geode

osg::Group

osg::LOD

osg::PagedLOD

osg::MatrixTransform

几何类

osg::Geometry

osg::OsgArray

材质类

osg::StateSet

osg::Material

osg::StateAttribute

osg::Texture

osg::Texture2D

osg::Image

节点类主要考虑osg::MatrixTransform,因为这个节点主要的信息就是变换参数,会影响模型的位置、旋转、缩放等。

接下来我们着重介绍转换几何和材质这两类,LOD和PagedLOD参数不多,而且都是调度相关的,我们放在下一篇一起介绍。

转换几何对象

几何数据存储在Osg::Geometry,包含索引属性PrimitiveSetList、位置坐标属性VertexArray、纹理坐标属性TexCoordArray。我们将其转换为THREE.BufferGeometry。

varbufferGeometry=newTHREE.BufferGeometry();

顶点属性转换

顶点属性值是一个二维数组,我们直接调用flat方法,转为一维数组即可。

varpositions=newFloat32Array(osgGeometry.VertexArray.flat());

varuvs=newFloat32Array(osgGeometry.TexCoordArray.flat());

bufferGeometry.setAttribute('position',newTHREE.BufferAttribute(positions,3));

bufferGeometry.setAttribute('uv',newTHREE.BufferAttribute(uvs,2));

索引转换

索引类型有两种,有value指定,这里我们只对索引类型为4的情况(即绘图最小单元为四边形)进行特殊处理,其余的默认最小绘制单元为三角形。

varprimitiveSet=osgGeometry.PrimitiveSetList[0]

varindices=primitiveSet.data;

if(primitiveSet.value==4) {

letnewIndices=[];

for(leti=0; i<indices.length; i+=4) {

leti0=indices[i],

i1=indices[i+1],

i2=indices[i+2],

i3=indices[i+3];

newIndices.push(

i0, i1, i3,

i1, i2, i3

);

}

indices=newIndices;

}

bufferGeometry.setIndex(indices);

转换材质对象

倾斜摄影模型的材质最重要的就是贴图,作为原理介绍,我们不处理其他材质参数,直取贴图即可,当然工程应用上我们还是需要处理一些情况,保证其可用、可靠、健壮。

材质对象存储在Osg::Geometry的StateSet属性,该属性类型为Osg::StateSet,而我们要的贴图存储在Osg::StateSet的TextureAttributeList属性,一般就一张图。

倾斜模型已经包含了光影信息,为此我们将材质转为THREE.MeshBasicMaterial。

varmaterial=newTHREE.MeshBasicMaterial({

side:THREE.DoubleSide

});

处理贴图

贴图一般是jpg或者png格式,我们这里只处理这两种格式。需要注意的是图片数据为Uint8Array类型,我们需要先转为Blob,然后通过URL.createObjectURL创建url,最后使用THREE.TextureLoader加载。

varosgStateSet=osgGeometry.StateSet;

varosgImage=osgStateSet.TextureAttributeList[0].value.StateAttribute.Image

varfileName=osgImage.Name;

constisJPEG=fileName.search(/\.jpe?g($|\?)/i)>0

constisPNG=fileName.search(/\.png($|\?)/i)>0

if(!isPNG&&!isJPEG)return;

varmimeType=isPNG?'image/png':'image/jpeg';

varimageUri=newBlob([osgImage.Data], { type:mimeType });

imageUri=URL.createObjectURL(imageUri)

vartexture=newTHREE.TextureLoader().load(imageUri, ()=>{

texture.needsUpdate=true

})

创建网格

最后,使用转换好的几何体和材质创建模型网格。这里要注意,倾斜摄影模型是z轴朝上(z-up),而three.js渲染是y轴朝上(y-up),所以还需将网格绕x轴旋转y-90°才得到正常的渲染效果。

varmesh=newTHREE.Mesh(geometry, material);

mesh.rotation.x=-Math.PI/2

转换结果

显示效果

额,看起来并没有那么好看~毕竟这是单个瓦片最不清晰的那层,简化到不能看了。

下一篇,我们将主要介绍如果实现PagedLOD,来加载大规模倾斜摄影模型,敬请期待

欢迎关注公号【 三维网格3D 】,第一时间获取最新文章

⑦ 倾斜摄影文件osgb格式,如何转换为obj 或者3ds 或者其它3d模型常见的格式

osgb格式是无人机飞行获取的数据,可以直接使用Smart3D打开,也可以用SuperMap桌面版,或者在自己电脑上配置好osg环境后,用命令osgviewer 文件名打开。

⑧ 三维图格式有哪些 ,具体什么格式是通用的

三维图格式很多。

如:Xdaeobj3dsmaxmambc4dmd2fbx wxwrlstlstp3mfslprtdwgosgiges一些机构还会定义自己的模型格式。

通用的格式:

DCC软件:3dsmaxMayaBlenderCinema4DMonoBrush。

CADCAM软件:UGPro/。

(8)osg支持的文件格式扩展阅读:

1、数字模型应用的两大主要领域:

总的来说分为两大领域:DCC(Digital Content Creation)领域和CAD/CAM(Computer Aided Design/Manufacturing)领域。前者主要偏向可视化,应用于游戏、影视动画、当前的VR和AR;后者主要面向工业设计制造。

2、两大领域模型的特点:

DCC软件多以mesh/polygon形式制作模型,通过对顶点、线段、面片网格进行模型的编辑。CAD/CAM软件多以nurbs曲面形式制作模型,通过对样条线的编辑生成曲面模型。

两种模型的区别有点像“像素”图像和“矢量”图像的区别。前者长于制作形状怪异细节复杂的有机模型,如怪兽,山洞;后者长于制作表面光滑的机械模型,如汽车外壳。

⑨ 怎么把3dmax 文件转换成可以在osg里执行的文件

1.点击文件-导出。毕蠢银

阅读全文

与osg支持的文件格式相关的资料

热点内容
qq主题模块应用教程 浏览:993
javaweb项目打包 浏览:59
qq主题是哪个文件夹里 浏览:642
超越狂暴升级txt书包 浏览:263
cad复制不能粘贴到新建文件 浏览:565
linux网络socket编程 浏览:926
战争雷霆客户端在哪个文件里 浏览:847
如何授权点淘app读取步数 浏览:671
sonarqube代码负责度 浏览:116
step7左面编程框怎么调出来 浏览:348
wordpress文章字号 浏览:117
xp电脑正在识别网络怎么回事 浏览:30
a9加密文件在哪里找 浏览:69
从微信传文件到电脑上吗 浏览:684
更改文件名后 浏览:443
如何更改系统用户名磁盘文件 浏览:595
摄影测量处理数据需要哪些参数 浏览:45
itunes怎样单独恢复应用程序 浏览:788
华为手机企业微信下载的文件存放在哪里 浏览:965
源文件名太长什么意思 浏览:573

友情链接