ThingJS让3D灯光管理更容易!

简介: 场景中的灯光与真正的灯光不同,它需要在渲染时间上多花功夫

场景中的灯光与真正的灯光不同,它需要在渲染时间上多花功夫,灯光设置越复杂,渲染所花费的时间越多,ThingJS让灯光管理变简单。
灯光有助于表达一种情感,或引导观众的目光看向具体的位置。灯光能够反映一种基调,对整个图像的外观至关重要。下面教你关于打灯光的技巧,以及轻便的开发方法。
ThingJS提供一套操作简便的灯光配置项,只要配置结束后,记得点击生成代码块并执行,一套完整的初级灯光效果就出来了。
1.jpg

主灯光

主灯光对象是对主光源的控制代码,可设置的变量包括阴影、颜色、强度和打灯角度。主光源通常放在四分之三的位置上,位置是从物体的正面转45度,并从中心线向上转45度。夜晚的场景很适用于单一的主光源,没有其他的自然光,其他的地方黑得不见五指,这正符合单一条件的主光源效果。
### 环境光
在主灯光对象之前,还有对环境光、半球光照的配置。这两种光源均是天然漫反射的光线,在自然环境中这是一种自然的光亮,不至于让整个环境置于黑箱之中。环境光能够提高整个场景的亮度。半球光照特地用来补充地面或建筑角落里的光线,柔化阴影或减少阴影区域,符合物联网可视化场景的需求。

背景光

第二光源对象也需要设置具体的位置和发光对象的颜色,作为主光源的一种补充光源,感觉会更加逼真。事实上,自然的光线很少只有一种光线照明,而是多种颜色的灯光组合,提供一种景深的感觉。
在3DMAX中打灯是一个复杂的技巧,真正学会操作很费时间,相对来说ThingJS就轻量很多,通过提供场景灯光的配置选项,再生成代码块,方便开发人员迅速掌握,层次效果更丰富。
场景灯光通过app.lighting属性设置,难度一星,代码示例如下。

var app = new THING.App({
    url: 'https://www.thingjs.com/static/models/chinesehouse'
});

app.on('load', function (ev) {
    app.camera.position = [18.217000353088125, 16.96513529990897, 11.90387798709408];
    app.camera.target = [-0.92, 2.1, 2.7];
})

// 环境光对象
var ambientLight = {
    intensity: 0.4,
    color: '#FFFFFF',
};
// 半球光照
var hemisphereLight = {
    intensity: 0.5,
    color: '#FFFFFF',
    groundColor: '#202020',
};
// 主灯光对象
var mainLight = {
    shadow: true,
    intensity: 0.6,
    color: '#FFFFFF',
    alpha: 120,
    beta: 0,
};
// 第二光源对象
var secondaryLight = {
    shadow: false,
    intensity: 0,
    color: '#FFFFFF',
    alpha: 0,
    beta: 0,
};
// 全局配置
var config = {
    ambientLight,
    hemisphereLight,
    mainLight,
    secondaryLight
}

new THING.widget.Button('调整场景灯光', function () {
    // 设置灯光
    app.lighting = config;
})

ThingJS把js代码封装形成简单的配置项,让3D开发更简单。

相关文章
|
人工智能 文字识别
文字识别OCR提示这个报错 ,怎么解决?Timeout on reading data from socket
文字识别OCR提示这个报错 ,怎么解决?Timeout on reading data from socket
615 1
|
4月前
|
人工智能 搜索推荐 机器人
《对话》精选|中国大模型凭何成为全球AI底座?
在“人工智能+”上升为国家战略的关键节点,央视财经频道《对话·创新中国行》,邀请到阿里云智能集团首席技术官周靖人、阿里云智能集团副总裁张亮与来自机器人、智能硬件、AIGC视频生成、AI短漫剧、教育等领域的产业先锋:科沃斯集团董事长钱东奇、自变量机器人创始人兼CEO王潜、爱诗科技创始人兼CEO王长虎、巨日禄科技创始人熊义辉、批改邦创始⼈兼CEO王庆棒展开深度对话。嘉宾们围绕“中国大模型,凭何成为全球AI底座?”这一主题共同探讨中国AI的全球竞争力,分享AI落地千行百业的丰富场景,并展望AI带来的时代变革与未来发展。完整节目已于1月25日22:16在CCTV-2及央视频同步播出。
393 1
《对话》精选|中国大模型凭何成为全球AI底座?
|
8月前
|
传感器 算法 机器人
【IMU数据与GPS融合的预积分方法】基于流形的IMU预积分,用于高效的视觉惯性最大后验估计、SE3姿势区分为IMU(Matlab代码实现)
【IMU数据与GPS融合的预积分方法】基于流形的IMU预积分,用于高效的视觉惯性最大后验估计、SE3姿势区分为IMU(Matlab代码实现)
335 4
|
前端开发 C++ 容器
Marp 教程:实现分栏和其他高级排版技巧
本文介绍了如何在 Marp 中实现分栏和其他高级排版技巧。Marp 是一个基于 Markdown 的幻灯片制作工具,结合 VSCode 的强大编辑功能,可以让你的 PPT 制作更加高效和专业。文章详细讲解了安装 VSCode 和 Marp 插件、Marp 的基本结构、使用 CSS 实现分栏、多列文本、浮动元素和网格布局等技巧。
|
前端开发 JavaScript Android开发
跨平台应用程序
跨平台应用程序
392 2
EMQ
|
传感器 缓存 安全
MQTT 协议入门:基础知识和快速教程
本文将通过讲解与演示向读者展示 MQTT 协议的入门使用流程,开发者可以通过本文以更简单的方式理解 MQTT 相关概念,快速开始 MQTT 服务及应用的开发。
EMQ
4691 0
MQTT 协议入门:基础知识和快速教程
|
运维 网络协议
网络工程师:BGP命令大全
【7月更文挑战第5天】
602 0
网络工程师:BGP命令大全
|
存储 弹性计算 安全
对象存储OSS产品常见问题之购买的资源包和预留空间区别只购买了预留空间会自动抵扣如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
2203 4
|
弹性计算 人工智能 自然语言处理
【玩转AIGC系列】AIGC文本生成视频
本文介绍如何使用GPU云服务器搭建Stable Diffusion模型,并基于ModelScope框架,实现使用文本生成视频。
【玩转AIGC系列】AIGC文本生成视频
|
存储 文件存储 UED
阿里云网盘和个人版阿里云盘的主要区别
【1月更文挑战第5天】【1月更文挑战第24篇】阿里云网盘和个人版阿里云盘的主要区别
1953 1