Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Three.js中的着色器中的多个缓冲区。WebGL与setRenderTarget而不是renderTarget

Three.js中的着色器中的多个缓冲区。WebGL与setRenderTarget而不是renderTarget
EN

Stack Overflow用户
提问于 2020-09-28 12:09:19
回答 1查看 483关注 0票数 1

我试图了解如何用多个缓冲区在three.js中编写一个着色器,方法是从着色器中转换一个着色器。我找到了这个例子:https://codepen.io/lickedwindows/pen/jGOLJr

但是,当我使用最新版本的Three.js运行它时,会遇到以下错误:

"THREE.WebGLRenderer.render():renderTarget参数已被删除。请使用.setRenderTarget()代替。“"THREE.WebGLRenderer.render():forceClear参数已被删除。请使用.clear()代替。“

我试图改变这种状况,但却想不出怎么做。如何将此代码转换为使用最新版本的three.js编译的正确代码?

基本上,我想在three.js中找到一个用于编写多缓冲着色器的样板

代码语言:javascript
运行
AI代码解释
复制
//Create 2 buffer textures
textureA = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight, { minFilter: THREE.LinearFilter, magFilter: THREE.NearestFilter });
textureB = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight, { minFilter: THREE.LinearFilter, magFilter: THREE.NearestFilter });
EN

回答 1

Stack Overflow用户

发布于 2020-09-28 18:41:47

您的演示程序使用了Three.js r85,这有点过时。到2020年9月,我们有了r120,现在您必须在每次向目标呈现时使用renderer.setRenderTarget(renderT);。您可以在docs:https://threejs.org/docs/#api/en/renderers/WebGLRenderer.setRenderTarget中读到这方面的内容。

这是一种新方法:

代码语言:javascript
运行
AI代码解释
复制
var textureA = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight);
var textureB = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight);
renderer.setRenderTarget(textureA);
renderer.render(scene1, camera1);
renderer.setRenderTarget(textureB);
renderer.render(scene2, camera2);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64108975

