问题标签 [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 回答
314 浏览

opengl - 3D 模型渲染和着色器

我有一个 3D 模型,在渲染时我使用着色器根据一些参数计算顶点颜色(计算密集型任务)。这些参数随时间变化。所以基本上我需要根据当前参数计算顶点颜色,并将其与之前渲染的顶点颜色相加。我将处理具有 5-1000 万个顶点的模型。有人可以帮我解决这个问题的方法。

对不起,不清楚的问题。我面临的问题是如何备份从着色器计算的先前顶点颜色。我不能使用混合,因为对象可以旋转。所以基本上我需要一种机制来保存从着色器计算的顶点颜色信息并在下一次传递中使用它。

0 投票
1 回答
224 浏览

opengl-es-2.0 - 构建 Cg 程序的正确方法是什么?

本教程使用显式 OUT 结构,例如:

但是看看我的一个着色器,我有明确的输入/输出参数:

我在使用 HLSL2GLSL 时遇到了一些问题,我想知道我的 Cg 格式是否应该受到指责(即使它作为 Cg 脚本工作得很好)。是否有“正确”的方式,或者这两种方式是否完全不同?

0 投票
2 回答
394 浏览

opengl - CG 到 GLSL:f3texRECT 等效?

我正在尝试将 CG 程序转换为 GLSL 程序。

到目前为止我所做的似乎是正确的,但是 GLSL 着色器输出不正确的输出。不正确的行为由一组测试图像定义。

我正在调查的唯一暗点是f3texRECT我已经翻译的函数texture。但是,我找不到任何关于f3texRECT.

有人可以说明一下吗?

0 投票
1 回答
1524 浏览

graphics - 均匀数组 CG 着色器中的非常量索引

根据这个 nVidia CG 教程(和我自己的经验),在 CG 着色器中使用非常量索引访问统一数组要么效率低下,要么不受支持(通常情况下,似乎不受支持)。

我的问题是;我该如何规避这个问题?

我目前正在编写一个 GPU 蒙皮着色器,在其中我传递了一组骨骼(4x4 矩阵),我需要使用存储在顶点属性中的索引来访问它(具体来说,一个 float4 向量,其组件被强制转换为整数)。显然,由于上述限制,这不起作用......也许我错过了一个更好的方法来做到这一点?

0 投票
0 回答
164 浏览

opengl - 在 CG 中保存/加载二进制编译的效果文件

我正在开发 NVidia CG。如果我使用此行从文件创建了效果:

有没有办法将此效果(basicEffect)以编译形式保存到二进制文件中。这样以后如果我想创建效果,我只需加载编译好的效果文件并直接将其分配给 basicEffect ???

有什么帮助吗?

0 投票
1 回答
701 浏览

opengl - Pre-Pass Lighting OpenGL 实现神器

在实现了延迟渲染器之后,我正在为我的硕士论文项目在 OpenGL 中实现 Pre-Pass Lighting 算法。Deferred 渲染器完美运行,我基于它实现了 PPL。在算法的光照传递之后,我得到了一个非常奇怪的伪影:L-缓冲区中包含的数据,我在其中累积了场景中灯光的贡献,是正确的,但结果相对于几何形状略有偏差,所以当我将它应用到材质中的场景时,结果是清晰可见的!(我不能在这里发布图片,但这里有一个链接可以看到它http://postimage.org/image/kxhlbnl9v/

看起来光照贴图立方体以某种方式计算出与几何体的偏移量(在每个轴上都不同)。我多次检查着色器和C++代码,我不明白这个问题来自哪里。我的想法不多了。下面是按顺序调用的算法的 3 遍代码。该代码现在是实验性的,所以我知道它在这个阶段设计得不好。我还添加了我在每个阶段使用的着色器,以按顺序写入 G-buffer、L-buffer 和 framebuffer。

C++代码:

NVIDIA CG 着色器:

有什么建议么?

0 投票
1 回答
562 浏览

c++ - Ogre3d / 合成器相关问题

我花了一整天的时间想弄清楚为什么下面的代码不起作用:

我有这个 .compositor 脚本:

.material 脚本:

和一个 .cg 程序:

我使用下面的语句来初始化合成器:

我根本看不到任何结果。我的场景中有几个灯光和 cg 着色器——它们工作得很好。此外,所有资源都已正确加载,并且资源组可以看到每个需要的文件,但是我在日志文件中得到了这个异常:

AFAIK rt0 不应该是一种资源,因为它是由食人魔“在飞行中”自动生成的。我错过了什么吗?

任何帮助表示赞赏!谢谢!

0 投票
1 回答
504 浏览

c++ - cmake项目的CG运行时链接器错误(g ++)

我收到这些链接器错误: /usr/bin/ld: 找不到 -lCg /usr/bin/ld: 找不到 -lCgGL

我在这里使用 FindCg.cmake:http ://code.google.com/p/nvidia-texture-tools/source/browse/branches/2.0/cmake/FindCg.cmake?r=452

然后使用 target_link_libraries 添加找到的库。

当我使用 VERBOSE=1(见下文)运行 make 时,它​​看起来像是通过了库的正确路径(/usr/lib64/libCgGL.so 和 /usr/lib64/libCg.so)

===========================================

编辑:

在按照 Fraser 在下面回复中的建议删除 cmake 文件中的 link_directories 行后,我得到了这个输出

0 投票
6 回答
13623 浏览

unity3d - CG:指定不在顶点和片段着色器之间插值的变量

GC用于在里面编写着色器Unity3D

我正在使用顶点颜色属性将一些参数传递给着色器。它们不会用于定义颜色,并且应该从顶点着色器转发到像素着色器而不修改它们。

这是我从 Unity3D 输入到顶点着色器的结构:

这是顶点着色器作为片段输入返回的结构:

如果我只是简单地将参数转发给片段着色器,当然它会被插值:

我想将v.color未插值的参数传递给片段着色器。这可能吗?如果是的话怎么办?


编辑

就像蒂姆指出的那样,这是预期的行为,因为如果颜色从顶点着色器传递到片段,着色器除了插值颜色之外什么也做不了。我将尝试更好地解释我想要实现的目标。我使用每个顶点颜色来存储颜色以外的其他类型的信息。在不告诉我正在做什么的所有细节的情况下,假设您可以将每个颜色顶点视为一个 id(同一三角形的每个顶点将具有相同的颜色。实际上是同一网格的每个顶点)。

所以我使用颜色技巧来掩盖一些参数,因为我没有其他方法可以做到这一点。现在,这条信息必须以某种方式在片段着色器中可用。如果作为顶点着色器的输出参数传递,则编码为颜色的此信息将被插值到无法再使用的片段中。

我正在寻找一种在片段着色器之前传播此信息不变的方法(也许可以使用全局变量或类似的东西?如果是的话如何?)。

0 投票
2 回答
2798 浏览

glsl - CG/GLSL 如何计算每个像素的相机距离?

我想在我的像素着色器中输出每个像素的实际相机距离。这意味着,结果应该(除了精度和夹紧的一些细微变化)不取决于近/远裁剪平面。

此外,一个正好位于近平面(并与之平行)的平面因此不应输出统一的结果,因为近平面中间的像素比边界上的像素更靠近相机。

如何计算像素着色器中每个像素的实际相机距离?(实际的着色器语言无关紧要)