three.js 如何简单的实现场景的雾

three.js 如何简单的实现场景的雾

https://threehub.cn/#/codeMirror?navigation=ThreeJS&classify=basic&id=sceneFog
在这里插入图片描述

import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'
import { GUI } from 'three/addons/libs/lil-gui.module.min.js'const box = document.getElementById('box')const scene = new THREE.Scene()const camera = new THREE.PerspectiveCamera(50, box.clientWidth / box.clientHeight, 0.1, 100000)camera.position.set(0, 20, 60)const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true, logarithmicDepthBuffer: true })renderer.setSize(box.clientWidth, box.clientHeight)box.appendChild(renderer.domElement)const controls = new OrbitControls(camera, renderer.domElement)controls.enableDamping = trueanimate()function animate() {requestAnimationFrame(animate)controls.update()renderer.render(scene, camera)}scene.add(new THREE.AmbientLight(0xffffff, 1))const directionalLight = new THREE.DirectionalLight(0xffffff, 1)directionalLight.position.set(0, 100, 0)scene.add(directionalLight)window.onresize = () => {renderer.setSize(box.clientWidth, box.clientHeight)camera.aspect = box.clientWidth / box.clientHeightcamera.updateProjectionMatrix()}new GLTFLoader().load('https://file.threehub.cn/files/model/Fox.glb', (gltf) => {gltf.scene.position.set(0, 0, -500)scene.add(gltf.scene)})new GLTFLoader().load('https://file.threehub.cn/models/glb/foorGround.glb', (gltf) => {const model = gltf.scenemodel.position.z += 60model.position.x -= 200model.scale.set(10, 10, 10)scene.add(model)})function getFog(type, color) {renderer.setClearColor(color || 0xffffff)if (type === 'linear') return new THREE.Fog(color || 0xffffff, 10, 800)else return new THREE.FogExp2(color || 0xffffff, 0.005)}const folder = new GUI()let fogFolder = nullconst fogOption = { type: scene.fog instanceof THREE.FogExp2 ? 'exp2' : 'linear', enable: !!scene.fog }folder.add(fogOption, 'type', ['linear', 'exp2']).name('雾类型').onChange((v) => {scene.fog = getFog(v, scene.fog?.color)setFogFolder(v)})folder.add(fogOption, 'enable').name('启用雾').onChange((v) => {if (v) scene.fog = getFog(fogOption.type)else scene.fog = nullsetFogFolder(fogOption.type)})fogOption.enable && setFogFolder(fogOption.type)function setFogFolder(type) {if (fogFolder) {fogFolder.destroy?.()fogFolder = null}if (!scene.fog) returnfogFolder = folder.addFolder(type + '雾')fogFolder.addColor(scene.fog, 'color').name('颜色').onChange((v) => renderer.setClearColor(v))if (type === 'linear') {fogFolder.add(scene.fog, 'near').name('近点')fogFolder.add(scene.fog, 'far').name('远点')}else fogFolder.add(scene.fog, 'density').name('密度').min(0).max(0.1).step(0.00001)}/*** 名称: 场景雾化* 作者: 优雅永不过时 https://github.com/z2586300277
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8339.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

算法定制LiteAIServer摄像机实时接入分析平台烟火检测算法的主要功能

在现代社会,随着人工智能技术的飞速发展,智能监控系统在公共安全领域的应用日益广泛。其中,烟火检测作为预防火灾的重要手段,其准确性和实时性对于减少火灾损失、保障人民生命财产安全具有重要意义。而算法定制LiteAIServer烟火检…

C++中sizeof运算符的案例分析

分析案例 在网上看到一个关于sizeof疑问的文章&#xff0c;所以就想认真研究下&#xff0c;例子代码如下&#xff1a; #include<iostream> using namespace std; int main(void) {cout << sizeof("123456789") << endl; //10cout << siz…

centos7 部署 Ollama,过程及遇到的问题(上篇)

背景&#xff1a;为了搭建 Dify llama3 实现大模型本地化学习。 材料&#xff1a; 1、centos 7.x 2、网络要通 制作&#xff1a; 1、更新YUM源 1、备份yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下载阿里yum wget -O /e…

openGauss数据库-头歌实验1-5 修改数据库

一、查看表结构与修改表名 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;修改表名&#xff0c;并能顺利查询到修改后表的结构。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.如何查看表的结构&#xff1b; 2.如…

一文学会编写大模型备案安全评估报告「小白也可学会」

文章目录 一、语料安全评估 (一) 评估内容 (二) 评估结论 二、模型安全评估 三、安全措施评估 四、总体结论 适用于不会大模型备案过程中对大模型备案安全评估报告不会如何编写的业务人员。 *图&#xff1a;大模型备案全套素材文件 一、语料安全评估 (一) 评估内容 文本…

Pytest参数详解 — 基于命令行模式!

1、--collect-only 查看在给定的配置下哪些测试用例会被执行 2、-k 使用表达式来指定希望运行的测试用例。如果测试名是唯一的或者多个测试名的前缀或者后缀相同&#xff0c;可以使用表达式来快速定位&#xff0c;例如&#xff1a; 命令行-k参数.png 3、-m 标记&#xff08…

SpringBoot项目集成ONLYOFFICE

ONLYOFFICE 文档8.2版本已发布&#xff1a;PDF 协作编辑、改进界面、性能优化、表格中的 RTL 支持等更新 文章目录 前言ONLYOFFICE 产品简介功能与特点Spring Boot 项目中集成 OnlyOffice1. 环境准备2. 部署OnlyOffice Document Server3. 配置Spring Boot项目4. 实现文档编辑功…

STL之string的使用(超详解)

目录 1. C/C中的字符串 1.1. C语言中的字符串 1.2. C中的字符串 2. string的接口 2.1. string的迭代器 2.1.1begin()与end()函数 2.2.2 rbegin()与rend()函数 2.2. string的初始化与销毁 2.3. string的容量操作 2.3.1 size()&#xff0c;length()&#xff0c;capa…

《JavaEE进阶》----20.<基于Spring图书管理系统(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

Sigrity Power SI 3D-EM Full Wave Extraction模式如何进行S参数提取和观测3D电磁场和远场操作指导(一)

Sigrity Power SI 3D-EM Full Wave Extraction模式如何进行S参数提取和观测3D电磁场和远场操作指导(一) Sigrity Power SI的3D-EM Full Wave Extraction模式是Power SI的3D全波提取工具,相比于2D提取,3D全波提取的结果更为精确,且支持设置跨平面的port,也就是lump port,这…

用Python打造你的《天天酷跑》——从零开始的游戏开发之旅

前言 在快节奏的生活里&#xff0c;偶尔玩一款轻松有趣的小游戏可以很好地放松心情。《天天酷跑》作为一款经典的跑酷游戏&#xff0c;凭借其简单易上手的操作和丰富多彩的关卡设计&#xff0c;深受广大玩家的喜爱。如果你对游戏开发感兴趣&#xff0c;或者想要尝试自己动手制…

泷羽sec学习打卡-shodan扫描4

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于shodan的那些事儿-4 一、shodan4如何查看公网ip&#xff1f;如何查看自己的ip&#xff1f;如何查看出…

深层次识别:书脊图像分割

书脊图像分割系统源码&#xff06;数据集分享 [yolov8-seg-C2f-DAttention&#xff06;yolov8-seg-EfficientHead等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glo…

已有商标证的人注意,留存使用证据!

近日有个网友联系普推知产商标老杨&#xff0c;说商标被撤三已经答辩了一次&#xff0c;但是没有成功&#xff0c;无法证明在指定服务上使用&#xff0c;原商标注册证被作废。 现在好的商标资源有限&#xff0c;在许多申请注册时会通过撤三打掉在先权利&#xff0c;即连续三年不…

Oracle视频基础1.3.7练习

1.3.7 看oracle是否启动构造一个pfile:boobooke.ora看spfilewilson内容修改alert log file里拷贝的参数内容&#xff0c;创建一个pfile boobooke.ora用新创建的pfile启动数据库&#xff0c;并创建新的spfile:spfilebbk.ora启动数据库&#xff0c;监听&#xff0c;看新的进程解…

深度强化学习:从理论到应用

目录 1.引言 2.什么是强化学习&#xff1f; 3.深度学习和强化学习的结合 4.深度强化学习的主要方法 5.深度强化学习的应用领域 6.深度强化学习的挑战与未来 7.总结 1.引言 深度强化学习&#xff08;Deep Reinforcement Learning&#xff0c;DRL&#xff09;是近年来人工…

如何在算家云搭建Hunyuan-DiT(图像生成)

一、Hunyuan-DiT简介 Hunyuan-DiT 是由腾讯混元推出的文生图扩散模型&#xff0c;支持中文和英文双语输入&#xff0c;其他开源模型相比&#xff0c;Hunyuan-DiT 在中文到图像生成方面树立了新的水平。 要求&#xff1a; 所需的最小 GPU 内存为 11GB&#xff0c;建议使用具有…

2024版新鲜出炉:最新大厂 Java 面试八股文合集(附权威答案)

谈到 Java 面试&#xff0c;相信大家第一时间脑子里想到的词肯定是金三银四&#xff0c;金九银十。好像大家的潜意识里做 Java 开发的都得在这个时候才能出去面试&#xff0c;跳槽成功率才高&#xff01;但 LZ 不这么认为&#xff0c;LZ 觉得我们做技术的一生中会遇到很多大大小…

Latex之LNCS模板——使用bib添加参考文献

1、获取参考文献 从谷歌学术中获取bib格式的参考文献。 创建一个.bib文件&#xff0c;将参考文献复制进去。 2、添加参考文献 在文章最后引用.bib格式的参考文献。 \bibliographystyle{splncs04} % 格式 \bibliography{references.bib} % 文件名 LNCS模板中会包含该格式文件…

【考研数学 - 数二题型】考研数学必吃榜(数二)

数学二 suhan, 2024.10 文章目录 数学二一、函数❗1.极限1.1求常见极限1.2求数列极限1.2.1 n项和数列极限1.2.2 n项连乘数列极限1.2.3 递推关系定义的数列极限 1.3确定极限式中的参数1.4无穷小量阶的比较 2.连续2.1判断是否连续&#xff0c;不连续则判断间断点类型2.2证明题 二…