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

一些学习three的小记录

这篇主要用来记录我学习3d渲染相关的疑问记录,后续会持续的更新,如果我的理解不对欢迎评论区更正。

目录

1.WebGLRenderer和WebGPURenderer的区别

1.1 WebGLRenderer

1.2 WebGPURenderer

二、scene.background和renderer.setClearColor有什么区别

三、renderer.setAnimationLoop和requestAnimationFrame的区别

四、renderer.toneMapping的属性区别和使用场景

1.WebGLRenderer和WebGPURenderer的区别

1.1 WebGLRenderer

文档地址:three.js docs

  • 基于WebGL,使用 WebGL API,广泛支持各种浏览器。
  • 成熟稳定,具有广泛的兼容性和社区支持。
  • 性能:虽然性能不错,但在处理复杂场景或高多边形数时可能会有瓶颈;使用纹理压缩、实例化等技术优化性能。
  • 着色器:使用 GLSL 着色器。
  • 适用于需要广泛兼容性的项目
const renderer = new THREE.WebGLRenderer();

1.2 WebGPURenderer

官方文档地址:WebGPU

  • 基于WebGPU,使用WebGPU API,更现代的图形API
  • 浏览器支持有限。
  • 着色器:使用 WGSL 或 SPIR-V 着色器语言,可能需要额外配置。
  • 性能:更高效的资源管理、更低的 CPU 开销。
  • 旨在提供更高的性能和更低的延迟,特别是复杂场景和计算(偏向用于性能要求高的场景中)。
const renderer = new THREE.WebGPURenderer();

二、scene.background和renderer.setClearColor有什么区别

共同点:都可以设置背景颜色。

不同点:

  • 作用范围:background只能影响特定的场景背景,setClearColor设置渲染器清除颜色,影响所有场景
  • 支持类型:background可以设置颜色、纹理;setClearColor只能设置颜色。

三、renderer.setAnimationLoop和requestAnimationFrame的区别

共同点:两个都用于创建动画循环。

不同点:

  • renderer.setAnimationLoop可以自动处理虚拟现实(VR)和增强现实(AR)渲染,简化了动画循环的管理,对于WebXR项目,必须使用此函数
  • requestAnimationFrame是原生js方法,需要手动调用渲染逻辑。

用法如下:

// setAnimationLoop的用法
renderer = new WebGPURenderer({ antialias: true });
renderer.setAnimationLoop(() => {renderer.render(scene, camera);}); // 如果是WebXR必须使用这个// requestAnimationFrame的用法
function animate() {requestAnimationFrame(animate);// 渲染逻辑renderer.render(scene, camera);
}
animate();

四、renderer.toneMapping的属性区别和使用场景

  • THREE.NoToneMapping
    • 描述:不进行色调映射
    • 使用场景:场景不需要任何色调调整
  • THREE.LinearToneMapping:
    • 描述:线性映射,不做特殊处理。
    • 使用场景:简单场景,通常用于调试。
  • THREE.ReinhardToneMapping:
    • 描述:逐渐压缩高亮部分,保持细节
    • 使用场景:游戏和实时渲染,需要平衡高亮和细节。
  • THREE.CineonToneMapping:
    • 描述:模拟胶片的色调映射
    • 使用场景:电影渲染,追求胶片效果。
  • THREE.ACESFilmicToneMapping:
    • 描述:高质量色调映射,模拟电影胶片的宽动态范围。
    • 使用场景:高动态范围(HDR)场景,追求真实感和高质量视觉效果。
  • THREE.AgXToneMapping:
    • 描述:过度暴露的区域提供了更好的颜色处理。尤其是明亮部偏于白色,更接近真实相机。
    • 使用场景:适用于需要表现真实光照效果的场景,比如摄影模拟、游戏中的环境光照效果,细致表现光线变化和阴影的应用场景,如建筑可视化。
  • THREE.NeutralToneMapping:
    • 描述:旨在提供一种中性(平衡)色调映射方式,保持图像的自然色彩和亮度。
    • 使用场景:这种方法提供了一种较为简单的转换方式,能够在不显著改变图像原始色彩的情况下,适当降低亮度。
  • THREE.CustomToneMapping:
    • 描述:允许开发者自定义色调映射的方法。

相关文章:

一些学习three的小记录

这篇主要用来记录我学习3d渲染相关的疑问记录,后续会持续的更新,如果我的理解不对欢迎评论区更正。 目录 1.WebGLRenderer和WebGPURenderer的区别 1.1 WebGLRenderer 1.2 WebGPURenderer 二、scene.background和renderer.setClearColor有什么区别 三、renderer.setAnimat…...

Porcupine - 语音关键词唤醒引擎

文章目录 一、关于 Porcupine特点用例尝试一下 语言支持性能 二、Demo1、Python Demo2、iOS DemoBackgroundService DemoForegroundApp Demo 3、网页 Demo3.1 Vanilla JavaScript 和 HTML3.2 Vue Demos 三、SDK - Python 一、关于 Porcupine Porcupine 是一个高度准确和轻量级…...

