问题标签 [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.

0 投票
1 回答
1959 浏览

directx - 从 CPU 上的几何着色器读取输出

我正在尝试从使用流输出输出到缓冲区的几何着色器中读取输出。

几何着色器使用的输出缓冲区描述如下:

几何着色器基于单个点创建多个三角形(每个点最多 12 个三角形),如果我正确理解 SDK,我必须创建一个暂存资源,以便从 CPU 上的几何着色器读取输出。

我已经声明了另一个缓冲区资源(这次设置了 STAGING 标志),如下所示:

在应用程序的第一次绘制调用之后,几何着色器完成创建所有三角形并且可以绘制。但是,在第一次绘制调用之后,我希望能够读取几何着色器输出的顶点。

使用缓冲区暂存资源我试图这样做(在第一次绘制调用之后):

这会编译并且在运行时不会给出任何错误。但是,我似乎没有得到任何输出。

几何着色器输出以下内容:

并且 VERTEX_STREAMOUT 声明如下:

我在这里错过了什么吗?

0 投票
4 回答
1218 浏览

macos - GLSL几何着色器是否在OSX下的GMA X3100上工作

我正在尝试使用简单的几何着色器,但是当在带有 GMA X3100 的笔记本电脑上的 Shader Builder 中运行时,它会退回并使用软件渲染。根据这份文件,GMA X3100 确实支持EXT_geometry_shader4.

输入为POINTS,输出为LINE_STRIP

让它在 GPU 上运行需要什么(如果可能的话)

0 投票
2 回答
1939 浏览

opengl - 输入 GL_POINTS 时,几何着色器不执行任何操作

我正在尝试使用几何着色器将点转换为线段(GL_POINTS 到 GL_LINE_STRIP),但没有出现线段。如果我将输入更改为 GL_LINES,并且只是重复顶点,那么我会得到我期望的行为。这是怎么回事?

这是一个演示该行为的完整程序。照原样,我只得到一个黑色的窗口。将 USE_POINTS 设置为 False 让我得到了我期待的旋转迷幻闪烁线。

0 投票
2 回答
313 浏览

opengl - 如果在同一位置有两个具有两种不同颜色的顶点,片段会得到什么颜色?

我有一个关于 OpenGL 渲染管道的问题。

我最近一直在阅读有关 GLSL 几何着色器的理论。我想我确实了解如何发出新几何图形并将颜色分配给新顶点的基础知识。但是,我不确定如果其中一个新顶点的位置与来自顶点着色器的顶点的位置完全相同,那么片段会得到什么颜色。

考虑这个例子:据我所知,我能够使用顶点着色器处理单个顶点。我进行了一些转换并将位置存储在 glPosition 中。此外,还可以为该顶点分配颜色,例如通过将其存储到 glFrontColor。例如,我将其设为红色。如果所有通道都有 32 位,那将是 0xFFFFFFFF'00000000'00000000'00000000,对吧?接下来,涉及几何着色器。我希望我的几何着色器发出一些额外的顶点。其中至少有一个与从顶点着色器传入的原始顶点处于完全相同的位置。但是,它被分配了另一种颜色,例如绿色。那将是 0x00000000'FFFFFFFF'00000000'00000000,对吧?迟早,在处理完每个顶点之后,就会发生光栅化。我认为,两个顶点都被光栅化,因此将成为同一个片段。所以,我们走了。那个特定的片段会变成什么颜色?是否有某种自动混合和片段变黄?或者是红色还是绿色?

这个问题可能很傻。但我只是不清楚这一点,如果有人能为我澄清这一点,我将不胜感激。

如果没有混合(我假设),我怎么可能创建混合效果?

0 投票
2 回答
1946 浏览

cocoa - OpenGL 几何着色器 Mac OS X

我正在尝试简单地通过几何着色器在 Mac OS X 10.6 下工作。代码编译和链接没有问题,但由于某种原因,没有几何图形被绘制到屏幕上。这是我的着色器代码:

如果有人可以提供帮助,我将不胜感激。

0 投票
1 回答
3793 浏览

opengl - 使用几何着色器进行实例化

所以我想画很多四边形(甚至立方体),偶然发现了这个可爱的东西,叫做几何着色器。

我现在有点明白它是如何工作的,我可能会操纵它为顶点缓冲区中的每个顶点绘制一个立方体,但我不确定这是否是正确的方法。几何着色器发生在顶点着色器和片段着色器之间,因此它作用于屏幕空间中的顶点。但我需要它们在世界空间中进行转换。

那么,是否可以让我的顶点着色器简单地将输入通过管道传输到几何着色器,并在创建图元后让几何着色器乘以 modelviewproj 矩阵?统一着色器架构应该没问题,但是让顶点着色器变得多余我还是觉得恶心。

有替代品吗?或者这真的是“正确”的做法吗?

0 投票
1 回答
389 浏览

graphics - 几何着色器执行次数?

因此,为每个顶点执行一个顶点着色器,为每个片段执行一个片段着色器(对吗?)。

几何着色器执行多少次?

0 投票
1 回答
3035 浏览

opengl - 将变量从几何着色器传递到片段着色器

我有一个 GLSL 几何着色器,如下所示:

但是,当我尝试在片段着色器中访问“测试”时,我的应用程序崩溃了。这是我的片段着色器:

有人可以帮我将一个变量从几何体传递到片段着色器吗?varying中已弃用#version 150

0 投票
1 回答
1529 浏览

hlsl - 几何着色器无法在 DirectX10 HLSL 中编译

我一直在尝试编写几何着色器以生成广告牌系统,如 Frank Luna 的《DirectX 3D 游戏编程简介》一书中所述。我将着色器插入到我的技术中,如下所示:

但是,这会给出错误 1>D3DEffectCompiler:错误:在技术渲染中找不到有效的 VertexShader-GeometryShader 组合,通过 P3。

VS 和 GS 的结构如下所示:

它们应该相同吗?

0 投票
1 回答
3505 浏览

opengl - 点的直通几何着色器

我在为点编写简单的直通几何着色器时遇到了一些问题。我想它应该是这样的:

当我没有指定几何着色器时,屏幕上显示了一堆点,但是当我尝试将此着色器链接到我的着色器程序时,没有显示任何点,也没有报告错误。

我正在使用 C# 和 OpenTK,但我认为这不是问题所在。

编辑:人们要求使用其他着色器,尽管我确实在没有使用几何着色器的情况下测试了这些着色器,并且在没有几何着色器的情况下它们工作得很好。

顶点着色器:

片段着色器: