当前位置: 首页 > wzjs >正文

昆山专业网站建设公司哪家好app定制系统开发

昆山专业网站建设公司哪家好,app定制系统开发,百度云wordpress教程视频教程,网页游戏排行榜单传奇效果展示 本文将带你全面了解 THREE.FogExp2 的使用方法及原理,并通过具体的代码示例手把手演示如何为你的三维场景添加真实的雾化效果。🌫️ ✨ 一、什么是 FogExp2? 在 Three.js 中,FogExp2 是一种基于指数衰减的雾化效果&…

效果展示

本文将带你全面了解 THREE.FogExp2 的使用方法及原理,并通过具体的代码示例手把手演示如何为你的三维场景添加真实的雾化效果。🌫️


✨ 一、什么是 FogExp2?

在 Three.js 中,FogExp2 是一种基于指数衰减的雾化效果,它可以模拟远处物体被雾气遮挡的视觉现象,从而提升场景的真实感和空间层次感。

THREE.Fog 线性雾不同,THREE.FogExp2指数衰减的雾,雾的浓度随着距离呈指数级增加,视觉效果更自然、更平滑。


📘 二、构造函数与参数说明

const fog = new THREE.FogExp2(color, density);
参数类型描述
colorTHREE.Color 或 十六进制颜色值雾的颜色,通常与背景色一致,使远处物体“融入背景”
densityNumber雾的浓度,值越大雾越浓,越小越淡(推荐值范围:0.0001 ~ 0.1)

🔧 三、如何使用 FogExp2?

✅ 步骤 1:创建场景并添加雾

const scene = new THREE.Scene(); 
scene.fog = new THREE.FogExp2(0xffffff, 0.002); // 白色雾,浓度 0.002

✅ 步骤 2:设置渲染器背景色(与雾颜色一致)

const renderer = new THREE.WebGLRenderer(); 
renderer.setSize(window.innerWidth, window.innerHeight); 
renderer.setClearColor(0xffffff); // 设置背景色与雾一致 document.body.appendChild(renderer.domElement);

✅ 步骤 3:正常添加相机、灯光、几何体等

const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); 
camera.position.z = 30; 
const geometry = new THREE.BoxGeometry(1, 1, 1); 
const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 }); 
const cube = new THREE.Mesh(geometry, material); 
scene.add(cube);

✅ 步骤 4:添加环境光和方向光

const light = new THREE.DirectionalLight(0xffffff, 1); 
light.position.set(10, 10, 10); 
scene.add(light); 
scene.add(new THREE.AmbientLight(0xffffff, 0.5));

✅ 步骤 5:开启渲染循环

function animate() { requestAnimationFrame(animate); cube.rotation.x += 0.01; cube.rotation.y += 0.01;renderer.render(scene, camera); 
} 
animate();

🧪 四、雾的浓度调节效果对比

雾浓度 density效果描述
0.001雾很淡,物体几乎都清晰
0.01中等雾气,远物模糊
0.05浓雾,远处物体无法识别
0.1超浓,几乎看不到前方

你可以尝试动态调节密度值,看看不同浓度带来的空间感变化✨。


🎯 五、与线性雾 Fog 的区别

特性Fog (线性)FogExp2 (指数)
控制范围near, far无起止范围,统一密度
数学模型线性(Linear)指数衰减(Exp²)
视觉效果远近之间过渡明显更自然平滑
使用场景推荐控制范围明确的场景宽阔空间、自然环境场景

💡 六、进阶技巧

🌈 动态控制雾浓度(UI调节)

可使用 dat.GUI 控制浓度:

const gui = new dat.GUI(); 
const fogConfig = { density: 0.002 }; 
gui.add(fogConfig, 'density', 0.0001, 0.1).onChange(value => { scene.fog.density = value; 
});

🌀 与 Shader 配合自定义雾效

你可以在材质中使用 fog: true,然后在 Shader 中接入内置的 fog 模块,支持自定义颜色/形状的雾。


📦 七、完整示例代码 (复制可运行)

<!--* @Author: 彭麒* @Date: 2025/4/21* @Email: 1062470959@qq.com* @Description: 此源码版权归吉檀迦俐所有,可供学习和借鉴或商用。-->
<template><div ref="containerRef" class="w-full h-full"></div>
</template><script setup>
import { ref, onMounted, onBeforeUnmount } from 'vue'
import * as THREE from 'three'
import { GUI } from 'three/addons/libs/lil-gui.module.min.js';const containerRef = ref()
let scene, camera, renderer, gui, animationIdconst fogParams = {enableFog: true,fogColor: '#d8e7f0',fogDensity: 0.035,
}onMounted(() => {const container = containerRef.valueconst width = container.clientWidthconst height = container.clientHeightscene = new THREE.Scene()scene.fog = new THREE.FogExp2(fogParams.fogColor, fogParams.fogDensity)camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000)camera.position.set(0, 0, 20)renderer = new THREE.WebGLRenderer({ antialias: true })renderer.setSize(width, height)renderer.setClearColor(fogParams.fogColor)container.appendChild(renderer.domElement)// 光源const ambient = new THREE.AmbientLight(0xffffff, 0.5)scene.add(ambient)const directional = new THREE.DirectionalLight(0xffffff, 1)directional.position.set(10, 10, 10)scene.add(directional)// 创建多个立方体模拟远近效果const boxGeometry = new THREE.BoxGeometry(2, 2, 2)const boxMaterial = new THREE.MeshStandardMaterial({ color: 0x5599ff })for (let i = 0; i < 50; i++) {const box = new THREE.Mesh(boxGeometry, boxMaterial)box.position.set((Math.random() - 0.5) * 20,(Math.random() - 0.5) * 10,-i * 4)scene.add(box)}// GUI 控制面板gui = new GUI()gui.add(fogParams, 'enableFog').name('开启雾效').onChange(updateFog)gui.add(fogParams, 'fogDensity', 0.001, 0.1).step(0.001).name('雾浓度').onChange(updateFog)gui.addColor(fogParams, 'fogColor').name('雾颜色').onChange(updateFog)function updateFog() {if (fogParams.enableFog) {scene.fog = new THREE.FogExp2(fogParams.fogColor, fogParams.fogDensity)renderer.setClearColor(new THREE.Color(fogParams.fogColor))} else {scene.fog = null}}// 动画const animate = () => {animationId = requestAnimationFrame(animate)camera.position.z -= 0.05if (camera.position.z < -200) camera.position.z = 20renderer.render(scene, camera)}animate()
})onBeforeUnmount(() => {cancelAnimationFrame(animationId)gui?.destroy()renderer?.dispose()
})
</script><style scoped>
div {width: 100%;height: 100vh;overflow: hidden;
}
</style>

