问题标签 [cg]

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

shader - 你能把Cg推多远?

经验丰富的着色器开发人员告诉我,虽然 Cg 非常适合简单着色器,但建议直接为高级着色器执行 GLSL/HLSL,因为生成的着色器代码中存在错误。

使用 Cg 的具体限制和/或已知问题是什么......是否有某些事情它不能做,或者它是一个尝试和看看的情况......使用 Cg 直到出现问题?

0 投票
2 回答
4529 浏览

shader - 如何修改/置换 Cg 片段着色器中的像素位置?

是否可以使用 Cg 修改片段(像素)着色器中的像素坐标?我确信这样的功能在第 2 代/第 3​​ 代着色器中可用,但我不知道究竟是什么配置文件,或者如何做到这一点。

0 投票
3 回答
1020 浏览

opengl - Cg 顶点着色器的坐标输出

这里的文章说:

将 x、y 和 z 除以 w 即可完成此操作。生成的坐标称为标准化设备坐标。现在所有可见的几何数据都位于一个立方体中,其位置在 OpenGL 中的 <-1, -1, -1> 和 <1, 1, 1> 之间,以及 <-1, -1, 0> 和 <1, 1 之间, 1> 在 Direct3D 中。

这对于出于某种特定原因想要测试 Z 坐标的跨平台着色器提出了问题。无论平台如何,有没有办法在同一范围内获得 Z 坐标?

0 投票
1 回答
494 浏览

opengl - 如何使用 OpenGL 获得 Cg 着色器的统一位置?

我以前使用 GLSL 方式涉足过基本的着色器编程。现在我回到它,使用 Cg 着色器。按照Josh Beam 网站上的教程,我已经实现了所需的功能,能够改变我的着色器,但是我无法在 OpenGL 端操作其中的制服。

完美运行。如果我尝试这样做::glGetUniformLocationARB(handle, pUniformName),我会收到 GL_INVALID_VALUE 错误。在创建着色器之后和绑定之后都尝试这样做,以获得相同的结果。正如不同的消息来源所建议的那样,我也尝试过::glUseProgramObjectARB(handle),但这也不起作用,并且似乎属于 GLSL 方式(Lighthouse3D 教程)。

我已经仔细检查了制服名称是否正确。

我还找到了一种方法(NeHe 教程),它涉及#include-ing Cg 标头和调用 cg API。这不能使用 OpenGL API-s 吗?(这样做的原因是极简主义;我想让这个功能成为静态库的一部分,我全力以赴最小化编译/链接依赖项的数量。)

0 投票
0 回答
162 浏览

iphone - 关闭贝塞尔路径

我正在向 UIBezierPath 添加许多小块的线条和曲线。但是无法确定接下来要添加哪个元素。最后,Path 是一条没有中断的封闭路径。

现在我想为 BezierPath 上的对象设置动画。它有效,但有一个问题。因为在动画过程中,我无法确定动画对象在路径上跳跃的路径旁边添加了哪个片段。

有没有办法创建路径以使动画不会在其上跳跃?

非常感谢。

0 投票
1 回答
601 浏览

shader - nVidia的Cg死了吗?

我喜欢 Cg,但它现在似乎比 GLSL/HLSL 落后了很长一段路——例如,只支持片段和顶点着色器。

它是仍在开发中还是已被放弃——在这种情况下,是否不再有编写独立于 GPU 的着色器的方法?

0 投票
0 回答
1496 浏览

opengl - 从 Cg 写入深度缓冲区,然后从 OpenGL 读取它

我想用 cg 创建一个阴影贴图。我编写了一个 opengl 程序和 2 个像素着色器(带有 2 个顶点着色器)。在第一个像素着色器中,我编写了 DEPTH 寄存器,并在 OpenGL 程序中将其读取到纹理中。在第二个像素着色器中,我想从这个纹理中读取,但它似乎只包含 0 个值。两个着色器中都有另一个纹理,我不知道那辆货车是否有问题,但我不这么认为。

第一个着色器是这样的:

在 OpenGL 程序中,我为深度组件创建了一个纹理:

启用 GL_DEPTH_TEST,然后在显示对象后:

然后在第二个着色器中:

我得到的只是全黑屏。我尝试了各种各样的事情,我得出了这样的结论,这似乎是我的

仅包含 0 个值。因为如果我将深度的值例如更改为 0.2,那么它就可以工作,所以我认为问题出在从 z 缓冲区读取,或者读取阴影贴图的纹理。那么如何将 z-buffer 的内容保存到 opengl 中的纹理中呢?

0 投票
1 回答
375 浏览

3d - (如何)着色器可以查看当前的渲染缓冲区?

像素着色器是否可以查看深度/颜色/模板缓冲区的当前状态?

0 投票
1 回答
808 浏览

3d - 着色器可以对纹理中的像素块/区域进行采样吗?

着色器是否可以查询纹理读取中像素块的总和/平均值,而不是查找单个值?我在 Cg 工作,但欢迎提供任何示例和搜索词。

我特别指的是内置方式,而不是在我的着色器中手动循环。

0 投票
1 回答
2515 浏览

algorithm - 如何模糊片段着色器的结果?

我正在开发一个基于一些蒙版图像生成小云的着色器。现在它运作良好,但我觉得结果缺少一些东西,我认为模糊会很好。我记得一个基本的模糊算法,你必须应用一个具有范数为 1 的矩阵的卷积(矩阵越大,结果越大)和一个图像。问题是,我不知道如何将着色器的当前结果视为图像。所以基本上我想保持着色器不变,但让它变得模糊。有什么想法吗?如何将卷积算法集成到着色器中?或者有人知道其他算法吗?

CG代码: