问题标签 [geometry-shader]
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 - GLSL 几何着色器和投影矩阵
因此,到目前为止,我认为 GLSL 几何着色器在输入顶点由投影/模型视图矩阵转换后工作。换句话说,几何着色器在剪辑坐标上处理事物。
如果我要使用几何着色器将 GL_POINTS 转换为例如由 GL_POINTS 制成的立方体GL_TRIANGLES
怎么办?在剪辑坐标上计算事物时,生成的形状似乎总是面向您/忽略旋转/缩放等。
此外,似乎GL_TRIANGLES
不支持将其作为可能的几何输出类型之一。但无论如何我都试过了,它似乎奏效了。我想这取决于视频卡?如果GL_TRIANGLES
不支持,是否可以制作立方体?在空格之间制作零宽度三角形条可能?
glsl - GLSL 几何着色器和通用顶点属性
所以我已经尝试了一段时间,将一个顶点属性数组传递给几何着色器。它是一个浮点数组(每个顶点的属性只是一个浮点值)
现在,当我把它放在几何着色器中时:
着色器编译器抱怨:
我该如何准确地传递它?
另外,这是我放置顶点属性的代码:
难道我做错了什么?
opengl - 在几何着色器中使用 gl_ClipDistance
我正在尝试gl_ClipDistance
在几何着色器中使用,但我无法让它工作。我的着色器在变换反馈记录中运行,我想根据 4 个剪切平面切割三角形。
我阅读了 GLSL 语言规范并试图找到一个完整的例子(没有找到)。这是我的着色器的样子(缩短):
在我开始转换反馈之前,我设置了:
我的planeDistance()
返回正负距离取决于顶点位于哪一侧。我什至尝试将负值写入某些 . gl_ClipDistance[c]
,但它不会剪辑任何内容。
我究竟做错了什么?
opengl - 为什么 OpenGL 不从我的几何着色器中裁剪部分位于查看体积之外的图元?
http://www.opengl.org/wiki/Rendering_Pipeline_Overview说在几何着色器运行之后和片段被光栅化之前,“位于观察体内部和外部之间边界上的图元被分成几个图元”。我读过的关于 OpenGL 的所有其他内容也以同样的方式描述了裁剪过程。但是,通过将片段着色器中的 gl_FragDepth 设置为比生成它的三角形上的点的实际深度更接近相机的值(以便片段通过深度测试,而如果我复制固定 -管道功能),我发现即使它部分与远视平面重叠,也会为整个原始三角形生成片段。另一方面,如果所有顶点都在平面后面,
这里发生了什么?我的几何着色器是否替换了一些默认功能?是否有我需要设置的标志/提示或需要写入的其他内置变量,以便渲染管道的下一步知道如何进行部分剪辑?
我在 NVIDIA GeForce 9400M 上使用带有 GL_EXT_geometry_shader4 扩展的 GLSL 1.2 版。
glsl - GLSL几何着色器:迭代整个网格
我的目标是根据顶点的顺序为顶点着色
编辑:长期目标:访问前后顶点以模拟重力行为
我使用了以下代码
但是所有顶点都被绘制为黑色,似乎我总是被评估为 0,我错过了什么或做错了吗?
编辑:解决了元问题:如何将所有模型几何图形输入单个几何着色器调用,因此主循环遍历所有顶点,而不是每个三角形。
directx - 使用 HLSL 几何着色器对二十面体进行多重细分
目前我正在使用以下几何着色器细分一个二十面体:
但是,我想指定细分级别。是否有可能使用输出的顶点再次调用着色器,还是我需要遵循其他方法?
opengl - 几何着色器 GLSL 中的可变输出基元计数
我想在我的几何着色器中做这样的事情:
但是我在编译时出错:
并且着色器不会编译。
我可以理解,如果该变量在每次着色器运行时都会发生变化,那么内存管理可能太难了,但在这里它会在单次绘图调用中保持不变,因为制服是不变的。如果我在着色器中定义一些整数常量并将其用作 max_vertices 计数,它也会失败:
产生同样的错误。那么有没有办法做到这一点,或者我只需在该调用中输入一个数字,否则它不会编译。如果是第二种情况,我如何确保不会超过在主进程中查询的最大输出数:
编辑:对不起,我忘了提到我正在使用 ATI/AMD,并且 Catalyst 版本是 2010.1105.19.41785(这是我尝试过的最稳定的版本......)
opengl - GLSL 1.5 简单几何着色器
我正在尝试编写一个简单的几何着色器,它在尝试修改内容之前只通过顶点。
我的顶点着色器是
我的几何着色器是
我的片段着色器是
如果没有链接几何着色器,一切正常。但是,当我在几何着色器中链接时,它会停止工作。我错过了什么?我的几何着色器是否需要vertexColor
来自我的顶点着色器的输入,如果需要,那是如何完成的?
opengl - 无法通过几何着色器工作
我有一个带有点的 VBO,我可以使用顶点和片段着色器进行渲染,但是当我添加一个通过几何着色器时,我什么也看不到。我正在使用 MRT 进行发光,但在此示例中我没有触摸它。
从我在其他帖子上看到的情况来看,将值从一个阶段传递到另一个阶段可能存在问题,因此我删除了所有变量,但它仍然不起作用。
我在链接后设置了程序参数 - 希望没关系。
任何想法为什么禁用几何着色器会产生白色粒子,但启用它却什么也没显示?
顶点着色器:
片段着色器:
几何着色器:
设置参数(程序链接后,程序为resources.particleprogram)
c++ - 粒子系统是否应该在几何着色器中完全更新
粒子系统应该在几何着色器中完全更新,还是应该向几何着色器传递位置和生命等的更新数据。目前我更新几何中的所有内容,但我不确定这是否是最好的主意,以防 C++ 中需要一些数据。