教你给场景添加天空盒,超简单!

2024-03-30 17:48
文章标签 简单 场景 天空

本文主要是介绍教你给场景添加天空盒,超简单!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数字孪生可视化场景中,如果要更换场景天空,例如白天、黑夜、雾霾效果等,这个时候可以考虑采用天空盒技术。可以为数字孪生可视化场景里添加上一片逼真的天空,使得世界更加美丽真实。

天空盒是一个包裹整个场景的立方体,可以很好地渲染并展示整个场景环境。天空盒其实就是将一个立方体展开,然后在六个面上贴上对应的贴图,在实际的渲染中,将这个立方体始终罩在数字孪生可视化场景摄像机的周围,让数字孪生可视化场景摄像机始终处于这个立方体的中心位置,然后根据视线与立方体的交点的坐标,来确定究竟要在哪一个面上进行纹理采样。所以在实时渲染中,因为照相机随着物体一起移动,在肉眼看来,物体大小几乎是没什么变化的,这种就是天空盒技术。

天空盒是用于增强数字孪生可视化场景表现力的一个常用技术,它一般通过在相机周围包裹一个纹理来实现。为了保持视角一致,需要校正天空盒,摄像机飞行完之后,当前的视角变化了,天空盒就需要校正——获取自定义图层tilelayer1的类型、名称和URL,添加此图层到基础的地图集合列表即可。

目前 ThingJS 内置提供 BlueSky , MilkyWay ,Night , CloudySky, White , Dark 这几种天空盒,使用 app.skyBox 属性设置数字孪生可视化背景天空盒。

app.skyBox = "Night"; // 取消设置天空盒
app.skyBox = null;

设置背景天空盒时间线使用 app.skyEffect 属性。

app.skyEffect = {// 显示光源位置showHelper: false,// 光源扩散大小turbidity: 10,// 大气散射 rayleigh: 2, // 时间 [0~24]time: 17.6, // 水平角度beta: 30 
}; // 取消设置效果
app.skyEffect = null;

效果如下:

当 app.skyBox 和 app.skyEffect 同时生效时会有些问题,需要选取其中一个生效,关闭另一个。

—————————————————

数字孪生可视化:https://www.thingjs.com/

这篇关于教你给场景添加天空盒,超简单!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i