/**
*
* HemisphereLight类 是在场景中创建半球光,就是天光效果,经常用在室外,将各个位置的物体都照亮,室内的光线大多是方向性的,
* 无论是窗口还是灯槽,用平面光很方便,室外用平面光太麻烦了.HemisphereLight对象的功能函数采用定义构造的函数原型对象来实现.
* TODO: HemisphereLight类型灯光在这个版本内还没有实现阴影.
* Example:
* var light = new THREE.HemisphereLight(0x003388,0xcc0088,1); //创建半球光
* scene.add(light) //添加到场景
* light.position.set(0,300,0);
*/
//<summary>HemisphereLight</summary>
//<param name ="skyColor" type="THREE.Color">半球光的颜色(天光的颜色)</param>
//<param name ="groundColor" type="Number">半球光的地面颜色</param>
//<param name ="intensity" type="Number">灯光的强度,默认是1</param>
//<returns type="HemisphereLight">返回HemisphereLight,半球光.</returns>
THREE.HemisphereLight = function ( skyColor, groundColor, intensity ) { THREE.Light.call( this, skyColor ); //调用Light对象的call方法,将原本属于Light的方法交给当前对象HemisphereLight来使用.
this.position.set( 0, 100, 0 ); //灯光的位置属性初始化为,0,100,0
this.groundColor = new THREE.Color( groundColor ); //半球光的地面颜色
this.intensity = ( intensity !== undefined ) ? intensity : 1; //灯光的颜色属性,如果不指定,初始化为1.
};
/**
****下面是HemisphereLight对象提供的功能函数定义,一部分通过prototype继承自Light方法
**/
THREE.HemisphereLight.prototype = Object.create( THREE.Light.prototype );//HemisphereLight对象从THREE.Light的原型继承所有属性方法 /*clone方法
* clone方法克隆PointLight对象
*/
//<summary>clone</summary>
//<returns type="HemiSphereLight">返回克隆的HemiSphereLight对象</returns>
THREE.HemisphereLight.prototype.clone = function () { var light = new THREE.HemisphereLight();
THREE.Light.prototype.clone.call( this, light ); //调用THREE.Light.clone方法,克隆?光对象
light.groundColor.copy( this.groundColor ); //复制灯光的地面颜色属性
light.intensity = this.intensity; //复制灯光的强度属性.
return light; //返回克隆的半球光的对象 };

  

three.js 源码注释(三十九)Light/HemisphereLight.js 半球光、 自然光(天光效果)的更多相关文章

  1. Vue.js 源码分析(三十) 高级应用 函数式组件 详解

    函数式组件比较特殊,也非常的灵活,它可以根据传入该组件的内容动态的渲染成任意想要的节点,在一些比较复杂的高级组件里用到,比如Vue-router里的<router-view>组件就是一个函 ...

  2. Vue.js 源码分析(二十九) 高级应用 transition-group组件 详解

    对于过度动画如果要同时渲染整个列表时,可以使用transition-group组件. transition-group组件的props和transition组件类似,不同点是transition-gr ...

  3. ABP源码分析三十九:ABP.Hangfire

    ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...

  4. Vue.js 源码分析(三十二) 总结

    第一次写博客,坚持了一个多月时间,Vue源码分析基本分析完了,回过头也看也漏了一些地方,比如双向绑定里的观察者模式,也可以说是订阅者模式,也就是Vue里的Dep.Watcher等这些函数的作用,网上搜 ...

  5. spark 源码分析之十九 -- Stage的提交

    引言 上篇 spark 源码分析之十九 -- DAG的生成和Stage的划分 中,主要介绍了下图中的前两个阶段DAG的构建和Stage的划分. 本篇文章主要剖析,Stage是如何提交的. rdd的依赖 ...

  6. spark 源码分析之十九 -- DAG的生成和Stage的划分

    上篇文章 spark 源码分析之十八 -- Spark存储体系剖析 重点剖析了 Spark的存储体系.从本篇文章开始,剖析Spark作业的调度和计算体系. 在说DAG之前,先简单说一下RDD. 对RD ...

  7. Vue.js 源码分析(二十八) 高级应用 transition组件 详解

    transition组件可以给任何元素和组件添加进入/离开过渡,但只能给单个组件实行过渡效果(多个元素可以用transition-group组件,下一节再讲),调用该内置组件时,可以传入如下特性: n ...

  8. ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  9. Vue.js 源码分析(二十五) 高级应用 插槽 详解

    我们定义一个组件的时候,可以在组件的某个节点内预留一个位置,当父组件调用该组件的时候可以指定该位置具体的内容,这就是插槽的用法,子组件模板可以通过slot标签(插槽)规定对应的内容放置在哪里,比如: ...

  10. Vue.js 源码分析(二十二) 指令篇 v-model指令详解

    Vue.js提供了v-model指令用于双向数据绑定,比如在输入框上使用时,输入的内容会事实映射到绑定的数据上,绑定的数据又可以显示在页面里,数据显示的过程是自动完成的. v-model本质上不过是语 ...

随机推荐

  1. html 定位问题

    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度. scrollLeft:设置或获取位于对 ...

  2. Key-Value-Coding(KVC)

    Objective-C语法之KVC的使用   除了一般的赋值和取值的方法,我们还可以用Key-Value-Coding(KVC)键值编码来访问你要存取的类的属性. 下图来自苹果官网: 如何使用KVC存 ...

  3. 北京市小升初 zz

    发信人: django (牛魔王), 信区: SchoolEstate 标  题: 北京市小升初掐尖方式的演变过程(看后恍然大悟) 发信站: 水木社区 (Thu Feb  4 10:51:23 201 ...

  4. C#如何定义全局变量

    C#中没有全局变量的概念,可以定义一个common类,通过静态变量来存放所有需要的全局变量,调用的时候通过common来调用即可. 例如:  public static class common // ...

  5. tomcat的乱码问题

    String filename=request.getParameter("filename"); filename=new String(filename.getBytes(&q ...

  6. python调用jar包类

    #!/usr/bin/python2.7#coding:utf8import sysimport jpypeimport os.path phone_num = sys.argv[1]#jarpath ...

  7. 通过反汇编理解函数调用机制(x86和ARM)

    如下,一个简单的程序 #include <stdio.h> int add(int a, int b) { return a + b; } void main() { , b = ; in ...

  8. XidianOJ 1112 Too stupid

    题目描述 某天 light由于太富而且太帅遭到了歹徒的袭击,现在他遇到了n个歹徒,准备对light施行不法行为,虽然light身体强壮,但是毕竟只有一个人肯定打不过那么多歹徒,但是高智商的light觉 ...

  9. Ajax readystate 5种状态

    Status 说明 0(Uninitialized) XMLHttpRequest 对象已经创建,但没调用 open 方法. 1(Loading) 调用 open 方法,但没调用 send 方法.(尚 ...

  10. css 中 list-style-image:

    用于设置<a>标签的默认格式的背景图片