Golang | Leetcode Golang题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; func longestPalindrome(s string) int {mp : map[byte]int{}for i : 0; i < len(s); i {mp[s[i]]}res : 0for _, v : range mp {if v&1 1 {res v - 1} else {res v}}if res<len(s) {res}return res }...

【C++】STL数据结构最全函数详解2-向量vector

关于STL&#xff0c;我们之前浅浅提过&#xff1a;这里 另外对于栈&#xff0c;这里有更加详尽的介绍&#xff1a;CSTL常用数据结构1详解---栈&#xff08;stack&#xff09;-CSDN博客 这个系列将会更加深入地从函数原型开始用详细的例子解释用法 首先这一篇介绍的是一个非常…...

阿里云 Quick BI使用介绍

Quick BI使用介绍 文章目录 阿里云 Quick BI使用介绍1. 创建自己的quick bi服务器2. 新建数据源3. 上传文件和 使用4. 开始分析 -选仪表盘5. 提供的图表6. 一个图表的设置使用小结 阿里云 Quick BI使用介绍 Quick BI是一款全场景数据消费式的BI平台&#xff0c;秉承全场景消费…...

LLMs之SuperPrompt:SuperPrompt的简介、使用方法、案例应用之详细攻略

LLMs之SuperPrompt&#xff1a;SuperPrompt的简介、使用方法、案例应用之详细攻略 目录 SuperPrompt的简介 SuperPrompt的使用方法 1、prompt SuperPrompt的案例应用 SuperPrompt的简介 SuperPrompt项目是一个开源项目&#xff0c;旨在通过设计特定的提示词来帮助我们更好…...

Java中的Web服务开发:RESTful API的最佳实践

Java中的Web服务开发&#xff1a;RESTful API的最佳实践 大家好&#xff0c;我是微赚淘客返利系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在现代Web应用开发中&#xff0c;RESTful API是构建可伸缩、易于维护的Web服务的关键。…...

Linux创建虚拟磁盘并分区格式化

快速创建一个虚拟磁盘 你可以通过以下步骤在Linux上虚拟一个磁盘&#xff0c;并将其挂载到 /mnt/ 目录下&#xff1a; 步骤 1: 创建一个虚拟磁盘文件 使用 dd 命令创建一个虚拟磁盘文件&#xff08;例如大小为1GB&#xff09;&#xff1a; dd if/dev/zero of/root/virtual_…...

面试经典150题——最后一个单词的长度

目录 题目链接&#xff1a;58. 最后一个单词的长度 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;反向遍历 Java写法&#xff1a; C写法&#xff1a; 解法二&#xff1a;逆天解法 思路 存在的问题 总结 题目链接&…...

【C++】入门基础(上)

Hi&#xff0c;好久不见&#xff01; 目录 1、C入门小基础 1.1 祖师爷--Bjarne Stroustrup&#xff08;本贾尼斯特劳斯特卢普&#xff09; 1.2 C参考文献 1.3 书籍推荐 2、C的第一个程序 3、命名空间 3.1 namespace的价值 3.2 namespace的定义 3.3 命名空间的使…...

Mac中Twig模版安装与SSTI漏洞学习

感谢大佬的文章参考学习。 SSTI&#xff1a;https://www.cnblogs.com/bmjoker/p/13508538.html Homebrew&#xff1a;快速开始 - Homebrew 中文网 Homebrew安装 一键快捷安装&#xff1a;默认使用中科大的源 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homeb…...

【20.5 python中的FastAPI】

python中的FastAPI FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;基于 Python 3.6 的类型提示。它利用了 Python 3.7 的新特性&#xff0c;如类型提示&#xff08;Type Hints&#xff09;&#xff0c;来自动生成 A…...

研1日记13

正态分布&#xff1a; toTenor&#xff1a;转数字变为0-1 加载模型&#xff1a; model youmodel() model.load("路径") 测试单个样本&#xff1a;...

Go语言错误处理详解

Go语言以其简洁、高效和并发能力著称。在实际开发中&#xff0c;错误处理是一个不可避免且至关重要的部分。本文将深入探讨Go语言中的错误处理机制&#xff0c;涵盖其原理、使用方法、最佳实践&#xff0c;并提供丰富的代码示例和中文注释。 一、错误处理的基本概念 在Go语言…...

C++基础知识7 list

list 1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2.1 模拟实现list 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 l…...

Android 车联网——汽车模块介绍(附1)

汽车模块指的是车辆中独立的电子控制单元(ECUs),如发动机控制单元(ECU)、车身控制模块(BCM)等,它们负责特定的功能或系统。 一、控制类模块 这些模块主要用于控制车辆的不同系统,确保车辆各部分的正常运行。 1、ECM ECM(Electronic Control Module,电子控制模块)…...

Windows下SDL2创建最简单的一个窗口

