three.js之光源

作为3D技术的发展趋势,浏览器端3D技术越来越被一些技术公司重视。由此,Threejs非常注重3D渲染效果的真实性,对渲染真实性来说,使用光源是比不可少的技巧。Threejs,在光源方面提供了多种光源供选择。

1.光源大概有7种,其中:

基础光源4种:

环境光(AmbientLight; 会把它的颜色会添加到整个场景和所有对象的当前颜色上)

点光源(PointLight ;空间中的一点,朝所有的方向发射光线)

聚光灯光源(SpotLight ;这种光源有聚光的效果,类似于台灯,手电筒等)

方向光(DirectionalLight ;也称无限光,从这种光源发出的光线可以看作是平行的,例如太阳光)

特殊光源有3种:

半球光光源(HemisphereLight,可以为室内场景创建更加自然的光照效果,模拟反光面和光线微弱的天气)

面光源(AreaLight使用这种光源可以指定散发光线的平面,而不是空间的一个点)

镜头炫光(LensFlare这不是一种光源,但是通过该炫光可以为场景中的光源添加炫目的效果)

2.光源基类

在three.js中,光源用light表示,它是所有光源的基类,其函数是:

THREE.Light ( hex )/////他有一个函数,接收一个16进制的颜色值。

例:

let redLight = new THREE.Light(0xFF0000);

下面分别介绍three.js的基础光源:

1.环境光

环境光是经过多次反射而来的光称为环境光,无法确定其最初的方向。环境光是一种无处不在的光。环境光源放出的光线被认为来自任何方向。因此,当你仅为场景指定环境光时,所有的物体无论法向量如何,都将表现为同样的明暗程度。

环境光用THREE.AmbientLight来表示,例:

var light = new THREE.AmbientLight(0x917CF9 );

有一个接受颜色值的参数。

2.点光源

点光源:由这种光源放出的光线来自同一点,且方向辐射自四面八方。例如蜡烛放出的光,灯笼放出的光。

点光源用PointLight来表示,例:

PointLight( color, intensity, distance )

有3个参数,分别是:

光的颜色,

光的强度(默认1.0),

光的距离(默认0.0)

3.聚光灯

聚光灯:这种光源的光线从一个锥体中射出,在被照射的物体上产生聚光的效果。

聚光灯用SpotLight来表示,例:

THREE.SpotLight( hex, intensity, distance, angle, exponent )

有5个参数,分别是:

聚光灯发出的颜色,

光源强度,

光线强度,

聚光灯着色角度(用弧度作为单位,这个角度是和光源的方向形成的角度),

光源模型衰减的一个参数,越大越衰减

4.方向光

该光源可以看做是距离很远很远的光源,以至于该光源所发出的所有光线都是相互平行的,

方向光光源的一个范例就是太阳,方向光光源不像聚焦光那样离目标越远越暗淡,被方向光光源照亮的整个区域接收到的光强是一样的

方向光用DirectionalLight来表示,例:

THREE.DirectionalLight = function ( hex, intensity )

有2个参数,分别是:

光的颜色,

光线强度

以上是three.js的基础光源,下面来介绍特殊光源:

1.半球光源

这种光源可以为室外场景创建更加自然的光照效果

我们模拟室外光照的时候,可以使用方向光源来模拟太阳,再添加一个环境光源,为场景添加基础色

但是这样看起来不太自然,因为室外的光并不都是来自于上方,很多是来自于空气的散射和地面的反射,以及其他物体的反射

所以在使用方向光源来模拟太阳的情况下再添加一个半球光就自然多了

半球光用HemisphereLight来表示

2.平面光源

平面光光源可以定义为一个发光的矩形

1 由于该光源是THREE.js的扩展,需要引入扩展库

2 平面光源是一种很复杂的光源,因此不能再使用WebGLRenderer对象了,该对象会造成严重的性能损失

3 因此在处理复杂光源或者多个光源的时候,使用WebGL的延迟渲染器WebGLDeferredRenderer

平面光用AreaLight来表示

3.镜头炫光

当我们直接朝着太阳拍照时就会出现镜头眩光(彩色的小光圈),对于游戏或者三维图像来说,镜头眩光会使得场景看起来更真实

镜头炫光用LensFlare来表示

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • 一、四大光照类型1.环境光(Ambient Light) 一个物体即使没有直接被光源照射,但是只要有光线通过其他物...
    CarlDonitz阅读 1,462评论 0 0
  • 我们目前使用的所有光照都来自于一个单独的光源,这是空间中的一个点。它的效果不错,但是在真实世界,我们有多种类型的光...
    IceMJ阅读 1,135评论 1 1
  • 一提到抠图、去掉背景,我们立即会想到Photoshop。作为图片处理的专业软件,Photoshop在抠图上自然很厉...
    工作力阅读 1,747评论 0 3
  • 美栾翻出了她99年的笔记,记录了当时创城的盛况。然后西柚说,你这一辈子都在创城;栾回,多有意义……? ...
    一枕清菏阅读 237评论 0 0
  • 光辉岁月BEYOND - 命运派对 上个世纪的中国农村,改革开放的红利已经凸显,好多年轻人都选择外出打工挣钱,南下...
    嘿大圣阅读 222评论 0 0