threejs系列:光源与光照🪀

写在最前

光照是计算机图形学中的一个重要概念,它可以用来模拟现实世界中的光线效果。光照的效果可以影响图形的视觉效果,使其更加逼真和真实。

图形学光照的研究主要集中在以下几个方面:

  • 光源模型:光源模型是用于描述光源的物理模型。常见的光源模型包括点光源模型、聚光灯模型、平行光源模型和环境光源模型。
  • 光照模型:光照模型是用于描述光线与物体相互作用的模型。常见的光照模型包括漫反射模型、镜面反射模型、折射模型和材质模型。
  • 光照算法:光照算法是用于计算光照效果的算法。常见的光照算法包括直接光照算法、间接光照算法和全局光照算法。

光源模型

THREE.AmbientLight 环境光

环境光源是没有原点,没有方向的光源,它公平的给予场景中的每一个物体相同的光亮,也称为全局光照。

假设颜色为 meshColor 的物体不受其他因素影响,且设置光源强度为1,颜色为lightColor的环境光,则物体最终渲染的颜色值为 meshColor * lightColor

js 复制代码
  let light = new AmbientLight(0xFF0000, 1);

  let cube = new Mesh(
    new BoxGeometry(1, 1, 1),
    new MeshStandardMaterial({ color: 0xCCCCCC })
  );

  console.log(new Color(0xFF0000).multiply(new Color(0xCCCCCC)).getHexString());

(可以用吸色盘查看颜色是否和打印的值一样)

THREE.PointLight 点光源

从一个点向各个方向发射的光源,现实生活中例子:灯泡、萤火虫等。

  • color -(可选)一个表示颜色的 Color 的实例、字符串或数字,默认为一个白色(0xffffff)的 Color 对象。
  • intensity -(可选)光照强度。默认值为 1。
  • distance - 光源照射的最大距离。默认值为 0(无限远)。
  • decay - 沿着光照距离的衰退量。默认值为 2。

定位定光的辅助对象 THREE.PointLightHelper

js 复制代码
const pointLightHelper = new THREE.PointLightHelper(pointLight);
scene.add(pointLightHelper);

THREE.SpotLight 聚光灯

光线从一个点沿一个方向射出,随着光线照射的变远,光线圆锥体的尺寸也逐渐增大。现实生活中:手电筒

  • color -(可选)一个表示颜色的 Color 的实例、字符串或数字,默认为一个白色(0xffffff)的 Color 对象。
  • intensity -(可选)光照强度。默认值为 1。
  • distance - 光源照射的最大距离。默认值为 0(无限远)。
  • angle - 光线照射范围的角度。默认值为 Math.PI/3。
  • penumbra - 聚光锥的半影衰减百分比。默认值为 0。
  • decay - 沿着光照距离的衰减量。默认值为 2。

定位定光的辅助对象 THREE.SpotLightHelper

js 复制代码
const spotLightHelper = new THREE.SpotLightHelper(spotLight);
scene.add(spotLightHelper);

THREEJS.DirectionalLight 平行光

从某个角度发出平行且恒定的光强,常用于模拟太阳光。

  • color -(可选)一个表示颜色的 Color 的实例、字符串或数字,默认为一个白色(0xffffff)的 Color 对象。
  • intensity -(可选)光照的强度。默认值为 1。

定位定光的辅助对象 THREE.DirectionalLightHelper

js 复制代码
const helper = new THREE.DirectionalLightHelper( light, 5 ); 
scene.add( helper );
相关推荐
We་ct4 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·数据结构·算法·leetcode·typescript·动态规划·取反
wefly20174 小时前
m3u8live.cn 在线M3U8播放器,免安装高效验流排错
前端·后端·python·音视频·前端开发工具
C澒5 小时前
微前端容器标准化 —— 公共能力篇:通用打印
前端·架构
德育处主任Pro5 小时前
前端元素转图片,dom-to-image-more入门教程
前端·javascript·vue.js
木斯佳5 小时前
前端八股文面经大全:小红书前端一二面OC(下)·(2026-03-17)·面经深度解析
前端·vue3·proxy·八股·响应式
陈天伟教授6 小时前
人工智能应用- 预测新冠病毒传染性:04. 中国:强力措施遏制疫情
前端·人工智能·安全·xss·csrf
zayzy6 小时前
前端八股总结
开发语言·前端·javascript
今天减肥吗6 小时前
前端面试题
开发语言·前端·javascript
Rabbit_QL6 小时前
【前端UI行话】前端 UI 术语速查表
前端·ui·状态模式
小码哥_常6 小时前
一文带你吃透Android BLE蓝牙开发全流程
前端