复制
相关文章
WebGL中着色器shader的处理方法
WebGL中,所谓的固定渲染管线是不存在的。估计会有人问,什么是固定渲染管线?先来简单说明一下。
acoolgiser
2019/01/17
1.6K0
WebGL 概念和基础入门
本文首发于政采云前端团队博客:WebGL 概念和基础入门 https://www.zoo.team/article/webglabout
政采云前端团队
2021/08/12
4.4K0
快速入门 WebGL
WebGL 是 Web 3D 渲染引擎的基础,它作为非常底层的 API,学习上手难度非常大,这是因为 WebGL 要求的背景知识比较多。而网上的教程一般没有过多介绍直接就介绍 API 开始渲染了,容易让人云里雾里,很容易被劝退,就算学到了 API 使用,也是只懂表面知识,没有了解背后的原理,很容易就忘记了。
羽月
2022/11/11
2.8K0
快速入门 WebGL
3D绘图小帮手WebGL入门与进阶(中)——着色器的基本编程
程序创建完之后,我们需要需要对着色器进行动态控制才能达到我们所需要的功能。(如不知道怎么创建WebGL,可参考上篇文章)。 首先让我来介绍2个变量,我们需要借助这2个变量搭建的桥梁才能使JavaScript与GLSL ES之间进行沟通。 attribute: 用于顶点点着色器(Vertex Shader)传值时使用。 uniform:可用于顶点着色器(Vertex Shader)与片元着色器(Fragment Shader)使用。 将顶点动态化 先在顶点着色器代码中,将对应的vec4的固定值变成变量。 v
京东技术
2018/06/20
1.3K0
Three.js教程(1):初识three.js
今天开始我们进入一个新的世界,那就是3D世界。由于我自己也是刚接触到这块内容,所以如果文章中有问题,请尽快在文章最后的留言板中请指出。本教程有配套代码仓库,请点击https://github.com/KaiOrange/three.js-demo。
kai666666
2020/10/19
23.4K0
Three.js教程(1):初识three.js
WebGL基础笔记
片元着色器(Fragment Shader):顶点之间的轮廓中的所有像素都会经过片元着色器处理。(并行处理)
赤蓝紫
2023/01/02
1.1K0
WebGL基础笔记
什么是WebGL和为什么用Three.js | 《Three.js零基础直通02》
Three.js是一个在浏览器里创造3D内容的 JavaScript库,它让我们能够更加轻松的为网页创建3D体验。
大帅老猿
2022/06/06
2.6K0
什么是WebGL和为什么用Three.js | 《Three.js零基础直通02》
解剖 WebGL & Three.js 工作原理
本文主要介绍了WebGL和Three.js的渲染流程,从加载模型到生成纹理和片元着色器,再到进行矩阵计算和坐标转换,最终完成3D渲染。
万技师
2017/05/03
9.9K2
解剖 WebGL & Three.js 工作原理
three.js 着色器材质之初识着色器
说起three.js,着色器材质总是绕不过的话题,今天郭先生就说一说什么是着色器材质。着色器材质是很需要灵感和数学知识的,可以用简短的代码和绘制出十分丰富的图像,可以说着色器材质是脱离three.js的另一块知识,因此它十分难讲,我们只能在一个一个案例中逐渐掌握着色器语言的使用技巧。
郭先生的博客
2020/08/31
3.2K0
three.js 着色器材质之初识着色器
three.js中帧缓存的使用
在网上查阅了一下three.js关于帧缓存的使用,感觉很多都是关于three.js中后处理通道的使用的。后处理通道确实使用FBO实现的,但其实我就是想获取某个时刻的渲染结果作为纹理,没必要在动态渲染中进行后处理。真正实现这个功能的是WebGLRenderTarget这个类,这是一个渲染目标的缓冲区,可以装载到WebGLRenderer中进行渲染,再从WebGLRenderTarget获取纹理对象。
charlee44
2020/06/22
4.3K0
【WebGL】一次drawcall中绘制多个不同纹理的图形
Demo: http://kenkozheng.github.io/WebGL/multi-texture-in-one-drawcall/index.html
用户1258909
2020/07/27
1.8K0
3D to H5工作流应用手册 [理论篇]
前言 设计师需求中3D视觉平移到互动H5中的项目越来越多,three.js和PBR工作流的结合却一直没有被系统化地整理。 和各位前端神仙一起做项目,也一起磕磕碰碰出了爱与痛的领悟。小小总结,希望3D去往H5的道路天堑变通途。 本手册主要分为两大部分: Part 1 理论篇:主要让设计师了解计算机到底是如何理解和实时渲染我们设计的3D项目,以及three.js材质和预期材质的对应关系。 Part 2 实践篇:基于three.js的实现性,提供场景、材质贴图的制作思路、以及gltf工作流,并动态讨论项目常
腾讯ISUX
2022/01/06
2.7K0
three.js 材质
今天郭先生说一说three.js的材质。材质描述了对象objects的外观。它们的定义方式与渲染器无关, 因此,如果您决定使用不同的渲染器,不必重写材质。
郭先生的博客
2020/08/28
10.1K0
地图开发中WebGL着色器32位浮点数精度损失问题
Javascript API GL是基于WebGL技术打造的3D版地图API,3D化的视野更为自由,交互更加流畅。提供丰富的功能接口,包括点、线、面绘制,自定义图层、个性化样式及绘图、测距工具等,使开发者更加容易的实现产品构思。充分发挥GPU的并行计算能力,同时结合WebWorker多线程技术,大幅度提升了大数据量的渲染性能。最高支持百万级点、线、面绘制,同时可以保持高帧率运行。
腾讯位置服务
2020/05/26
1.7K0
为什么 build 方法放在 State 中而不是在 StatefulWidget 中
为什么 build 方法放在 State 中而不是在 StatefulWidget 中呢?其中前2点是源代码的注释中给出的原因,最后一点是我的一点个人理解。
老孟Flutter
2021/01/28
9880
说下three.js 中的相机
所有的3D编程中都有一个避免不了的话题就是相机,相机就是这样一个抽象,它定义了三维空间到二维屏幕的投影方式,用“照相机”这样一个类比,可以使我们直观地理解这一投影方式。而针对投影方式的不同,照相机又分为正交投影照相机与透视投影照相机。
程序你好
2021/07/23
1.6K0
说下three.js 中的相机
three.js 粒子效果(分别基于 CPU & GPU 实现)
前段时间做了一个基于 CPU 和 GPU 对比的粒子效果丢在学习 WebGL 的 RTX 群里,技术上没有多作讲解,有同学反馈看不太懂 GPU 版本,干脆开一篇文章,重点讲解基于 GPU 开发的版本。
万技师
2017/07/17
10.3K3
three.js 粒子效果(分别基于 CPU & GPU 实现)
rna转录的方向是从5→3吗_转换到ois
http://blog.sina.com.cn/s/articlelist_1747721953_0_1.html
全栈程序员站长
2022/11/03
5430
【前端可视化】 OpenGL / WebGL 入门和实践
OpenGL 是一套规范,不是接口,学习这套规范,就可以在支持 OpenGL 的机器上正常使用这些规范,在显示器上看到绘制的结果。
ConardLi
2019/10/24
4.7K1
第3章-图形处理单元-3.8-像素着色器
在顶点、曲面细分和几何着色器执行它们的操作后,图元被裁剪并设置为光栅化,如前一章所述。管线的这一部分在其处理步骤中相对固定,即不可编程但有些可配置。遍历每个三角形以确定它覆盖哪些像素。光栅化器还可以粗略计算三角形覆盖每个像素的单元格区域(第5.4.2节)。与三角形部分或完全重叠的像素区域称为片元。
charlee44
2022/05/07
2.2K0
第3章-图形处理单元-3.8-像素着色器

相似问题

SpriteBatch绘制到后台缓冲区而不是RenderTarget?

14

Three.js着色器的旋转(WebGL着色器)

10

从webgl中的着色器中更新缓冲区

110

WebGL:从着色器访问缓冲区

12

WebGL/three.js片段着色器-覆盖α-透明纹理与α-透明颜色

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档