ThreeJs-06详解灯光与阴影
一.gsap动画库
1.1 基本使用和原理
首先直接npm安装然后导入
比如让一个物体,x轴时间为5s

旋转同理

动画的速度曲线,可以在官网的文档找到

1.2 控制动画属性与方法
当然这里面也有一些方法,动画完成,动画开始等

一些属性


也可实现停止动画随时,给到一个变量

双击暂停以及恢复

二.灯光与阴影详解
添加环境光
这种光一般是用来增亮,他没有阴影效果

平行光:类似于太阳
默认在这个位置朝着原点打光




也可以改变平行光的照射点


创建阴影四部曲


谁产生阴影



注意:物体可以投射阴影,也可以接受阴影,不只是要在平面上接受

2.1 直线光与阴影详细设置
移动球体z轴前后,出了一定范围会被剪切掉

平行光是有范围的

打印这个灯光,可以看到其范围

far是后面,near是前面


现在就比刚才更远一点,到了10的边缘才被截取

此时这个阴影是有锯齿感的

默认是512


2.2 聚光灯
target就是聚光灯打向什么地方


设置好角度之后


如果想设置边缘的光慢慢衰减


衰减的快慢设置

2.3点光源
聚光灯是往一个地方发散,点光源是四面八方


点光源也可以设置距离和衰减情况


三.透明度纹理和阴影
加入给一个物体贴上一个透明度纹理,黑色就是全透明,白色就是不透明

此时透明度有了,但是阴影还是正常的


加上alphatest即可,此时表示大于0.5就是透明,小于0.5就是不透明


此时新的问题贴上贴图后会有条纹的现象
这是由于灯光和阴影形成的一个问题
解决方法
设置灯光阴影的bias

偏移量,让阴影便宜一点点

四.大场景动态级联阴影设置
添加一个相机辅助器把灯光加入进来

可以看到物体在相机范围内有阴影超过就没有阴影

那如果实在一个很大的场景,比如把相机的阴影场景改的很大

会发现阴影出现了锯齿状


那么此时的解决思路就是,分模块分远近来展示阴影
也就是级联阴影
类似于这样,近处的细节就比较细,远处稍微模糊点,因为距离远了也看不太清了

导入

需要的参数,这些都是可以直接复制threejs上面这一个图的官方例子

然后创建级联阴影实例
maxfar表示阴影最大到多远,cascades多少个等级,mode是模式,parent当前级联阴影的父级,mapsize级联阴影的大小,lightdirection灯光的位置

然后把所有需要设置阴影的材质都设置为级联阴影

然后需要一直更新渲染

此时灯管也不再需要投射阴影了交给级联来投射


如果想设置灯光方向

加上软阴影实现一个更柔滑的效果


前面对于灯光阴影的设置也可以不要了

ThreeJs-06详解灯光与阴影的更多相关文章
- 转载 CSS3 经典教程系列:CSS3 盒阴影(box-shadow)详解
目标大纲 文章转载 CSS3 经典教程系列:CSS3 盒阴影(box-shadow)详解 IE中CSS-filter滤镜小知识大全 CSS实现跨浏览器兼容性的盒阴影效果
- ThreeJS系列1_CinematicCameraJS插件详解
ThreeJS系列1_CinematicCameraJS插件详解 接着上篇 ThreeJS系列1_CinematicCameraJS插件介绍 看属性的来龙去脉 看方法作用 通过调整属性查看效果 总结 ...
- Spark详解(06) - SparkSQL
Spark详解(06) - SparkSQL Spark SQL概述 什么是Spark SQL Spark SQL是Spark用于结构化数据(Structured Data)处理的Spark模块. ( ...
- Hive详解(06) - Hive调优实战
Hive详解(06) - Hive调优实战 执行计划(Explain) 基本语法 EXPLAIN [EXTENDED | DEPENDENCY | AUTHORIZATION] query 案例实操 ...
- Hadoop详解(06) - Yarn平台架构和资源调度器
Hadoop详解(06) - Yarn平台架构和资源调度器 Yarn平台架构 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程 ...
- 小甲鱼PE详解之区块描述、对齐值以及RVA详解(PE详解06)
各种区块的描述: 很多朋友喜欢听小甲鱼的PE详解,因为他们觉得课堂上老师讲解的都是略略带过,绕得大家云里雾里~刚好小甲鱼文采也没课堂上的教授讲的那么好,只能以比较通俗的话语来给大家描述~ 通常,区块中 ...
- 常用Oracle分析函数详解 [http://www.cnblogs.com/benio/archive/2011/06/01/2066106.html]
学习步骤:1. 拥有Oracle EBS demo 环境 或者 PROD 环境2. copy以下代码进 PL/SQL3. 配合解释分析结果4. 如果网页有点乱请复制到TXT中查看 /*假设一个经理 ...
- unity灯光烘焙设置详解
游戏场景中灯光照明的构成 现实生活中的光线是有反射.折射.衍射等特性的.对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向. 在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效 ...
- 06 nginx Location详解之精准匹配
一:Location详解之精准匹配 location 语法 location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分, ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
随机推荐
- Go runtime 调度器精讲(十一):总览全局
原创文章,欢迎转载,转载请注明出处,谢谢. 0. 前言 前面用了十讲介绍了 Go runtime 调度器,这一讲结合一些图在总览下 Go runtime 调度器. 1. 状态转换图 首先是 Gorou ...
- 暑假集训CSP提高模拟2
A.活动投票 主元素问题,用摩尔投票 #include<bits/stdc++.h> using namespace std; int n,a=-1,acnt,x; int main(){ ...
- 解决 SHADERed无法打开,报错 缺失XINPUT1_4.DLL 文件的办法
起因: 在给某个不知名的同事安装软件时遇到的一个问题,安装完成后打开软件报错:SHADERed无法打开,报错 缺失XINPUT1_4.DLL ,C++依赖项均已打上,卸载C++插件后依然报错只能找缺失 ...
- 在 Node.js 中使用 ES6 模块 import 和 export
1.Node版本 >= 13 2.使用 ES6 模块 a.js export const A = 'A'; index.js import { A } from './a.js'; consol ...
- initrd&init进程
initrd的全名是 init ramdisk,是一个启动时存在于内存的文件系统. kernal 到 initrd的流程 在GRUB加载kernel时,kernel会先在内存中制造一个rootfs当做 ...
- 2021年9月国产数据库排行榜-墨天轮:达梦奋起直追紧逼OceanBase,openGauss反超PolarDB再升一位
2021年9月国产数据库排行榜已在墨天轮发布,本月参与排名的数据库总数达到了142个. 一.9月国产数据库流行度排行榜前15名 先来看看排行榜前五名,虽然PingCAP的TiDB分数本月下降31.82 ...
- 墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联
分享嘉宾:胡津铭 DolphinDB研发副总监 整理:墨天轮社区 导读 DolphinDB是高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储. ...
- 从url地址获取主机名
function getHost(url) { var host = "null"; if(typeof url == "undefined"|| null = ...
- Win11使用Translucent TB设置Windows导航栏透明失败解决方案
Win11使用Translucent TB设置Windows导航栏透明失败解决方案 Translucent TB下载方式:直接在Windows自带的Microsoft应用商店里面搜索下载就可以了 1. ...
- 混合云下的 Kubernetes 多集群管理与应用部署
本文是上海站 Meetup 中讲师李宇根据其分享内容梳理成的文章 大家好,很高兴来到今天下午的 Meetup.我先简单做个自我介绍,我叫李宇,目前是 KubeSphere 的一名研发,主要负责多集群方 ...