问题标签 [glblendfunc]

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 回答
88 浏览

glsl - 如何使用 glblendfuc 混合两个图像?

我想在我的着色器中混合两个纹理,所以我在着色器中的代码是这样的:

当我使用

它只在屏幕上显示红色,但是当我使用

它不能显示绿色,它显示黑色,我不知道出了什么问题以及如何解决它......

0 投票
1 回答
1572 浏览

php - 无法将 .GLB 上传到 Wordpress 媒体位置

这不是一个快速的失败,我花了整整 5 天的时间来试图解决这个问题。最初我受到文件大小和文件类型的限制;其中我删除了 Wordpress 的限制,现在“能够”将我的 177MB .glb 文件上传到 Wordpress。

但是,这样做时,我收到以下错误:

昨天我与 GoDaddy 专家通了 2.5 小时的电话,确保这不是服务器问题或他们方面的限制。他们确认不是。我们几乎结束了谈话,这是我必须和我自己、我自己和我自己弄清楚的事情。

我继续通过面板将我的 .glb 上传到服务器,一切正常。事实上,我在这里有一个位置:https ://www.tattiniboots.com/wp-content/uploads/2020/07/retriever.glb

但是,这不会使我通过媒体位置安装在站点上的 3D 查看器插件可以发现该文件。

我真的不知道从这里去哪里

我将文件名更改为 .png 并尝试上传并收到以下错误:

我刚刚尝试更新一个 150MB 的普通 .mov 文件并收到以下错误;真的让我觉得这与文件大小有关:

是的,正常图片上传正常(2MB-ish)

我只是尝试停用所有插件,考虑到可能是“Smush”或另一个强加问题:然后我收到不支持文件类型的问题(即使在我的 wp-config 中使用允许所有文件类型代码)

这只是根本不允许glb的情况吗?

0 投票
1 回答
34 浏览

xamarin.ios - Xamarin IOS Opentk - 具有透明纹理的 BlendFunc

我正在尝试使用 Xamarin 中的 OpenTK 渲染一些具有透明背景的标签纹理。起初标签似乎正确显示(见图 1),但当视图旋转时,某些标签背景不再透明(见图 2)。

启用的 BlendFunc 是 GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha)。

我的问题是,尽管标签的位置如何,我怎么能始终保持标签透明度?顺便说一句,相同的代码和着色器可以在 Android 设备上正常运行。 标签显示正常

标签相互覆盖

0 投票
1 回答
71 浏览

android-studio - Sceneform 加载没有基色纹理的模型

首先,我使用 sceneform 1.5 测试我的模型 .gltf,它看起来非常好:

手机截图

但是当我使用 sceneform 1.17.1 或 1.15 时,gltf 模型的颜色消失了,看起来像这样:

手机截图

我试过 .glb 并没有什么不同。

但我从 Internet 上获得了一些 .glb 模型,它在我的应用程序中运行良好。

我从 3dmax 和 babylon.js 和 blender 导出了我的文件,但它们不工作....有人可以帮帮我吗?

0 投票
2 回答
71 浏览

c++ - OpenGL:混合和反馈效果

我在一个简单的项目上苦苦挣扎,作为一个例子/沙箱,我在我的输出上渲染一个小的振荡矩形。我没有使用glclearcolor()而是在每一帧上我先画一个黑色矩形,然后与glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)混合;

我的目标是在我玩之前帧的这个黑色矩形反馈的 alpha 时看到,慢慢地褪色,某种轨迹,它或多或少是有效的。

不过,我的主要问题是,这条小路永远不会真正消失,而且我试图找到这条小路的时间越长,它变得越糟。另外,在看到任何踪迹之前,我必须完全启动 alpha,我真的不明白为什么。

在此处输入图像描述

0 投票
1 回答
137 浏览

opengl - OpenGL混合 - 用不同的颜色填充交叉点

