Threejs-12、场景的线性雾和指数雾

1、创建场景雾

//创建场景雾
scene.fog = new THREE.Fog(0x999999,0.1,50);

2、创建场景指数雾

scene.fog = new THREE.FogExp2(0x999999,0.05);

3、 设置场景背景颜色

scene.background = new THREE.Color(0x999999);

完整代码

<script setup>
// 导入threejs
import * as THREE from "three"
// 引入轨道控制器
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
// 引入lil.gui
import { GUI } from "three/examples/jsm/libs/lil-gui.module.min.js";
//导入hdr加载器
import{ RGBELoader} from "three/examples/jsm/loaders/RGBELoader.js"
// 创建场景
const scene = new THREE.Scene();
//创建相机
const camera = new THREE.PerspectiveCamera(
    800,// 视角
    window.innerWidth / window.innerHeight,
    0.1, // 近平面
    1000  // 远平面
);
// 创建渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth,window.innerHeight);
document.body.appendChild(renderer.domElement);
//设置相机位置
camera.position.x=5;
camera.position.y=5;
camera.position.z=5;
//相机默认看向远点
camera.lookAt(0,0,0);
// 添加世界坐标辅助器
const axesHelper =  new THREE.AxesHelper(100);
scene.add(axesHelper);
// 添加轨道控制器
const controls = new OrbitControls(camera,renderer.domElement);
// 设置带阻尼的惯性
controls.enableDamping=true;
// 设置阻尼系数
controls.dampingFactor = 0.05;
// 设置自动旋转
//controls.autoRotate = true;
//渲染函数
function animate(){
    controls.update();
    requestAnimationFrame(animate);
    renderer.render(scene,camera);
}
animate();
// 监听窗口变化
window.addEventListener("resize",()=>{
  camera.aspect = window.innerWidth / window.innerHeight;
  //   更新摄像机的投影矩阵
  camera.updateProjectionMatrix();
  //   更新渲染器
  renderer.setSize(window.innerWidth, window.innerHeight);
  //   设置渲染器的像素比
  renderer.setPixelRatio(window.devicePixelRatio);
})
// 创建GUI
const gui =  new GUI();
// 创建长方体
const boxGeometry = new THREE.BoxGeometry(1,1,100);
// 创建长方体材质
const boxMaterial = new THREE.MeshBasicMaterial({
  color:0x00ff00,
})
const box = new THREE.Mesh(boxGeometry,boxMaterial);
scene.add(box);
//创建场景雾
//scene.fog = new THREE.Fog(0x999999,0.1,50);
// 创建场景指数雾
scene.fog = new THREE.FogExp2(0x999999,0.05);
// 设置场景背景颜色
scene.background = new THREE.Color(0x999999);
</script>
<template>
  <div></div>
</template>
<style >
*{
  margin: 0;
  padding: 0;
}
canvas{
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
}
</style>

效果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

string类小贴士:让你的C++字符串处理更高效

目录 ​编辑 一、为什么要学习string类 1.1 C语言中的字符串 1.2 面试题 &#x1f333;字符串相加https://leetcode.cn/problems/add-strings/description/ 二、标准库中的string类 2.1 string类 2.2 string类的常用接口说明 1. string类对象的常见构造 2. string类对…

精准定位,智慧提纯:高级数据提取策略

在数据驱动的时代&#xff0c;高级数据提取策略成为企业决策、科学研究以及各类项目成功的关键。数据提取&#xff0c;不仅仅是简单地收集信息&#xff0c;而是需要精准定位目标数据&#xff0c;并通过智慧提纯方法&#xff0c;从海量数据中提取出有价值、有深度的信息。本文将…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据

【WEB前端2024】3D智体编程&#xff1a;乔布斯3D纪念馆-第40课-实时订阅后端数据 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…

程序员要学会偷懒--excel转建表语句

如下需求&#xff1a;一个复杂的统战系统&#xff0c;用户信息字段总共有26个sheet&#xff0c;54张小表&#xff0c;没有什么复杂的业务逻辑&#xff0c;纯增删改查。字段目测在1000个以上。建表54张。领导交待了一句这周末完成&#xff0c;我&#xff1f;&#xff1f;&#x…

【数组】【快慢双指针】删除有序数组中的重复项+移除元素+删除有序数组中的重复项II

今天趁热打铁&#xff0c;接着刷了几道标签是【数组】的题&#xff0c;基本都是双指针就能解决。 1、删除有序数组中的重复项 该题对应力扣网址 class Solution { public:int removeDuplicates(vector<int>& nums) {int i,j;int count 0;int n nums.size();nums.…

vue3+ Element-Plus 点击勾选框往input中动态添加多个tag

实现效果&#xff1a; template&#xff1a; <!--产品白名单--><div class"con-item" v-if"current 0"><el-form-item label"平台名称"><div class"contaion" click"onclick"><!-- 生成的标签 …

下载NVIDIA官网的培训视频,生成中文字幕和PPT

