当你朝着太阳光方向拍照就会看到镜头的眩光,为了使场景更加真实我们可以给3D场景添加太阳眩光。

这里我们简单地制作了一个太阳眩光并将它添加到场景中。

添加太阳眩光:

1.renderer需要开启alpha模式

renderer = new THREE.WebGLRenderer({antialias: true,alpha: true});

2.添加一个spotLight光源

var spotLight = new THREE.SpotLight(0xffffff);spotLight.position.set(50, 10, -50);scene.add(spotLight);

3.实例化THREE.LensFlare对象

var lensFlare = new THREE.LensFlare(textureFlare0, 350, 0, THREE.AdditiveBlending, flareColor);

这里添加了多组参数是图形尽量不失真

4.设置THREE.LensFlare和spotLight光源在同一位置

lensFlare.position = spotLight.position;

完整代码:

                      

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>three.js</title></head><body><style>body {margin: 0;overflow: hidden;}</style><script type="text/javascript" src="js/Three/three.js"></script><script>var renderer, scene, camera, light, mesh, cylinder, plane;var spotLight, sphereLightMesh;var invert = 1;var phase = 0;function init() {renderer = new THREE.WebGLRenderer({antialias: true,alpha: true});renderer.setClearColor(0x000000);renderer.setSize(window.innerWidth, window.innerHeight);scene = new THREE.Scene();camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);camera.position.set(-50, 15, 50);camera.lookAt(new THREE.Vector3(10, 10, 10));document.body.appendChild(renderer.domElement);addSun();render();}function addSun() {var spotLight = new THREE.SpotLight(0xffffff);spotLight.position.set(50, 10, -50);scene.add(spotLight);var textureFlare0 = THREE.ImageUtils.loadTexture("img/lensflare0_alpha.png");var textureFlare3 = THREE.ImageUtils.loadTexture("img/lensflare3.png");var flareColor = new THREE.Color(0xffffff);var lensFlare = new THREE.LensFlare(textureFlare0, 350, 0, THREE.AdditiveBlending, flareColor);lensFlare.add(textureFlare3, 60, 0.6, THREE.AdditiveBlending);lensFlare.add(textureFlare3, 70, 0.7, THREE.AdditiveBlending);lensFlare.add(textureFlare3, 120, 0.9, THREE.AdditiveBlending);lensFlare.add(textureFlare3, 70, 1.0, THREE.AdditiveBlending);lensFlare.position = spotLight.position;scene.add(lensFlare);}function render() {requestAnimationFrame(render);renderer.render(scene, camera);}init();</script></body>
</html>

fork me on github blog: https://chenjy1225.github.io/

three.js学习笔记 太阳眩光相关推荐

  1. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

  2. ArcGIS JS 学习笔记4 实现地图联动

    原文:ArcGIS JS 学习笔记4 实现地图联动 1.开篇 守望屁股实在太好玩了,所以最近有点懒,这次就先写个简单的来凑一下数.这次我的模仿目标是天地图的地图联动. 天地的地图联动不仅地图有联动,而 ...

  3. backbone.js学习笔记

    backbone.js学习笔记 之前只接触过jQuery,看来Backbone是除了jQuery的第二大JS框架... backbone到底是个啥? 其实刚开始我也不知道=_=,我是这周二才听说居然还 ...

  4. node.js学习笔记

    # node.js学习笔记标签(空格分隔): node.js---## 一 内置模块学习 ### 1. http 模块 ``` //1 导入http模块 const http =require('ht ...

  5. node.js学习笔记14—微型社交网站

    node.js学习笔记14-微型社交网站 1.功能分析 微博是以用户为中心,因此需要有注册和登录功能. 微博最核心的功能是信息的发表,这个功能包括许多方面,包括:数据库访问,前端显示等. 一个完整的微 ...

  6. WebGL three.js学习笔记 6种类型的纹理介绍及应用

    WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...

  7. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  8. Node.js学习笔记8

    Node.js学习笔记8 HTTP服务器与客户端 Node.js的http模块,封装了一个高效的HTTP服务器和一个简易的HTTP客户端 http.server是一个基于事件的HTTP服务器,核心由N ...

  9. node.js学习笔记5——核心模块1

    node.js学习笔记5--核心模块1 Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端 一: 全局对象 Node. ...

最新文章

  1. CapsLock Enhancement via AutoHotKey
  2. 模块-from import导入所有工具
  3. sublime同步配置和插件
  4. Bootstrap导航条中组件的排列
  5. 链式向前星(一个优秀的存储图的数据结构)
  6. Information Retrieval --- Outline
  7. SURF特征提取分析(一)
  8. [转]BVH文件介绍
  9. ArcGIS 字段计算器保留一位小数和获取字段长度
  10. steam加速_Steam玩家们快看看,追梦加速器的试用体验者怎么说?
  11. JavaWeb实现的超市收银、基于SSM+mysql的 vue便利店收银管理系统实现【文档】【代码过程】
  12. 问题解决:wireshark之npcap无法安装、winpcap无法安装问题解决
  13. 最长回文子串(Longest Palindromic Substring)——三种时间复杂度的解法及LeetCode[5] - 最长回文子串动态规划
  14. ps里面的css,今天来为大家介绍PS中的图层样式
  15. [转]《间架结构92法》
  16. 欧莱雅迎来入华25周年;万代南梦宫集团将启用新logo | 美通企业日报
  17. wpf 监听退出事件_如何监听WPF的WebBrowser控件弹出新窗口的事件
  18. 华为机试 - 统计射击比赛成绩
  19. EverEdit: Windows上国人开发的比Notepad++更优秀的高级文本编辑器
  20. 34604-52-9,Ms-PEG3-Ms甲磺酸基是良好的离去基,也可用作伯醇的保护基

热门文章

  1. html5伪3d游戏探索
  2. TISS 携手知名公链发起“公链成长计划”,共同推动公链应用落地 | TokenInsight...
  3. Linux驱动开发入门
  4. Navicat Cannot conect to MySQL server 10060
  5. 什么是 C/C++?
  6. 主成分分析法(数学建模)教授先生
  7. Forescout宣布任命Rik Ferguson为安全情报副总裁
  8. 软件实施工程师职位大揭密
  9. 2021考研历程总结
  10. 浅谈幼儿园自主游戏中教师的有效介入