问题标签 [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 投票
3 回答
13778 浏览

iphone - 用于视网膜显示的 CoreGraphics

我正在使用以下代码对我加载的图像执行一些操作,但我发现当它在视网膜显示器上时显示变得模糊

我如何更改它以使其与视网膜兼容。

在此先感谢您的帮助

最佳,DV

0 投票
1 回答
1755 浏览

opengl - GPU着色器的像素缩放算法问题

所以我正在为像超级任天堂这样的老式模拟器开发一些像素着色器。您拥有 HQnx、2xSaI 等经典算法,它们绝对是为在 CPU 上运行而编写的,并且在传输到屏幕之前精确地缩放到两倍大小。

继续使用 GPU 片段着色器,这些算法基本上可以免费完成。我正在使用 OpenGL 和 Cg/GLSL,但这个问题也应该适用于 Direct3D/HLSL 编码器。

主要问题是这些算法使用某种算法与相邻像素混合以决定颜色。然而,我发现这个概念对于着色器语言来说非常困难。通常使用片段着色器,您可以获得浮点纹理坐标,您可以使用它来进行纹理查找,通常使用 GL_LINEAR 作为纹理过滤器。大多数像素着色器使用 GL_NEAREST,并自己进行平滑处理。

如果我想找到确切的相邻像素,就会出现问题。我见过一些实现,但它们偶尔会导致屏幕上出现伪影。可能是由于发生了浮点不准确。我发现当使用二次幂大小的纹理时,大多数伪影都会消失,这进一步加强了我的信念,浮点数不准确正在发生。这是 Cg 中的示例片段着色器,它显示了问题:

有什么方法可以确保我们可以从我们期望的像素而不是不同的像素中获取颜色数据?我相信会出现这个问题,因为我们可能会从两个像素之间的坐标中查询一个像素(如果这有意义的话)。希望我忽略的这些着色器语言中有一些内置功能。

0 投票
1 回答
669 浏览

shader - 为什么将顶点数据传递给片段着色器在 D3D 上失败,但在 OpenGL 上失败?

我正在使用 Cg 着色器,它应该将一些预先计算的值从顶点着色器传递到片段着色器以提高性能,但似乎只有 OpenGL 能够正确接收数据。我可以在 D3D 中传递给片段着色器的唯一变量似乎是 TEXCOORD0 语义,这很糟糕,因为我需要传递 6-7 个不同的 float4 参数。我只使用一种纹理,它在 TEXUNIT0 中。

代码看起来像这样:

这段代码有什么原因会失败吗?我已经尝试将结构中的所有变量绑定到 TEXCOORD1-through-5 语义,但它在 D3D 上失败了。虽然在 OpenGL 上运行良好。

0 投票
3 回答
523 浏览

opengl - Ogre3D cg片段着色器中“此配置文件中不支持功能'地板'的解决方案”

我正在阅读《Ogre3D 1.7 初学者指南》一书。我编写了一个 cg 片段着色器,但遇到编译器抱怨,“此配置文件中不支持功能‘地板’”。

片段着色器定义在这里:

实现在这里:

0 投票
1 回答
306 浏览

render - 我可以在 FX Composer 中控制绘制顺序吗?

我正在使用 Nvidia FX Composer 编写一个半透明的 CgFX 着色器。一切都很好,希望在我的渲染视图中,场景后面的对象被绘制在我的着色对象之上。

这是我的技术:

如果我打开 DepthMask,那么后面的对象会被完全掩盖,这违背了透明的目的。似乎对象没有被从后到前绘制。有没有办法确认这一点,我可以控制 FX Composer 的渲染器将项目绘制到屏幕上的顺序吗?

0 投票
1 回答
453 浏览

c - 在 CG 和 openGL 中使用统一的 1D 纹理参数时出错

我正在尝试编写一个基本的体积渲染器,它使用 opengl 和 cg 来编写着色器。我将我的传递函数放在一维纹理中,并在片段着色器的相关纹理查找中使用它。我的问题是,当我尝试启用与该 1D 纹理对应的参数时,我遇到了 openGL 错误。

我的代码很乱;现在它基本上是从“实时体积渲染”和“CG 用户手册”中提取的代码的混搭。

c文件:

片段着色器(fvr_fragment.cg):

体积数据

运行时,程序输出:

由于我的临时打印调试,我发现导致错误的行是:

有任何想法吗?

0 投票
1 回答
719 浏览

directx - CG:我的逐像素光照有什么问题?

我尝试在统一和 CG 中进行基本的 n-dot-l 照明。

据我了解,照明不应根据您用相机观察物体的位置而改变。但在我的情况下确实如此。

那么我在这段代码中缺少什么?

我还需要用模型视图矩阵转换灯光位置吗?

谢谢!

0 投票
1 回答
272 浏览

opengl - 用于调试和测试 .cg 文件的程序

我有几个手工制作的 Cg 文件。由于我是 Cg 的初学者,我想使用一些预先存在的工具,它可以加载 .cg 文件作为形状的材料。哪种工具适合这项任务?

0 投票
1 回答
3938 浏览

opengl - OpenGL:如何在转换后获取特定点的坐标?

假设我在 (250,125,-20) 有一个点。经过以下变换,

如何获得该点当前坐标的值?我需要编写一个子程序来将矩阵乘以向量吗?有没有内置的解决方案?

0 投票
1 回答
390 浏览

opengl - 为了兼容性,有没有比编写几个不同版本的 GLSL 着色器更好的方法?

我开始使用 OpenGL,我想尽可能避免固定功能,因为趋势似乎远离它们。但是,我的显卡很旧,只支持 OpenGL 2.1。有没有办法为 GLSL 1.20.8 编写着色器,然后在 OpenGL 3.0 和 OpenGL 4.0 卡上运行它们而不会出现问题?在请求可以指定版本的 opengl 上下文时,也许有些东西?