问题标签 [alphablending]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
470 浏览

iphone - 用于 iPhone 混合的 OpenGL ES 不起作用

一般来说,我是 3D 图形的初学者,我正在尝试为 iPhone 制作 3D 游戏,更具体地说,是使用包含透明度的纹理。我能够将纹理(一个 8 位 .png 文件)加载到 OpenGL 中并将其映射到一个正方形(由三角形条带制成),但是当我在模拟器中运行应用程序时,图像的透明部分不透明 - 它们采用背景颜色,无论设置为什么,但较远的图像模糊。由于我是新用户,因此无法发布屏幕截图,因此对此我深表歉意。我会尝试以其他方式上传和链接。

更烦人的是,当我将图像加载到 Apple 的 GLSprite 示例代码中时,它完全按照我的意愿工作。我已将 GLSprite 的 setupView 中的代码复制到我的项目中,但它仍然无法正常工作。

我正在使用混合功能:

我的印象是这对于我想做的事情是正确的。

我在这里缺少一些非常基本的东西吗?任何帮助将不胜感激,因为我将在几周内将其作为课程项目提交,并且非常希望它能够正常工作。

0 投票
4 回答
3750 浏览

iphone - OpenGL ES (iPhone) alpha 混合看起来很奇怪

我正在用 Opengl ES 为 iPhone 编写游戏,但遇到了 alpha 混合问题:

我正在使用glBlendFunc(Gl.GL_SRC_ALPHA, Gl.GL_ONE_MINUS_SRC_ALPHA)实现 alpha 混合并尝试用几个“层”组成一个场景,这样我就可以单独移动它们而不是拥有静态图像。我在 Photoshop 中创建了一个预览,然后尝试在 iphone 中实现相同的结果,但是当我将纹理与半透明区域混合时会显示黑色光晕。

我附上了一张图片。左边是iphone的截图,右边是我在photoshop中构图时的样子。该图像由渐变和带有羽化边缘的沙子图像组成。

这是预期的行为吗?有什么办法可以避免黑边?

谢谢。

编辑:我正在上传包含沙子的 png 部分。完整的 png 为 512x512 并且还有其他图像。

我正在使用以下代码加载图像:


替代文字 替代文字

0 投票
1 回答
1144 浏览

android - Android OpenGL - 三角形带中三角形的ES alpha透明度不同?

我有一个非常奇怪的问题,希望很容易解决。

我正在绘制一个四边形作为三角形条带。它只是在条带中有 2 个三角形,我对其应用了一个包含 Alpha 通道的纹理。

对于其中一个三角形,alpha 似乎很好,并且完全符合我的要求,但是对于第一个三角形,它看起来好像 alpha 是 1.0 或 0.0,而不是正确的中间值。

这可能是什么原因造成的?我是否正确地认为这是问题所在?我将附上一张图片,以便人们明白我的意思:

阿尔法问题

奇怪的是,这是从 1 个纹理绘制的三角形数组,所以我不确定如何更改设置或以某种方式影响纹理。我想也许三角形是以不同的旋转方式绘制的,但它们都是逆时针方向的。

代码明智地绘制如下:

所以说实话,我有点难过。

编辑:再看一下,就好像其中一个三角形被纹理化了两次,所以 alpha 显然加起来了,它得到了更多的应用。这可能意味着我的三角带做错了。我像这样制作条带(开始手写检查..):

不知怎的,我在那里做错了什么,我只是看不到它。

0 投票
2 回答
812 浏览

graphics - 在 DirectX 9 中为正确的 alpha 混合排序多边形?

对多边形进行排序以使其正确混合的正确方法是什么?我认为的基本概念是先将最远的多边形按顺序渲染回最近的多边形。但是相交多边形的情况呢?

0 投票
1 回答
2838 浏览

opengl - openGL 中的层、深度和混合问题

