灯光的种类:在场景中添加灯光后, 灯光照射在物体上产生明暗,光亮和阴影, 从而让物体显示的更加立体有光泽

three.js 中, 有 6 种基础类型的灯光, 他们都继承于 Three.Light

灯光类型           灯光名称        是否支持阴影    是否作用于全局    是否有照射目标
AmbientLight     环境光,氛围光        否            是                无
DirectionalLight    平行光            是            否                有
HemisphereLight  半球光源,户外光源     否            是                无
PointLight        点光源              有            否                有
RectAreaLight    矩形面光源            否            否                无
SpotLight        聚光灯光源            是            否                有

 关于阴影的进一步补充说明:

  1. 之前的事例中, 当场景上有反光物体且有灯光时, 物体会产生明暗, 但是请注意:这个物体显示出的明暗并不是真正的 阴影
  2. 这个 物体显示出的明暗 并不是完全符合我们日常的 光影明暗,这是因为 我们目前所有的示例使用的都是 简单光照模型, 也就是说光照射在物体后 并不并不进行漫反射,所以渲染出的 明暗 并不完全自然合理
  3. 默认渲染器 并不会渲染阴影, 迷人支持阴影的灯光也不会投射 阴影, 若想产生真正的阴影, 还需要开启 阴影渲染和投射

 灯光的作用于阴影

AmbientLight 环境光, 氛围光: 通常仅作为 基础光线, 一般需要与其他灯光配合使用,不能产生阴影,也无需指定坐标位置, 仅需设置颜色和强度

DirectionalLight  平行光:最为经常使用的光源, 光纤 都是平行向着一个方向发射,经常用来模拟太阳光照射到某个物体上的光照效果

HemisphereLight 半球光源:更加真实的模拟自然光源, 提供 天空 地面 漫反射光线。一共接收 3 个参数: 第一个: 天空光线颜色,第二个: 地面反射光颜色, 第三个: 光的反射强度

PointLight: 点光源: 类似生活中的灯泡, 光纤 没有固定方向, 朝着四周散射, 点光源对应的辅助对象 PointLightHelper 只有一个 菱形的光源形状,并没有 光 的 发射线条

RectAreaLight  矩形面光源: 与 DirectionalLight 模拟太阳光不同, 光源形状为一个矩形, 可以模拟出明亮的窗口或者 矩形照明光源

  1. 只有 MeshStandardMaterial 和 MeshPhysicalMaterial  材质 才支持 RectAreaLight光源
  2. RectAreaLight  对应的辅助对象, RectAreaLightArea 引入方式和 其他 光辅助对象 引入方式不同。其他光辅助对象 都是在 three 中 使用之前无需引入, 可以直接使用, RectAreaLight  在使用之前需要引入才可以使用                                                          import { RectAreaLightHelper } from 'three/examples/jsm/helpers'

SpotLight   聚光灯 类似与生活中的 聚光灯效果

Three.js 基础之灯光相关推荐

  1. 构建node.js基础镜像_我如何使用Node.js构建工作抓取网络应用

    构建node.js基础镜像 by Oyetoke Tobi Emmanuel 由Oyetoke Tobi Emmanuel 我如何使用Node.js构建工作抓取网络应用 (How I built a ...

  2. 构建node.js基础镜像_在Android上构建Node.js应用程序

    构建node.js基础镜像 by Aurélien Giraud 通过AurélienGiraud 在Android上构建Node.js应用程序-第1部分:Termux,Vim和Node.js (Bu ...

  3. JS基础知识学习(一)

    JS基础知识 前端开发常用的浏览器 谷歌浏览器(chrome):Webkit内核(v8引擎) 火狐浏览器(firefox):Gecko内核 欧朋浏览器(opera):Presto内核 IE浏览器:Tr ...

  4. # vue.js 之 对vue.js基础理解

    vue.js 之 对vue.js基础理解 Vue构造器 1 . Vue.js是一个构造函数,编程中称之为构造器 2 . 每一个new Vue() 都是一个Vue构造函数的实例,这个过程叫做实例化 3 ...

  5. 前端面试题目汇总摘录(JS 基础篇 —— 2018.11.01更新)

    温故而知新,保持空杯心态 JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string type ...

  6. JS基础篇--HTML DOM classList 属性

    页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS类. 添加 ...

  7. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  8. 【译】一份通俗易懂的React.js基础指南-2018

    原文链接:tylermcginnis.com/reactjs-tut- by Tyler McGinnis 这篇文章最初发表于2015年1月,但最近被更新为React 16.3以及它所包含的所有优点. ...

  9. SVG.js 基础图形绘制整理(二)

    一.折线 var draw = SVG('svg1').size(300, 300); //画折线 //使用字符串点 // var polyline=draw.polyline('0,0 100,50 ...

最新文章

  1. Swift教程Swift语言快速入门(内部资料)
  2. 查看静态链接和动态链接
  3. JavaScript学习总结(八)——JavaScript数组
  4. 从数组到流再到Java 8
  5. javascript-变量的命名-数据类型-注释
  6. java上传文件堆溢出_我的正则表达式导致Java中的堆栈溢出;我错过了什么?
  7. POJ 1991 Turning in Homework ★(区间DP)
  8. 接口与interface关键字
  9. 中国城市统计年鉴中地级市面板数据(2000-2019年)
  10. 百度云API怎么使用
  11. 投影仪与计算机连接方式,电脑与接投影仪、显示器的连接和设置方法
  12. QT-数据可视化大屏1
  13. 禁用笔记本电脑自带键盘
  14. Ubuntu 安装Chromium浏览器
  15. Android 垃圾分类APP(三)垃圾分类之语音输入
  16. Ckplayer试看功能
  17. Unity 智能语音助手
  18. 蓄水池问题c语言编程,蓄水池算法(Reservoir Sampling)
  19. 建筑识图与构造【1】
  20. 研究了下maphack,顺便做了个1.22版的

热门文章

  1. 基于Hexo和Github搭建博客
  2. php dt dd,DL.DT.DD实现左右的布局简单例子
  3. [封装插件]酒仙网和京东左侧动态菜单栏案例
  4. 如何生成玫瑰?|数字艺术
  5. vlc web 登录账号_使用VLC Activex插件做网页版视频播放器
  6. Microsoft Visual Studio 2019正式版离线安装包下载
  7. 【常垒·投资】芯率智能完成A轮融资
  8. Navicat Premium导入Excel提示无法打开Excel文件
  9. 华为服务器休眠远程怎么唤醒,华为路由WS5200怎么设置远程唤醒功能
  10. 如果有人问你数据库的原理,叫他看这篇文章(下)