先看运行效果 再上代码&#xff1a; #include <stdio.h> #include "SDL.h"int main(int argc, char* argv[]) {// 初始化SDL视频子系统if (SDL_Init(SDL_INIT_VIDEO) -1){printf("Error: %s\n", SDL_GetError());return -1;} // 创建一个窗口SDL_…...

C++ | Leetcode C++题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), [](const vector<int>& u, const vector<int>& v) …...

【网络安全】-ssrf服务器请求伪造攻击-burp

SSRF攻击服务器请求伪造攻击 CSRF攻击跨站请求伪造攻击也称客户端请求伪造攻击 两种攻击最主要的区别是一个在服务器&#xff0c;一个在客户端。 文章目录 前言 什么是SSRF攻击? 1.分类&#xff1a; 针对服务器的 SSRF 攻击&#xff1a; 针对后端系统的SSRF攻击&#xff1a; …...

C语言 | Leetcode C语言题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; char * toHex(int num){int i0;char *nums(char*)malloc(sizeof(char)*32);unsigned int newnum(unsigned int)num;if(num0){nums[0]0;nums[1]\0;return nums;}while(newnum>1){int flagnewnum%16;newnum/16;if(flag<9){nums[i]flag0…...

javaweb共享汽车调度管理系统 新能源共享汽车租赁管理系统的设计与实现

目录同行可拿货,招校园代理 ,本人源头供货商功能模块分析技术实现要点新能源特色功能项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块分析 用户管理模块 用户注册、登录、个人…...

Pixel Couplet Gen实操手册:像素春联生成结果自动同步至微信公众号图文素材库

Pixel Couplet Gen实操手册&#xff1a;像素春联生成结果自动同步至微信公众号图文素材库 1. 项目介绍与核心功能 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成工具。通过ModelScope大模型的文本生成能力&#xff0c;结合精心设计的8-bit复古游戏…...

后端消息投递可靠性:基于 RabbitMQ 的“双重防线-幂等闭环”模式

后端消息投递可靠性&#xff1a;基于 RabbitMQ 的“双重防线-幂等闭环”模式 一、 发送核心&#xff1a;rabbitTemplate.convertAndSend 重载全览 在 RabbitMQ 的“中控-工人”模式中&#xff0c;中控&#xff08;生产者&#xff09;发送指令的形式决定了任务的可靠性深度。 1.…...

遇到一个口头机遇的答辩准备2(ai告诉的要点)

代码处理的过程&#xff0c;其实已经不是当时的过程了。算是事后的整理过程吧先来问下CAD二开要点&#xff0c;ai给出了以下十一点&#xff1a;一、核心原则一些操作必须包 Transaction &#xff08;事务&#xff0c;音标&#xff1a;/trnˈzkʃn/&#xff09;增删改图形必须用…...

【APS合集】20余份APS生产排成系统及与其他系统集成方案合集(PPT+WORD)

本方案面向“十五五”构建以约束优化算法为核心的APS智能排程系统&#xff0c;通过集成ERP、MES、SCADA及WMS&#xff0c;实现计划-执行闭环联动。旨在解决人工排产低效、资源冲突频发等痛点&#xff0c;支持分钟级动态重排与交期精准承诺&#xff0c;显著提升设备利用率与订单…...

3步攻克m3u8视频下载:零基础解决方案

3步攻克m3u8视频下载&#xff1a;零基础解决方案 【免费下载链接】m3u8_downloader 项目地址: https://gitcode.com/gh_mirrors/m3/m3u8_downloader 在数字化时代&#xff0c;流媒体内容已成为信息传播的主要形式之一。然而&#xff0c;许多在线视频采用m3u8格式并通过…...

3步解锁图表数据:用计算机视觉将图像转化为结构化数据的实战秘籍

3步解锁图表数据&#xff1a;用计算机视觉将图像转化为结构化数据的实战秘籍 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你是否曾面…...

3大突破!微信聊天记录数据导出与备份终极指南:从困境到掌控

3大突破&#xff01;微信聊天记录数据导出与备份终极指南&#xff1a;从困境到掌控 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 微信聊天记录承载着我们生活与工作中的…...

企微私域工具数据安全与合规:5个必查项

某公司用了半年企微私域工具&#xff0c;突然发现客户手机号被工具厂商用来发营销短信。法务一查&#xff0c;原来是协议里写了“数据可用于优化产品”。选【企微私域工具】&#xff0c;数据安全比功能更重要。今天列出5个必须检查的安全合规点。企微工具选择要把安全放第一位&…...

收藏必备!小白程序员轻松入门大模型,带你理清AI核心概念全框架

AI浪潮已经刮了一年多&#xff0c;身边越来越多人聊AI&#xff0c;张口就是“agent”“skill”&#xff0c;听得人只能点头附和&#xff0c;似懂非懂&#xff1f;其实不是听不懂&#xff0c;而是没有把这些概念串起来&#xff0c;告诉你它们到底是什么、彼此有啥关系。 咱不聊复…...