stencil-buffer相关内容

使用 SpriteBatch 时的 LibGDX 模板缓冲区

这是我之前的问题和帖子的延续,参见这里.感谢我在那里收到的答案,我觉得我能够更接近我的目标,以及进一步学习 OpenGL,但在弄清楚使用模板缓冲区的基础知识后不久,我遇到了一个问题. 似乎当我将精灵绘制到模板缓冲区时,它会绘制整个正方形区域,而不是像我无知地希望的那样仅绘制不完全透明的像素.我隐约明白为什么会这样,但我不确定解决方案在哪里.我已经对模板本身进行了很多试验,并且我修改了 spr ..
发布时间:2022-01-12 17:35:41 Java开发

使用 OpenGL ES 2.0 进行模板制作

我正在尝试找出一种方法来切出背景纹理的某个区域,以便某个自定义图案不会在该背景的屏幕上呈现.例如: 这个正方形可以是任何图案.我正在使用 Frame Buffer Object 和 Stencil Buffer 来实现这种效果.代码如下: fbo.begin();//禁用 ColorMask 和 DepthMask 以便所有渲染都在 Stencil Buffer 上完成Gdx.gl20.g ..

在 arcore 中的 3d 对象上使用模板蒙版的问题

我正在使用 hello ar java 演示在 3d 对象上使用模板蒙版,但是我遇到了一些意外行为.我的模板蒙版正确地遮挡了平面渲染器,但 3d 对象(andy)似乎没有按预期做出反应.相反,他似乎被翻转了,如图所示.我不知道如何解决这个问题.附件是做模板屏蔽的代码片段 模板图像在平面缓冲区上正常工作但在 3d 模型上失败 GLES20.glClear ( GLES20.GL_STE ..
发布时间:2021-11-17 03:31:53 移动开发

WebGL 中有没有办法快速反转模板缓冲区?

我使用的是 WebGL 1.0.我在模板缓冲区中画了一个圆圈,现在我想多次使用这个模板缓冲区而不清除它.我第一次使用它时,我启用了模板测试: gl.enable(GL.STENCIL_TEST); 然后,我将绘图执行到颜色缓冲区.在此之后,在以后的某个日期,我想再次绘制,但这次我想剪辑到模板缓冲区中内容的反.我知道我可以再次绘制到模板缓冲区,但是由于我没有使用 gl.stencilOp(GL. ..
发布时间:2021-09-23 18:37:58 其他开发

webgl 绘图顺序,模板缓冲区

我正在阅读 learningwebgl.com,但令我困惑的是它绘制了我作为最后一个元素绑定的第一个缓冲区? http://jsfiddle.net/Cx8gG/1/ 红色三角形绿色广场蓝色方块 我希望只看到蓝色方块,因为其他一切都被透支了,输出似乎是相反的顺序? 我还阅读了有关模板缓冲区的内容,所以我尝试做的是创建一个蒙版(红色),然后蓝色方块上应该有一个绿色三角形. 面具 ..
发布时间:2021-09-23 18:37:45 其他开发

在iO中使用Open GL 1.0模板缓冲区进行掩膜的问题

我一直在努力寻找在iO上使用OPEN GL 1.0中的模板缓冲区进行简单遮罩的解决方案. 我先绘制背景,然后使用glPushMatrix在其上绘制一个框架,该框架是使用drawFrame绘制的. 我的框架由VideoFrameTexture组成,我尝试使用模板缓冲区使用maskTexture进行遮罩.我的目标是仅将videoFrameTexture的一部分(由我的蒙版的白色区域定义,并 ..
发布时间:2020-07-10 01:26:50 移动开发

在Arcore中的3D对象上使用模版遮罩的问题

我正在使用hello ar java演示在3d对象上使用模板遮罩,但是我遇到了一些意外行为.我的模板遮罩正确遮挡了平面渲染器,但是3d对象(andy)似乎没有预期的反应.相反,他似乎如图所示被翻转了.我不确定如何解决此问题.附件为进行模板遮罩的代码段 模具图像在平面缓冲区上正常工作,但在3D模型上失败 GLES20.glClear ( GLES20.GL_STENCIL_BUFFER_ ..
发布时间:2020-07-10 01:26:46 移动开发

WebGL中的模板缓冲区

如何为我最简单的程序使用模板缓冲? 我已经阅读了许多不同的主题,但是没有找到详细的指南. 我想在创建的四面体的每一侧切出孔. 请逐步向我说明使用模板缓冲区吗? 我的程序链接 解决方案 要使用模板缓冲区,您必须在创建webgl上下文时首先请求它 const gl = someCanvasElement.getContext('webgl', {stencil: true}) ..
发布时间:2020-07-10 01:25:43 前端开发

如何在OpenGL-ES 2.0中创建带有纹理(图像)的模板缓冲区

我可以在OpenGL 2.0中准备带有纹理(图像)的模具吗? 这样,图像的某些部分将是透明的,因此将按原样传输 到模板缓冲区,然后将使用此模板缓冲区进行进一步绘制. 由datenwolf编辑,以说明答案中OP的问题更新: 通过@InfiniteLoop: @datenwolf非常感谢您的答复,但没有成功:(这是我的代码 - (void)render { [EAG ..
发布时间:2020-05-21 00:43:47 其他开发

OpenGL Stenciling,将ref与写入的值分开?

以下代码设置模板测试以查看ref是否大于模板缓冲区中的存储值,如果大于,它将把ref写入模板缓冲区 unsigned int ref = 42; glStencilFunc(GL_GREATER, ref, 0xFF); glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); 问题是,尽管我确实想针对ref测试模板缓冲区,但我不想对它进行 write ref ..
发布时间:2020-05-20 23:53:17 C/C++开发

opengl模具缓冲区-不太正常

当前正在绘制背景,然后将透明三角形绘制到模板缓冲区中,然后绘制蓝色正方形(未绘制三角形).我希望效果是一个蓝色的正方形,上面有一个三角形的孔,露出背景.但是我得到的只是在其他所有物体上绘制的黑色三角形.我认为即时通讯在正方形上获得了预期的效果,但模具也被应用到了背景上. 我的问题是如何调整以下代码以允许背景通过正方形的三角形孔显示? static void Draw(void) { g ..
发布时间:2020-05-20 23:09:00 其他开发

早期模版剔除

基于模版测试,我正在努力使早期的碎片剔除工作. 我的场景如下:我有一个片段着色器,可以完成很多工作,但是在渲染场景时只需要在很少的片段上运行.这些碎片几乎可以放在屏幕上的任何位置(我不能用剪刀快速过滤掉这些碎片). 在渲染过程1中,我生成了一个带有两个可能值的模板缓冲区.值对于传递2具有以下含义: 0:什么都不做 1:可以继续(例如,输入片段着色器并进行渲染) 第2遍使场景正确 ..
发布时间:2020-05-20 22:56:21 其他开发

在OpenGL中更新模具缓冲区时的问题

在Mac上的OpenGL中使用模版测试进行绘图时,我遇到了问题.当我第一次绘制场景时,模具工作正常.我在中间绘制了一个半透明的黑色矩形,启用了对模板缓冲区的写操作,然后在较大的蓝色矩形中禁用了对模板缓冲区的写操作.第一次弹出窗口时,我得到正确的结果,如下所示: 但是,当我调整窗口大小并再次调用渲染函数时,我得到的结果如下: 有时候,奇怪的白色空间跟随中间的矩形,其他时候,白色在看似随机 ..
发布时间:2020-05-20 22:13:42 C/C++开发

根据模板操作,遮罩如何影响模板值?

OpenGL参考pdf(OpenGL 3.3和4.5规范)中的文档对于应用蒙版时存储的模具值会发生什么不太清楚. 在示例中,如果我有以下遮罩: glStencilMask( 0x06); 并存储在模板缓冲区中已经有该值: 0x06 如果模具操作为GL_INCR_WRAP 在该像素上正确调用StencilOp时会发生什么? 基本上我有面具: 0000011 ..
发布时间:2020-05-20 22:10:45 其他开发

OpenGL模具-排除透明像素

我有想要使用模板缓冲区用作蒙版的纹理: 然后我想在屏幕上绘制图像IMG,该图像应仅在可见上述图像(有颜色)的地方出现,从而排除顶部边缘上方和渐变以下的透明像素. 问题是,每当我在屏幕上绘制图像IMG时,它都会出现在绘制图像的任何地方,无论像素是否透明. 所以我考虑过使用ALPHA_TEST,但是它在最新的OpenGL版本中已经消失了,所以我试图在片段着色器中使用v_color.a ..
发布时间:2020-05-06 04:28:36 其他开发