我在屏幕上渲染了一堆形状(多边形),我没有使用深度测试。我只是希望这些形状在被绘制在空白空间上时使用它们自己的颜色,并且在它们被绘制在任何非空的东西上时成为红色像素,即在我的情况下在另一个多边形上。

这里的问题实际上在于我可以使用的颜色和我可以分配的因素。所以假设我的颜色是任意的,比如 RGBA(0.5, 0.7, 0.3, 1.0)。这意味着当我绘制第一个对象时,这就是最终会出现在帧缓冲区中的内容。

然后我用相同的颜色绘制第二个重叠的对象。但我希望重叠区域为红色(1,0,0,1)。

但是在这里我遇到了问题,因为无论我为混合函数分配什么 sFactor 和 dFactor - 我都无法增加值。

显然,当帧缓冲区中没有任何内容时,我需要以 1 的因子绘制我的原始颜色,而当有某些东西时,我需要使用 0 绘制我的原始颜色。所以第一个因素是简单的选择:GL_ONE_MINUS_DST_ALPHA。

但是对于第二个因素,假设我想将原色 RGBA(0.5, 0.7, 0.3, 1.0) 变成红色 RGBA(1, 0, 0, 1),我显然做不到。因为我的因子被限制在 [0,1],所以我最多可以将结果的红色通道设置为 0.5,而不是更大。我可以通过提供 GL_CONSTANT_COLOR 作为一个因素轻松否定其他 2 个通道,但我不能使任何通道大于原始通道。

或者我可以吗?有没有其他方法可以实现我正在寻找的东西?

编辑/回答:

按照建议,我使用了模板缓冲区,这正是我所需要的。我没有选择为它创建一个单独的帧缓冲区,但只是在相同的情况下工作,因为它对我来说效果更好并且承诺更少的开销。无论如何,这是伪代码:

效果很好!我还包括了我擦除一些渲染图像的部分,以防万一有人需要类似的任务。

一些不直观的点:

  1. glClear(GL_STENCIL_BUFFER_BIT) 实际上使用了 glStencilMask(),因此必须将其设置为 0xFF 才能完全清除。我犯了一个错误,将 clear 调用放在掩码分配之上,所以本质上它保留了上一个渲染周期 0x00 的掩码,并且没有清除模板缓冲区。如果您想用画笔演奏莱昂纳多,这正是您想要的。^_^
  2. glStencilFunc(func , ref, mast) 实际上从直观的角度向后工作。公式是:(ref & mask) func (stencil & mask)。即 glStencilFunc(GL_LESS,1,0xFF); 将丢弃任何大于 1 的片段,因为公式为 (1 & FF) < (stencil & FF),即当 stencil 为 1 和 0 时 - 公式为 FALSE,并且该片段被丢弃。如果模板为 2 及以上,则 1<2 = true,并且保留片段。
0 投票
0 回答
28 浏览

3d - 我有一些 .bob 文件格式的 3d 资产。有什么方法可以打开它们吗?

我有一些 .bob 文件格式的 3d 资产。有什么办法可以打开它们吗?

这些 .bob 文件格式带有纹理贴图和 .bin 文件

0 投票
0 回答
66 浏览

javascript - 如何在threejs中为单个glb文件添加多个纹理

使用搅拌机为 glb 文件添加了三种不同的材质,现在我只需要为一种材质调用纹理图像。如何做到这一点?

0 投票
2 回答
70 浏览

three.js - 如何在 Three.js 中为增强现实中的 gtlf 模型设置动画

Helle,我是 Three.js 的新手,我正在尝试在我的 AR 项目中展示一个动画 gltf/glb 模型。有很多关于如何在 3d 环境中为 gltf 模型制作动画的示例,但我无法让它在我的 AR 项目中工作。

我可以导入 3d 模型并在 AR 中显示它。但模型拒绝动画。

我会很感激一些帮助。

代码+glb文件 https://github.com/weewautersmaxim/arDemo