问题标签 [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 投票
3 回答
4537 浏览

cocoa-touch - 您可以在其中一个子视图上覆盖父 UIView 的 alpha 值吗?

我有一个有点透明的视图(alpha = 0.6),它有一些子视图。我希望使用 1.0 的 alpha 绘制其中一个子视图(UILabel),因为混合使文本难以阅读,但是通过将其添加为主视图的子视图,它采用了其父视图的 alpha 值。有没有办法覆盖这种行为?我相信我必须将其从子视图中删除,但想问一下,看看我是否遗漏了一些东西。

0 投票
2 回答
1614 浏览

.net - 如何在 .NET 中使用以编程方式设置的 Alpha 通道绘制图像?

这是一个使用 C++/CLI 在 Windows 窗体上的 .NET 应用程序。我有一个 JPEG,我想在我的客户区域中绘制来表示一个对象。在某些情况下——比如当用户拖动对象时——我想用一些透明度来绘制对象。

有哪些可用的方法来做到这一点?

0 投票
1 回答
3379 浏览

c++ - wxWidgets - Alpha 混合

wxWidget 中有没有办法进行 alpha 混合操作,例如将位图的 alpha 与其他位图的 RGB 相乘以生成新图像(例如将照片渲染为抗锯齿圆形)。

0 投票
2 回答
6900 浏览

c# - 透明位图上的抗锯齿文本

我想在透明位图上绘制抗锯齿文本,并将抗锯齿绘制为 alpha 混合像素。这样,我可以将位图绘制到任何颜色表面(或图像,就此而言),并且抗锯齿看起来仍然很好。

这是一个显示问题的简化示例:

结果如下:

替代文字

这样做的最终目标是使用 UpdateLayeredWindow 来绘制我的透明 alpha 混合窗口。我正在创建一个类似 Conky 的应用程序,我希望能够对文本使用 ClearType 渲染(当然,这很容易,无需抗锯齿)。

目前,我抓住表单后面的屏幕,绘制它,然后绘制我的文本。它看起来不错,但必须更新并且绘制速度很慢。任何其他在桌面上完成绘图文本的想法也将受到欢迎。

0 投票
3 回答
1292 浏览

c++ - OpenGL中的交叉淡入淡出场景

我想在 OpenGL 中渲染两个场景,然后从一个场景到第二个场景进行视觉交叉淡入淡出。任何人都可以建议学习如何做到这一点的起点吗?

0 投票
3 回答
3539 浏览

graphics - 如何在 DirectX 中混合具有恒定 alpha 的两个精灵的颜色?

本质上,我想做的(在 DirectX 中)是拍摄两个部分透明的图像并将它们混合在一起。这适用于默认混合,只要它们都显示为重叠等。但是,问题是不透明度在两者相交处显着上升。随着更多精灵重叠,这会导致越来越多的问题。我想做的是保持混合不变,除了为所有这些混合的精灵保持全局不透明度,不管它们如何重叠。

似乎会有一个渲染设置(所有这些精灵在他们的精灵批次中都是单独的,这使得这部分很容易),但如果是这样我不知道。现在我有点在黑暗中拍摄,我尝试了很多不同的东西,但没有一个看起来完全正确。我知道我可能需要某种 D3DBLENDOP 变体,但我只是不知道我真正需要什么样的设置(我已经尝试了很多东西,但现阶段都是猜测)。

这是标准混合实际发生的情况的屏幕截图(我能得到的最好的):http ://arcengames.com/share/FFActual.png这是一个屏幕截图,其中包含我希望如何混合的样机输出(在 Photoshop 中将力场添加到同一层,然后给定一个共享的 alpha 值):http ://arcengames.com/share/FFMockup.png

这就是我在 Photoshop 中的做法: 1. 拍摄两张图像,并移除所有透明度(完全透明的像素除外)。2. 将它们组合成一层,混合颜色但完全没有部分 alpha。3. 现在将该层的全局透明度设置为(比如说)40%。

结果是看起来有点混合在一起的颜色,但重叠部分的不透明度没有增加。

更新:好的,非常感谢下面的 Goz,他建议使用 Z-Buffer。这样可行!总的来说,混合是完美的,正是我想要的。唯一剩下的问题?使用这种新方法,在最后渲染的力场图像边缘周围会出现巨大的伪影。看到这个: http ://www.arcengames.com/share/FFZBuffer.png

更新:以下是 C# (SlimDX) 中的最终解决方案

  1. 每帧将 ZBuffer 清除为黑色、透明或白色都具有相同的效果(这是在调用 BeginScene 之前)

Direct3DWrapper.ClearDevice(SlimDX.Direct3D9.ClearFlags.ZBuffer, Color.Transparent, 0);

  1. 所有其他精灵都在 Z=1 处绘制,并为它们禁用 ZBuffer:

device.SetRenderState(RenderState.ZEnable, ZBufferType.DontUseZBuffer);

  1. 力场精灵在 Z=2 处绘制,启用 ZBuffer 并启用 ZWrite,ZFunc 为 Less:

device.SetRenderState(RenderState.ZEnable, ZBufferType.UseZBuffer); device.SetRenderState(RenderState.ZWriteEnable, true); device.SetRenderState(RenderState.ZFunc, Compare.Less);

  1. 这时候还设置了以下标志,以防止我遇到的黑边神器:

device.SetRenderState(RenderState.AlphaTestEnable, true); device.SetRenderState(RenderState.AlphaFunc, Compare.GreaterEqual); device.SetRenderState(RenderState.AlphaRef, 55);

请注意,AlphaRef 为 55,因为在我使用的特定源图像中设置了 alpha 级别。如果我的源图像具有更高的 alpha 值,那么 AlphaRef 也需要更高。

0 投票
7 回答
46813 浏览

iphone - 根据顶部图像的 alpha/透明度混合两个 uiimage

我正在尝试将背景与前景图像混合,其中前景图像是带有线条的透明图像。

我正在尝试这样做。

但似乎不起作用。

任何建议将不胜感激。

0 投票
5 回答
2282 浏览

opengl - 渲染透明纹理

我有一个纹理,它的某些部分是透明的,我想将其应用到一个对象上,该对象的面是一些不透明的材料(或颜色,如果更简单的话),但最终的对象变得透明。我希望最终对象完全不透明。

这是我的代码:

首先我设置材质:

然后我设置了 VBO

最后我画出物体

我尝试将不同的参数传递给 glBlendFunc() 没有占上风。我在这里上传了源代码:http: //dpaste.com/83559/

更新得到 了这个,但我想要 这个(或者没有纹理这个)。

第二张和第三张图片是用glm制作的。我研究了资源,但由于我对 OpenGL 的了解有限,所以我不太了解。

0 投票
1 回答
297 浏览

python - 是否有用于在 Windows、Mac、Linux 上以透明背景呈现现代 HTML 和 Flash 的 LGPL/Apache/BSD Python 库?

我正在寻找一个合适的 Python 库,也可以访问 DOM。我不介意闪光透明度是否没有延续。PyQT 的许可证与项目不兼容,PySide 还没有跨平台编译。有什么想法吗?

0 投票
3 回答
1714 浏览

opengl - 渲染到纹理时的图像混合问题

这与我的最后一个问题有关。要获取此图像:

http://img252.imageshack.us/img252/623/picture8z.png

  1. 我画了一个白色背景(颜色= (1, 1, 1, 1))。

  2. (1, 0, 0, .8)我使用 color =和 blend function对左上角的两个正方形进行渲染纹理(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA),然后使用 color =(1, 1, 1, 1)和 blend function绘制纹理(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)

  3. (1, 0, 0, .8)我用 color =和 blend function绘制右下角的正方形(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)

根据我的计算,渲染到纹理的方块应该有颜色

所以在白色背景上绘制纹理后,它们应该有颜色

右下角的方块应该有颜色

这应该看起来一样!我的推理错了吗?我的计算错了吗?

无论如何,我的目标是缓存我的一些场景。如何渲染到纹理,然后绘制该纹理,使其等同于仅内联绘制场景?