我需要以分层方式将一些纹理叠加到视频上(即第一个纹理应该出现在下面,当它们都是半透明时,第二个纹理应该出现等)。纹理都有不同的 Z 值,所以那里不应该有冲突。图片讲了一千个字,所以我在下面附上了一个:

替代文字 如您所见,箭头是半透明的,彼此交叉。然而,只有蓝色和红色箭头似乎相互作用。为了论证,假设红色箭头的 az(在这种情况下为垂直)值为 4,蓝色为 6,白色为 10。我使用的混合功能是: gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); 并且GL_DEPTH_TEST已启用。我正在寻找与红色和蓝色纹理相同的所有叠加纹理。即,您可以看到白色箭头下方的红色箭头,并且在较暗的 2 个红色箭头交叉处显示较深的红色。谁能指出我正确的方向?

编辑:下面是用于为每个帧渲染设置 openGL 的代码。

0 投票
1 回答
2082 浏览

opengl-es - 为什么 OpenGL 混合在 HTC Desire 上不起作用?

有谁知道如何在 HTC Desire 上启用 OpenGL (android) 中的混合。我正在尝试绘制彩色三角形并使用颜色缓冲区的 alpha 值将它们与背景(或另一个三角形)混合。

它既适用于模拟器(2.1),也适用于 htc hero 2.1,但不适用于我对 2.2 的渴望。英雄和导致这种情况的欲望之间是否存在一些硬件差异?

代码的主要内容是(不按顺序):

PS。如果有人需要,我可以提供更多代码...

0 投票
2 回答
109 浏览

iphone - iPhone如何绘制控制器?

我是 iPhone 开发的新手,现在遇到一个问题:

我想在大图像上添加一个小热点,只是想出了一个想法,即我可以在该区域添加一个按钮,设置 alpha 0 来隐藏按钮。不幸的是,手机不再响应点击事件。相反,如果我增加 alpha,我可以毫无问题地接收点击事件。所以我想知道iPhone在屏幕上绘制控制器的顺序是什么。是不是因为我将按钮的alpha设置得太低了,所以我的背景图片是在按钮之后绘制的,所以点击事件被背景图片拦截了?

任何提示将不胜感激。谢谢大家!

最好的祝福。

0 投票
1 回答
988 浏览

algorithm - 不透明度涂抹工具

我一直在尝试为我一直在开发的图像编辑应用程序创建一个涂抹工具。我在网上找到了各种涂抹算法的资源,但没有一个考虑到使用透明背景。

我无法“拾取并粘贴”背景样本,因为渲染它不会将透明度涂抹在颜色中,就像您在 GIMP 和 Photoshop 中的涂抹工具上发现的那样。

如何涂抹透明度和颜色?

0 投票
1 回答
798 浏览

xna - XNA中的Photoshop混合数学

有一个很棒的页面,其中包含一些用于 Photoshop 中混合模式的 c 代码。我想要的是在我的 XNA 应用程序中使用其中一些模式。特别是叠加、色调和饱和度。您认为仅使用 XNA 混合函数和混合枚举是否可行,或者我需要为这些效果创建一个着色器?

这是 Photoshop 混合模式数学的链接:http: //www.nathanm.com/photoshop-blending-math/

0 投票
3 回答
333 浏览

c - 计算两种颜色的“平均值”

这仅与编程相关 - 与颜色及其表示还有更多工作要做。

我正在开发一个非常低级的应用程序。我在内存中有一个字节数组。那些是字符。它们使用抗锯齿渲染:它们的值从 0 到 255,0 表示完全透明,255 表示完全不透明(如果您愿意,可以使用 alpha)。

我在构思渲染这种字体的算法时遇到了麻烦。我正在为每个像素执行以下操作:

如您所见,结果并不理想。这是一个非常放大的图像,在 1:1 的比例下,看起来文本有一个绿色的“光环”。

测试,不太好

任何关于如何正确计算它的想法将不胜感激。

谢谢你的时间!