问题标签 [blending]
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.
opengl - OpenGL 混合:相同的透明对象
我在一个 OpenGL 项目中。
我有一些由相同透明材料(例如 alpha = 0.2)制成的对象(仅说 2 个)。两个物体相交。
如何使交叉部分看起来与其他部分相同(没有边框,没有不同的颜色),所以太对象看起来像一个?
c# - 如何进行 Direct3D Alpha 混合
我正在尝试在混合平行六面体容器内显示几个 3D 对象。得到的结果并不令人满意。
第一个数字似乎是正确的 https://picasaweb.google.com/lh/photo/QabTkrf2zyIMP0UEuZvmTdMTjNZETYmyPJy0liipFm0?feat=directlink
第二个是错误的 https://picasaweb.google.com/lh/photo/JqnZqeTuomNLqDR5vhizadMTjNZETYmyPJy0liipFm0?feat=directlink
我将托管 Directx 与 C# 一起使用
初始化:
在渲染函数中,第一步是在对象内部绘制,第二步是绘制混合边框。
在绘制第二个之前,我将 cullmode 从 CounterClockwise 切换到 None
回转
我怎样才能解决显示的问题?
iphone - OpneGL ES 2.0 中的地球日/夜侧着色器
我有一个模拟地球的 iPhone 应用程序!我想让它变得逼真:有一个球体对象,以及 Nightside 和 Dayside 纹理和着色器,但它不起作用!
我的 Sphere 对象的绘制方法:
我的 ViewController 调用方法:
混合模式:0:glBlendFunc(GL_SRC_COLOR, GL_DST_COLOR); 1: glBlendFunc(GL_ONE, GL_CONSTANT_COLOR); //常量是中间蓝色,为了让它更亮一点
夜间碎片着色器:
DaySide 片段着色器:
如果我使用唯一的一个着色器,它看起来很好,但它不会一起工作!
opengl - 使用混合和 alpha 测试渲染两个纹理
我正在寻找的是以下内容......我在方形图像上有一个圆圈,角落的alpha为0
http://dl.dropbox.com/u/1401029/circle.png
还有一个方形阴影,其他地方的 alpha 为 0
http://dl.dropbox.com/u/1401029/image.png
好吧,我希望最终结果是这两个渲染的混合,加上阴影没有被渲染到圆圈之外
我怎么能做到这一点?:)
编辑:这是我到目前为止的代码(t2 圆圈,t1 阴影)
但到目前为止它不起作用,阴影完全呈现在圆圈上,我错在哪里?
opengl - GLSL 着色器:混合、原始特定行为和丢弃顶点
标准:我正在使用带有着色器 (GLSL) 的 OpenGL,并尝试使用现代技术(例如,尝试远离已弃用的概念)。
我的问题,在一个非常笼统的意义上——更多细节见下文——如下:
- 着色器是否允许您进行自定义混合以帮助消除使用 GL_BLEND 时发现的 z 顺序透明度问题?
- 有没有办法让着色器知道正在绘制什么类型的图元而无需“手动”传递某种标志?
- 着色器有没有办法“忽略”或“丢弃”顶点(尤其是在绘制点时)?
背景:我的应用程序在正交投影中绘制与线相连的点(顶点在投影中具有不同的深度)。我最近才开始在项目中使用着色器(试图摆脱已弃用的概念)。我了解标准混合在 alpha 测试和深度测试方面存在排序问题:基本上,如果首先绘制较高 z 级别的“半透明”像素(因此与已在较低 z 级别的该像素绘制的任何颜色混合),然后在该像素处绘制一个不透明对象,但在较低的 z 级别上,深度测试可防止更改已经为“较高”z 级别绘制的像素,从而导致混合问题。为了克服这个问题,您需要先绘制不透明的项目,然后按 z 升序绘制半透明的项目。
此外,为了速度和方便,我将每个顶点的信息(以及几个统一变量)传递给着色器,它们使用这些信息来查找需要特别注意的顶点子集。如果不在应用程序本身中执行一组类似的逻辑(并减慢速度),我无法先验地知道那是什么验证子集。因此,我将所有顶点发送到着色器。但是,当我绘制“点”时,我希望着色器忽略所有不在它确定的子集中的顶点。我想我可以通过将 alpha 设置为零并在 GL 上下文中使用 alpha 函数来获得效果,这将防止绘制任何 alpha 小于 0.01 的东西。然而,有没有更好或更“正确”的 glsl 方式让着色器说“忽略这个顶点”?
opengl - 使用 alpha 测试渲染纹理并将其与颜色和背后的场景混合
我想渲染这张图片(白色的 alpha = 0)
在将其与颜色混合的正方形(实际上是四边形,但我猜这并不重要)上,应在整个表面上执行混合,这也是纹理的 alpha 等于零的地方。
然后结果应该在打开场景时混合
我怎样才能做到这一点?
我显然不想要所有代码,只是关键部分,比如混合功能(我想)
c++ - 在 OpenGL 中将 3 个图层与背景混合
实现以下效果的 glBlendfunc() 参数是什么:
0) 背景,不透明。
1)first_layer,只有一种颜色。
2)半透明球体,与first_layer混合但不与背景混合......
编辑
以下是我希望展示我想要实现的效果的效果图。
ios - 任何人在打开 OpenGLES2 和 MultiSampling 的 iOS 4.3.3 上遇到过奇怪的 alpha 混合错误?
我在 iOS 4.3.3 上使用 OpenGLES2 启用了多重采样支持,渲染结果很糟糕,好像颜色是 RGB565,而不是 ARGB8888。
问题是,要么关闭多重采样,要么将相同的 ipa 部署到 iOS 5 设备(这表明我确实正确打开了多重采样),不会出现问题,除了关闭多重采样会使其非常难看(这也表示多样本确实适用于大多数情况)。
测试用例很简单,只是用正射投影方式渲染一个贴有纹理的四边形,纹理的颜色格式是RGBA8888。
以前有人遇到过同样的问题吗?这是Apple SDK的错误吗?
顺便说一句,我使用的 SDK 是 Xcode 4.3.2 附带的,ios 部署目标设置为 4.0
html - 在 WebGL 中与 HTML 背景混合
我正在将平面颜色和纹理绘制到 WebGL 画布中。我的颜色和纹理具有不同的 alpha 值,我希望它们能够正确混合。我想要透明背景(它们应该与位于画布下的 HTML 内容混合)。
在 WebGL 中,我使用
当 HTML 背景为黑色时,它可以正常工作。但是当我将 JPG 图案设置为 的背景时,我绘制黑色三角形 (alpha=1) 和白色三角形 (alpha=0.5),我可以在三角形相交的地方看到背景图案。这是正确的行为吗?
ios - OpenGL中的平滑颜色混合
当一个顶点的纹理与另一个顶点合并时,我试图实现以下混合:
这是我目前拥有的:
我已启用混合并将混合功能指定为:
我可以看到在paper app中绘制的图像是由一个小圆圈组成的,前后融合了相同的纹理,并且对颜色和alpha有一些混合效果。
如何达到预期的效果?
更新:
我认为正在发生的是两个纹理的相交区域正在修改 alpha 通道(添加或其他一些自定义函数),而纹理没有在相交区域中绘制。该区域的其余部分绘制了其余的纹理。像这样:
不过,我并不完全确定如何达到这个结果。