Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在读取呈现图像以进行后处理时,WebGLRenderTarget中的阿尔法通道全部为1.0

在读取呈现图像以进行后处理时,WebGLRenderTarget中的阿尔法通道全部为1.0
EN

Stack Overflow用户
提问于 2012-07-01 05:20:14
回答 1查看 1.6K关注 0票数 1

我正在使用Three.js将世界呈现给一个WebGLRenderTarget。我的世界没有充满整个屏幕,因此,有透明的背景。其目的是提供α通道感知的图像效果。

  1. 我将这个世界呈现给一个WebGLRenderTarget缓冲区
  2. 我试图通过从缓冲区读取并写入真正的屏幕来对此进行后期处理。

我的后处理功能取决于alpha通道。然而,看起来Three.JS后处理着色器无法正确读取alpha通道--无论我尝试向WebGLRenderTarget添加什么值,它都是1.0。

演示这个问题的简单方法。

我创建一个呈现目标:

代码语言:javascript
运行
AI代码解释
复制
        var rtParameters = { minFilter: THREE.LinearFilter, magFilter: THREE.LinearFilter, format: THREE.RGBAFormat};

        for(var i=0; i<this.bufferCount; i++) {
            this.buffers[i] = new THREE.WebGLRenderTarget(this.width, this.height, rtParameters);
        }

我将缓冲区设置alpha清除为0.3::

代码语言:javascript
运行
AI代码解释
复制
        function clear(buf) {
            // For debugging purposes we set clear color alpha
            renderer.setClearColor(new THREE.Color(0xff00ff), 0.3);
            renderer.clearTarget(buf, true, true, true);
        }

        // Clean up both buffers for the start
        clear(buffers[0]);

然后,我使用这个缓冲区作为读取缓冲区,并在我的后处理片段着色器函数(ThreeJS后处理示例)中呈现给屏幕:

代码语言:javascript
运行
AI代码解释
复制
            "void main() {",

                    // texture is the buffer I rendered before
                    "vec4 sample = texture2D( texture, vUv);",

                    // Everything goes to white (1.0) when trying to visualize the
                    // alpha channel of previously rendered WebGLTarget.
                    // It should get value 0.3 - slight gray
                    "gl_FragColor = vec4(sample.a, sample.a, sample.a, 1.0);",
            "}"

其他颜色值被正确读取。如果我使用vec4(sample.r, sample.g, sample.b, 1.0),它将按预期直接复制。

  • 是否存在清除WebGLRenderTarget的alpha通道的问题?
  • 对于GLSL着色器中的2D图像后处理,读取WebGLRenderTarget作为纹理的alpha值是否存在问题?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-01 08:12:03

这是一把小提琴,它实现了我相信你正在努力实现的目标。

http://jsfiddle.net/6vK6W/3/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11282303

