7.OsgEarth加载Obj模型

2023-11-02 18:30
文章标签 加载 模型 osgearth obj

本文主要是介绍7.OsgEarth加载Obj模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

愿你出走半生,归来仍是少年!

        除了大面积的倾斜摄影的加载,同时还存在单个模型的加载。常用的obj模型作为单体在三维场景中的呈现。

        原理类似于6.OsgEarth加载倾斜摄影-CSDN博客中的倾斜加载。

1.代码

        通过osg读取文件作为节点添加到GeoTransform节点中,然后将节点添加到ModelLayer中进行加载。

        osgDB::Options("noRotation")可保证obj模型加载到场景中后不会被自动旋转90°。

        osgEarth::Registry::shaderGenerator().run(node)保证纹理。

osg::ref_ptr<osgEarth::ModelLayer> Cv::LayerFactory::CreateObjModelLayer(std::string fileFullName, const  SpatialReference* srs, double x, double y, double z)
{osg::ref_ptr<osgEarth::GeoTransform> xform = new osgEarth::GeoTransform();bool exist = FileUtility::exist(fileFullName);osgEarth::GeoPoint position(srs, x, y, z);auto pos4326 = position.transform(SpatialReference::get("wgs84"));//设置文件读取不旋转osg::ref_ptr<osgDB::Options> options = new osgDB::Options("noRotation");auto node = osgDB::readNodeFile(fileFullName, options);osgEarth::Registry::shaderGenerator().run(node);xform->addChild(node);xform->setPosition(pos4326);ref_ptr<osgEarth::ModelLayer> modelLayer = new osgEarth::ModelLayer();string lyName = Utilitys::FileUtility::getNameWithoutType(fileFullName);modelLayer->setLocation(pos4326);modelLayer->setNode(xform);modelLayer->setName(lyName);return modelLayer;
}

2.效果

obj单体加载

        

这篇关于7.OsgEarth加载Obj模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/332448

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G