下载NVIDIA官网的培训视频,生成中文字幕和PPT 一.[视频网站](https://www.nvidia.cn/on-demand/session/gtc24-s62129/)二.如何获取视频的原始链接三.下载视频的脚本【生成output.mp4】四.安装whisper环境【语音识别生成英文字幕】五.下载whisper模型六.生成英文字幕【输出merg…

解决微调后的模型导入ollama后出现”胡言乱语“情况

解决微调后的模型导入ollama后出现”胡言乱语“情况 先说结论&#xff0c;出现该问题的原因主要是因为Modelfile文件没有配置好。 这个是ModelFile文件的配置&#xff0c;第一行的from为要用的模型地址。 # sets the temperature to 1 [higher is more creative, lower is mo…

陪诊小程序开发,陪诊师在线接单

近几年&#xff0c;陪诊师成为了一个新兴行业&#xff0c;在科技时代中&#xff0c;陪诊小程序作为互联网下的产物&#xff0c;为陪诊市场带来了更多的便利。 当下生活压力大&#xff0c;老龄化逐渐严重&#xff0c;年轻人很难做到陪同家属看病。此外&#xff0c;就诊中出现了…

Vue3项目中Pinia使用详解

开篇 本文的目的是创建一个使用typescript的vue3项目&#xff0c;并使用pinia来管理状态。 详细步骤 创建项目 创建vue3项目&#xff0c;并使用vite作为打包工具 npm create vitelatest vue3_pinia // 选择vue,随后选择typesript进入项目&#xff0c;并按照依赖包 cd vue3_…

植物大战僵尸(杂交版)最新版V2.1来袭!

【新手指导】最新版v2.1来袭 1.闪退怎么办&#xff1f; 答:窗口模式可以解决大部分问题。输入法转换成英文也可以。最后一种办法管理员运行&#xff0c;再后台可运行&#xff0c;即便不是窗口也不会闪退&#xff0c;亲测有效 2.哪里下载&#xff1f; 答&#xff1a;夸克网盘htt…

OrangePi AIpro测评:性能、应用与开发者体验解析

一、OrangePi AIpro介绍 OrangePi AIpro(8T)采用昇腾AI技术路线&#xff0c;具体为4核64位处理器AI处理器&#xff0c;集成图形处理器&#xff0c;支持8TOPS AI算力&#xff0c;拥有8GB/16GB LPDDR4X&#xff0c;可以外接32GB/64GB/128GB/256GB eMMC模块&#xff0c;支持双4K高…

学习ZYNQ——使用IP核

文章目录 [TOC](文章目录) 前言一、新建Vivado工程二、使用IP核1.加载IP2.查看IP核3.应用IP核 三、添加源文件1.led.v2.约束文件pin_led.xdc 四、综合、运行程序 前言 加载前面使用HLS生成的IP核&#xff0c;实现LED灯的闪烁&#xff0c;熟悉整套流程的步骤&#xff1a; 前一篇…

关于对pagination.js源代码进行修改且引入项目使用

实现效果 使用定时器对组件进行每秒请求&#xff0c;每过固定时间之后&#xff0c;进行下一页项目请求&#xff0c;进行到最后一页请求的时候返回第一页。 首先引入js插件 <script src"./js/pagination.js" type"text/javascript"></script>…

NAND flash测试-雷龙发展

文章目录 一、简介 二、速度测试 最近比较忙&#xff0c;也一直没空发什么文章&#xff0c;这算是新年第一篇吧&#xff0c;正好最近收到了一个雷龙的flash芯片&#xff0c;先拿来玩一下吧。 有兴趣的小伙伴可以去雷龙官网找小姐姐领取一个免费试用。 一、简介 大概样子就是上面…

大模型企业落地:汽车行业知识大模型应用

前言 在当今这个信息爆炸的时代&#xff0c;知识管理成为了企业提升核心竞争力的关键。特别是在汽车行业这样一个技术密集、信息量庞大的领域&#xff0c;如何高效管理和利用知识资源&#xff0c;成为了每个企业必须面对的挑战。 汽车行业的知识管理痛点 汽车行业作为现代工…

RCD负载箱:电力系统的安全保障

在电力系统中&#xff0c;负载箱是一种重要的设备&#xff0c;它的主要功能是模拟实际的电力负载&#xff0c;以便对电力系统进行各种性能测试和分析。RCD负载箱一种特殊类型的负载箱&#xff0c;它具有剩余电流保护功能&#xff0c;可以有效地防止电气火灾和电击事故的发生&am…

基于Spring Boot的智能分析平台

项目介绍&#xff1a; 智能分析平台实现了用户导入需要分析的原始数据集后&#xff0c;利用AI自动生成可视化图表和分析结论&#xff0c;改善了传统BI系统需要用户具备相关数据分析技能的问题。该项目使用到的技术是SSMSpring Boot、redis、rabbitMq、mysql等。在项目中&#…

工业 UI 风格,展现独特魅力

工业 UI 风格&#xff0c;展现独特魅力