复制
相关文章
宏与WINDOWS API简单使用
程序的编译过程可以分为预处理、编译、汇编三部分,其中预处理是首先执行的过程,预处理过程扫描程序源代码,对其进行初步的转换,产生新的源代码提供给编译器。 预处理过程读入源代码之后,会检查代码里包含的预处理指令,完成诸如包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码的工作
全栈程序员站长
2022/07/13
8990
使用 MongoRepository 按ID以外字段进行删除操作
根据除 _id 以外的字段进行删除,可以使用自定义的查询方法来实现。可以在自定义的查询方法中使用 MongoDB 的查询语法来指定删除条件,从而根据其他字段进行删除。
翟凤玺
2023/10/19
4330
ABAP 之 选择屏幕MODIF ID 的使用方式
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情
百里丶落云
2022/12/09
1.2K0
ABAP 之 选择屏幕MODIF ID 的使用方式
在 NHibernate 中使用 Snow Flake ID
Snow Flake 是 Twitter 开源的分布式 ID 生成算法,结果是一个 long 型的 ID。其核心思想是:
beginor
2020/08/07
7460
在 NHibernate 中使用 Snow Flake ID
【坚果派】HarmonyOS 以及OpenHarmony中如何选择图片,并显示在桌面上
【坚果派】HarmonyOS 以及OpenHarmony中如何选择图片,并显示在桌面上
徐建国
2023/08/10
5040
【坚果派】HarmonyOS 以及OpenHarmony中如何选择图片,并显示在桌面上
在Unity中使用自定义宏
最近写AVG工具时有这样的功能需求,AVG的角色可以支持动态的Spine动画,当没有Spine动画时采用默认的立绘图片替代。
汐夜koshio
2020/03/19
1.4K0
通过 MongoTemplate 按ID或其他字段删除
翟凤玺
2023/10/19
6780
按权重随机选择(leetcode 528)
给你一个下标从 0 开始的正整数数组 w ,其中 w[i] 代表第 i 个下标的权重。
恋喵大鲤鱼
2022/10/24
9250
习题:if选择结构与宏定义
不少同学看到这个题目会觉得,这不很简单吗,三个if判断都不成立,数值不变,选D呗。当然这个题目没这么简单,只考一个if判断整这么复杂干嘛。
用户6755376
2020/03/19
5430
习题:if选择结构与宏定义
类选择符和ID选择符
类选择符 HTML代码: CSS代码: div { width: 200px; height: 200px; border: 1px solid #000; margin: 20px; } .one{ box-shadow: 5px 5px 3px rgba(0,0,0,.5); } 如果想让网页中某些元素的外观与其他同类标签区分开,可以使用类选择符。 首先给选择符起一个名字,然后把这个名字指定给想装饰的HTML标签。例如上一个例子中,我就给第一个div命名为“one”。 类选择符还能精确控制某个元素的
企鹅号小编
2018/01/29
8630
WIN32API使用“选择颜色”函数
加菲猫的VFP
2023/08/21
2880
WIN32API使用“选择颜色”函数
【CSS】CSS 选择器 ② ( ID 选择器 | 通配符选择器 | CSS 选择器使用注意事项 )
ID 选择器 使用 " #id " 选择 指定的 某一个 标签 , 使用 ID 选择器 步骤如下 :
韩曙亮
2023/03/30
2.9K0
【CSS】CSS 选择器 ② ( ID 选择器 | 通配符选择器 | CSS 选择器使用注意事项 )
在Android设备使用Postern实现按规则切换网络
Postern是一款强大的Android网络工具,除了全局网络功能外,它还提供了网络分流的功能,可以按照规则切换网络,实现灵活的网络访问控制。本文将详细介绍如何在Postern中配置网络分流规则,帮助我们实现按规则切换网络,提升网络访问的灵活性和自由度。
华科云商小彭
2023/09/06
5360
在Android设备使用Postern实现按规则切换网络
如何使用penguinTrace在硬件层面上显示代码运行状况
penguinTrace旨在帮助广大安全研究人员更好地理解程序代码是如何在硬件级别运行的,该工具提供了一种方法,可以查看代码会编译成什么指令,然后单步执行这些指令,查看它们如何影响机器状态,以及如何映射回原始程序中的变量。
FB客服
2022/11/14
1K0
如何使用penguinTrace在硬件层面上显示代码运行状况
在垂直90度的墙面上开
新年新气象,就在新年刚刚到来的时候,迪斯尼研究院和ETH(苏黎世联邦理工学院) 的ASL Lab就携手为我们带来了一个能飞檐走壁的有趣的小家伙。我们先一睹为快。 看到ETH的ASL Lab,读者们一
前朝楚水
2018/04/02
6770
在 Traefik 中使用 Kubernetes Gateway API
Gateway API(之前叫 Service API)是由 SIG-NETWORK 社区管理的开源项目,项目地址:https://gateway-api.sigs.k8s.io/。主要原因是 Ingress 资源对象不能很好的满足网络需求,很多场景下 Ingress 控制器都需要通过定义 annotations 或者 crd 来进行功能扩展,这对于使用标准和支持是非常不利的,新推出的 Gateway API 旨在通过可扩展的面向角色的接口来增强服务网络。
我是阳明
2022/02/11
1.5K0
在 Traefik 中使用 Kubernetes Gateway API
在 PHP 中使用 Google Charts API
利用 Google Chart API 可以制出各种统计图表,当前支持线形图、柱形图、饼形图、散点图、曲线图。Google Charts API Code 页面有对这个 API 使用的详细说明,但是还略显繁琐。今天发现有人开发了一个这个方面的 PHP 类,并且还包括三个例子,我就挑选一个例子结合自己的一个项目给大家讲解下如何使用:
Denis
2023/04/14
1.2K0
在 PHP 中使用 Google Charts API
在restful api模式上使用JWT
在header头里面增加Authorization。在服务端验证的时候回通过取得这个值来验证回话的有效。
友儿
2022/09/11
9180
WCF和ASP.NET Web API在应用上的选择
在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API。作为ASP.NET MVC 4的一部分,ASP.NET Web API这套开源框架的设计目的是简化RESTful服务的开发和使用。 ASP.NET Web API 与之前的内建HTTP服务解决方案的不同之处在于,它一开始就是围绕HTTP协议及其消息语义构建起来的。与WCF REST或ASP.NET AJAX加ASMX相比,它不是对现有框架的增强,而是一个全新的平台。新的ASP.
张善友
2018/01/29
1.5K0
WordPress怎么按分类ID为页面添加相应的class?
WordPress怎么按分类ID为页面添加相应的class?这段代码通过判断WordPress分类ID,自动在分类页面和文章页面的 标签中添加“cat-6-id”例如:
主机教程网2bcd.com
2022/11/03
8430

相似问题

C# 1.0和阿尔法通道中的系统图标检索

13

WebGLRenderTarget图像混叠

13

来自WebGLRenderTarget的纹理未用StereoEffect呈现

11

对呈现的django模板进行后处理

20

无法在OpenGL + SDL2中将阿尔法通道设置为0

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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