three.js 源码注释(三十九)Light/HemisphereLight.js 半球光、 自然光(天光效果)
/**
*
* 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 半球光、 自然光(天光效果)的更多相关文章
- Vue.js 源码分析(三十) 高级应用 函数式组件 详解
函数式组件比较特殊,也非常的灵活,它可以根据传入该组件的内容动态的渲染成任意想要的节点,在一些比较复杂的高级组件里用到,比如Vue-router里的<router-view>组件就是一个函 ...
- Vue.js 源码分析(二十九) 高级应用 transition-group组件 详解
对于过度动画如果要同时渲染整个列表时,可以使用transition-group组件. transition-group组件的props和transition组件类似,不同点是transition-gr ...
- ABP源码分析三十九:ABP.Hangfire
ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...
- Vue.js 源码分析(三十二) 总结
第一次写博客,坚持了一个多月时间,Vue源码分析基本分析完了,回过头也看也漏了一些地方,比如双向绑定里的观察者模式,也可以说是订阅者模式,也就是Vue里的Dep.Watcher等这些函数的作用,网上搜 ...
- spark 源码分析之十九 -- Stage的提交
引言 上篇 spark 源码分析之十九 -- DAG的生成和Stage的划分 中,主要介绍了下图中的前两个阶段DAG的构建和Stage的划分. 本篇文章主要剖析,Stage是如何提交的. rdd的依赖 ...
- spark 源码分析之十九 -- DAG的生成和Stage的划分
上篇文章 spark 源码分析之十八 -- Spark存储体系剖析 重点剖析了 Spark的存储体系.从本篇文章开始,剖析Spark作业的调度和计算体系. 在说DAG之前,先简单说一下RDD. 对RD ...
- Vue.js 源码分析(二十八) 高级应用 transition组件 详解
transition组件可以给任何元素和组件添加进入/离开过渡,但只能给单个组件实行过渡效果(多个元素可以用transition-group组件,下一节再讲),调用该内置组件时,可以传入如下特性: n ...
- ABP源码分析三十四:ABP.Web.Mvc
ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...
- Vue.js 源码分析(二十五) 高级应用 插槽 详解
我们定义一个组件的时候,可以在组件的某个节点内预留一个位置,当父组件调用该组件的时候可以指定该位置具体的内容,这就是插槽的用法,子组件模板可以通过slot标签(插槽)规定对应的内容放置在哪里,比如: ...
- Vue.js 源码分析(二十二) 指令篇 v-model指令详解
Vue.js提供了v-model指令用于双向数据绑定,比如在输入框上使用时,输入的内容会事实映射到绑定的数据上,绑定的数据又可以显示在页面里,数据显示的过程是自动完成的. v-model本质上不过是语 ...
随机推荐
- php接收到的json格式不标准,某个字段中的文本包含双引号的处理
$str = '[{"Count":"1789"},{"裁判要旨段原文":"本瑶","案件类型":& ...
- sql 数据量高并发的数据库优化(转)
Mysql 大数据量高并发的数据库优化 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实 ...
- iOS 手写输入法奔溃,替换隐藏键盘方法
{ UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:se ...
- JAVA设计模式之解释器模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个 ...
- power
http://software.intel.com/en-us/articles/power-efficiency-analysis-and-sw-development-recommendation ...
- ubuntu 清除缓存
2013-03-31 10:20 sudo apt-get autoremove //自动卸载不使用的内容 sudo apt-get autoclean //自动清理,但不会删除用于安装而下载的临时文 ...
- 自动化测试selenium+java 第三章
import java.sql.Time;import java.util.concurrent.TimeUnit; import org.junit.BeforeClass;import org.o ...
- c# webform网站图片另存代码
好辛苦生成了二维码,然后要实现点击“保存图片”,弹出选择路径进行保存的效果. look: string qrcodeurl = ""; string username = &quo ...
- Oracle 查询系统所有用户信息
1.查看所有用户:select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统 ...
- mysql——第一次学习记的笔记