• 正文概述
  • GitHub – newpeople123/osgGISPlugins: ​这是一个基于OpenSceneGraph(OSG)的GIS插件,旨在扩展OSG处理GIS数据的能力。 ​该插件能够读取和显示由3ds Max导出的、带有PBR材质的FBX文件,并支持导出gltf、glb、b3dm和i3dm等格式的文件。 此外,它还支持读取和导出ktx2和webp格式的图片。 osgGISPlugins还提供了一些实用工具,如b3dm转gltf/glb、3D模型转换为3dtiles、3D模型简化以及多张纹理打包成一个纹理图集等功能。

    Name
    779a735 · 3 months ago
    3 months ago
    3 months ago
    3 months ago
    3 months ago
    3 months ago
    2 years ago
    6 months ago
    3 months ago
    3 months ago
    3 months ago
    last year
    3 months ago
    last year
    last year
    3 months ago

    Repository files navigation

    osgGISPlugins

    图像描述 图像描述 图像描述 图像描述
    图像描述 图像描述 图像描述 图像描述 图像描述 图像描述 图像描述
    图像描述 图像描述 图像描述 图像描述 图像描述 图像描述 图像描述 图像描述

    简介

    图像描述 图像描述 图像描述 图像描述
    图像描述 图像描述 图像描述 图像描述

    osg的GIS插件,能够读取、显示3dsmax导出的具有PBR材质的fbx文件、导出gltf/glb/b3dm/i3dm文件、读取/导出ktx2格式图片、读取/导出webp格式图片。同时提供了如下子工具:

    • b3dm转gltf/glb
    • 3D模型转3dtiles
    • 3D模型简化
    • 多张纹理打包成一个纹理图集

    osgdb_fbx

    图像描述 图像描述

    在osg的fbx的插件的基础上,参考了FBX2glTF项目,使得能够读取3dmax导出的带有PBR材质的FBX文件(原本的插件读取带有PBR材质的FBX文件时,材质会丢失,读到引擎里显示为白模),并能在osg引擎中正常渲染。

    osgdb_gltf

    图像描述 图像描述
    图像描述 图像描述 图像描述 图像描述 图像描述 图像描述 图像描述 图像描述
    图像描述 图像描述 图像描述 图像描述

    支持导出gltf/glb/b3dm/i3dm,暂不支持读取。

    在osgEarth的gltf的插件基础上,增加了若干gltf扩展:

    • KHR_materials_unlit
    • KHR_materials_pbrSpecularGlossiness
    • KHR_draco_mesh_compression
    • KHR_mesh_quantization
    • EXT_meshopt_compression
    • KHR_texture_basisu
    • KHR_texture_transform
    • EXT_texture_webp

    通过展开/合并变换矩阵、合并材质、合并几何图元等方式优化gltf性能,减少drawcall的调用次数。

    osgdb_webp

    图像描述 图像描述

    和osgEarth的webp插件一样。

    osgdb_ktx

    图像描述 图像描述

    在王锐大神的osgVerse的ktx插件基础上进行了小改动,支持导出ktx2格式的纹理图片,支持Mipmaps。

    工具简介

    b3dm2gltf

    将b3dm文件转换为gltf/glb文件。

    用法说明

    命令行格式

    b3dm2gltf.exe -i <path> -o <path>

    示例命令

    b3dm2gltf.exe -i D:test.b3dm -o D:output.glb

    model23dtiles

    • 将3D模型转换为符合 3dtiles 1.0 标准的瓦片数据;
    • 支持三种3dtiles空间组织结构:KD树(kd)、四叉树(quad) 和 八叉树(oc);
    • 支持纹理压缩格式:webp 和 ktx2,也支持传统的 jpg、png;
    • 支持顶点数据压缩:draco、meshoptimizer、量化(quantize)及其组合;
    • 支持纹理合并,减少绘制调用次数(drawcall),提升渲染效率;
    • 导出的3dtiles会携带模型的用户自定义属性;
    • 对网格数据进行合并,生成优化的模型瓦片;
    • 支持纹理图集(Texture Atlas)以进一步优化纹理加载。 特别说明 这里的3D模型指的是fbx、obj、3ds等单个模型文件,但不包括倾斜摄影模型,倾斜摄影模型目前建议使用fanvanzh/3dtiles

    用法说明

    命令行格式

    model23dtiles -i <path> -o <DIR> -tf <jpg/png/webp/ktx2> -vf <draco/meshopt/quantize/quantize_meshopt> -t <quad/oc/kd> -sr <Number> -cl <low/medium/high> -tx <Number> -ty <Number> -tz <Number> -up <X/Y/Z> -tw <Number> -th <Number> -aw <Number> -ah <Number> -tri <Number> -dc <Number> -sx <Number> -sy <Number> -sz <Number> -lng <Number> -alt <Number> -nm <v/f> -nrm -unlit -ntf

    model23dtiles -i <path> -o <DIR> -tf <jpg/png/webp/ktx2> -vf <draco/meshopt/quantize/quantize_meshopt> -t <quad/oc/kd> -sr <Number> -cl <low/medium/high> -tx <Number> -ty <Number> -tz <Number> -up <X/Y/Z> -tw <Number> -th <Number> -aw <Number> -ah <Number> -tri <Number> -dc <Number> -sx <Number> -sy <Number> -sz <Number> -epsg <Number> -nm <v/f> -nrm -unlit -ntf

    示例命令

    model23dtiles.exe -i D:test.fbx -o D:output -lat 30 -lng 116 -alt 100
    # 输出使用ktx2进行纹理压缩和使用draco进行顶点压缩的3dtiles
    model23dtiles.exe -i D:test.fbx -tf ktx2 -vf draco -o D:output -lat 30 -lng 116 -alt 100.5
    # 设置3dtiles的中间节点的简化比例为0.6
    model23dtiles.exe -i D:test.fbx -sr 0.6 -o D:output -lat 30 -lng 116 -alt 100
    # 设置3dtiles的树结构为四叉树,顶点坐标为4549投影坐标系
    model23dtiles.exe -i D:test.fbx -t quad -o D:output -epsg 4549
    # 设置3dtiles的树结构为四叉树,顶点坐标为4549投影坐标系,并将原始模型单位从厘米转换为米
    model23dtiles.exe -i D:test.fbx -t quad -o D:output -epsg 4549 -sx 0.01 -sy 0.01 -sz 0.01

    参数说明

    • 输入输出

      • -i 输入文件
      • -o 输出文件夹
    • 坐标参数

      • -lat 纬度,默认30.0
      • -lng 经度,默认116.0
      • -alt 高度,默认300
      • -epsg 若模型顶点坐标为投影坐标系,指定epsg编码,与lat、lng和alt参数互斥,可以配合tx、ty、tz参数使用
    • 变换参数

      • -tx 重设模型原点位置的x坐标,默认0.0
      • -ty 重设模型原点位置的y坐标,默认0.0
      • -tz 重设模型原点位置的z坐标,默认0.0
      • -sx x方向缩放(单位转换),默认1.0
      • -sy y方向缩放(单位转换),默认1.0
      • -sz z方向缩放(单位转换),默认1.0
      • -up 模型向上方向轴,选项:X、Y、Z(大写),默认Y(FBX模型自动转换为Y轴向上)
    • 组织结构参数

      • -t 3dtiles组织结构,可选:kd(KD树)、quad(四叉树)、oc(八叉树),默认quad
    • 压缩与简化参数

      • -r 3dtiles中间节点简化比例,默认0.5
      • -tf 纹理压缩格式,可选:png、jpg、webp、ktx2,默认ktx2
      • -vf 顶点压缩格式,可选:draco、meshopt、quantize、quantize_meshopt,无默认值
      • -cl draco压缩级别/顶点量化级别,选项:low、medium、high,默认medium,仅对quantize、quantize_meshopt和draco有效;压缩级别越高,模型精度损失越大
    • 性能限制参数

      • -tri 3dtiles瓦片最大三角面数,默认20w
      • -dc 3dtiles瓦片最大drawcall数量,默认20
      • 纹理尺寸参数
        • -tw 单个纹理最大宽度,默认256,需为2的幂
        • -th 单个纹理最大高度,默认256,需为2的幂
        • -aw 纹理图集最大宽度,默认2048,需为2的幂,且大于单个纹理最大宽度,否则不构建图集
        • -ah 纹理图集最大高度,默认2048,需为2的幂,且大于单个纹理最大高度,否则不构建图集
      • 变换参数
        • -nft 不对顶点应用变换矩阵;默认会对顶点应用变换矩阵以提升渲染性能(减少drawcall),但可能带来顶点位置精度损失(如果不启用该参数时,模型发生了变形,请启用该参数)
    • 其他参数

      • -nrm 重新计算法线
      • -nm 配合 -nrm参数使用,指定法线模式:v表示顶点法线,f表示面法线(默认),可选:v、f(顶点法线适用于平滑曲面,面法线适用于棱角分明的物体)
      • -unlit 启用 KHR_materials_unlit 扩展,适用于烘焙模型
      • -gn 生成法线贴图(使用Sobel算子)和切线,瓦片会有更好的渲染效果(提升有限)但瓦片的体积也会变大并且处理时间也更长

    simplifier

    对3D模型进行网格简化操作,同时会删除简化后的空闲顶点。

    用法说明

    命令行格式

    simplifier.exe -i <path> -o <path> -ratio <Number> -aggressive

    示例命令

    simplifier.exe -i C:inputtest.fbx -o C:outputtest_05.fbx -ratio 0.1

    参数说明

    -i 输入3D模型。

    -o 简化后的3D模型。

    -ratio 简化比例。

    -aggressive 更激进的简化方式,不保留拓扑。

    texturepacker

    将多张纹理图片打包成一个纹理图集,并输出一个json文件指示原始纹理图片在纹理图集中的位置。

    用法说明

    命令行格式

    texturepacker.exe -i <path> -o <path> -width <Number> -height <Number>

    示例命令

    texturepacker.exe -i C:input -o C:outputatlas.png -width 2048 -height 2048

    参数说明

    -i 输入待打包纹理图片或其所在文件夹。

    -o 输出纹理图集。

    -width 纹理图集最大宽度。

    -height 纹理图集最大高度。

    下载Release版本

    https://pan.baidu.com/s/16YB3yUm8jEC6Ep4q4O_PoQ?pwd=2o84

    如何编译

    图像描述 图像描述 图像描述 图像描述

    1、编译需要fbxsdk和修改后的tinygltf等库,但是文件太大无法上传,因此放在了百度网盘中(链接:https://pan.baidu.com/s/16YB3yUm8jEC6Ep4q4O_PoQ?pwd=2o84 提取码:2o84 ),下载解压后放在和src同级目录下即可 2、编译时需要修改根目录下的CMakeLists.txt文件中CMAKE_TOOLCHAIN_FILE变量的值为本地vcpkg工具路径

    其他方式:

    1、windows环境下修改build.bat脚本的DCMAKE_TOOLCHAIN_FILE值为本地vcpkg工具路径,运行脚本即可编译;

    2、linux环境下通过Dockerfile文件构建docker镜像即可。

    备注:windows环境下运行vcpkg安装依赖包时,可能会遇到编译jasper库失败的问题,解决方案:https://blog.csdn.net/weixin_41364246/article/details/140124085

    详细教程:开源跨平台三维模型轻量化软件osgGISPlugins-2、如何编译

    缺陷

    1、当前不支持i3dm、b3dm、gltf/glb文件的导入 …

    后续计划

    这个项目陆陆续续已经开发了两年了,占用精力较多,数据转换这里也就搞成这样了,接下来学习重点将会是着色器,后续不会投入太多精力在这个项目了。 1、bug修复 2、代码重构 3、增加GUI界面 4、支持3dtiles 1.1 5、model23dtiles支持倾斜摄影数据转换 …

    关于作者

    这是作者的第一个开源项目,非常感谢osgosgEarthosgVerseFbx2glTF3dtiles等开源项目对我的启发和帮助。 联系方式:vx:jlcdhznextwhere ps:添加时备注说明来意,不然有时候我不知道咋回事可能会拒绝添加,谢谢!

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » osg的GIS插件,能够读取、显示3dsmax导出的具有PBR材质的fbx文件、导出gltf/glb/b3dm/i3dm文件

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录