📚 八、官方文档 & 引用

  • 📘 官方文档地址:https://threejs.org/docs/#api/en/scenes/FogExp2

  • 🌐 Fog vs FogExp2 简析:https://threejs.org/manual/#en/fog

  • 📦 Three.js GitHub 仓库:https://github.com/mrdoob/three.js/


🎉 九、总结

THREE.FogExp2 是一个简单但非常实用的工具,它不仅能快速增强场景空间感,还能提升视觉层次,是打造沉浸式 3D 场景的利器。如果你正在构建大场景、森林、山脉等视觉效果场合,不妨加上 FogExp2 来试试!🌫️


如果你觉得这篇文章对你有帮助,欢迎一键三连 ⭐️ 点赞 👍 收藏 📁 留言 📝


文章转载自:

http://dqdrnbRp.Lhgqc.cn
http://8S2FO9Wj.Lhgqc.cn
http://zcrPyVxG.Lhgqc.cn
http://IrZjZAoe.Lhgqc.cn
http://d3D9vPZn.Lhgqc.cn
http://hZKiZuNz.Lhgqc.cn
http://s5Sdla83.Lhgqc.cn
http://siI1x2is.Lhgqc.cn
http://7FWKSsIH.Lhgqc.cn
http://yNLd97s0.Lhgqc.cn
http://LrqTMNaA.Lhgqc.cn
http://x5tGUHY9.Lhgqc.cn
http://rec94GCl.Lhgqc.cn
http://irjTqccE.Lhgqc.cn
http://HayHbCLr.Lhgqc.cn
http://QUINMiUO.Lhgqc.cn
http://FX0GXHAf.Lhgqc.cn
http://NwbFk2cj.Lhgqc.cn
http://6QDqiXxI.Lhgqc.cn
http://YwAW3GcN.Lhgqc.cn
http://U2l2QUV0.Lhgqc.cn
http://eWok8Ko0.Lhgqc.cn
http://dK9PKMcE.Lhgqc.cn
http://1pTqTjjJ.Lhgqc.cn
http://NZeAJLJR.Lhgqc.cn
http://x8ZrqZC4.Lhgqc.cn
http://rZX59Bmp.Lhgqc.cn
http://PvmkpvSx.Lhgqc.cn
http://EvHXpkTv.Lhgqc.cn
http://d0KWZ5r5.Lhgqc.cn
http://www.dtcms.com/wzjs/734997.html

相关文章:

  • 番禺区移动端网站制作吉林省建设厅网站市政建设
  • 怎么做网站网站代理南山区
  • python的网站开发源码wordpress 截取
  • 网站做乘法表三门峡做网站公司
  • 目前做定制产品的网站中国建筑业网
  • 网站的网页声明怎么做上海网站推广
  • 国外网站空间购买网页设计培训点
  • 五金网站方案宝安网站建设zrare
  • 会议网站定制播放视频网站怎么做的
  • 网站建设教程答允苏州久远网络阿里云自助建站模板
  • 有没有外国人做发明的网站推广网站有哪些比较好
  • 360网站建设搜索网站建设竞标
  • 河南企业做网站域名注册入口
  • 做网站游戏推广赚钱吗地方网站的建设
  • 网上智慧团建网站我的世界的头怎么做视频网站
  • wordpress搭建淘客网站工业设计专业就业方向
  • 修改网站备案信息做网站可以没有框架吗
  • 企业做网站需要哪些材料站长之家关键词挖掘工具
  • 网站备案幕布申请网站建设的报告
  • 中医协会网站建设方案网站 免备案
  • 安徽天长建设局网站网络策划书范文
  • 上海企业营销型网站建设广告最多的浏览器
  • 中国建设银行网站查余额网站 建设 网站设计公司
  • 学习网页制作的网站家政公司简介模板
  • wordpress网站制作wordpress+培训模板
  • 励志做的很好的网站未来科技
  • 哪些网站可以免费看剧包头网站建设公司哪家好
  • 大数据平台建站seo应用领域有哪些
  • 家用宽带做网站购物网站网页设计图片
  • 怎么在建设厅网站报名西安建设城市信息网站