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

opengl - 在OpenGL中将纹理映射到VBO的问题

我无法使用 OpenGL 将纹理正确映射到几何体上。事实上,我似乎甚至打破了过去可以正常工作的颜色插值。我在 C99 中创建了一个使用 SDL、GLee 和 SOIL 的测试用例。

唯一呈现的是 glClearColor 顶部的纯蓝色方块。

非常感谢任何帮助。

感谢您的回答,为了完整起见,我附上了固定代码。

0 投票
1 回答
237 浏览

c++ - 切换到 glVertexPointer 后未应用 Cg 着色器

我的渲染器曾经使用 glBegin/glEnd 使用旧的固定函数来渲染几何图形。通过 glVertexPointer 等将其切换为使用顶点数组后。al.,我的 Cg 着色器停止显示。如果我只是做一个常规的纹理绑定,它工作正常,所以数组数据是可靠的。此外,如果我使用旧的 glBegin/glEnd 系统,Cg 着色器工作正常。是否有一些我缺少特定于顶点缓冲区的考虑?

0 投票
2 回答
2153 浏览

opengl - GPU 手动 Mipmap 生成 [OpenGL 2.x]

我想使用特定的自定义算法为某些可渲染纹理(R16F 和 RGBA16F)生成 mipmap。

使用 glGenerateMipmapEXT() 预先启用所有需要的纹理的 mipmap。

到目前为止最大的问题是渲染到 1+ mipmap 级别。 更准确地说,这就像一个魅力:

但这在检查 fbo 状态时给了我一个 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT

代码的所有区别在于将纹理附加到 FBO 的 lod 级别参数。

经过大量的发烧头抓挠后,我仍然无法正常工作。因此,非常感谢任何答案。

[注意:目标平台是带有 FBO 扩展的 OpenGL 2.x]

0 投票
4 回答
19744 浏览

graphics - Direct3D 线条粗细

使用 Direct3D 绘制线列表时如何更改线的粗细?

这篇文章说不支持线宽并继续提供解决方法。其他选择?

当我们讨论这个话题时,着色器是否允许使用虚线图案绘制线条?

0 投票
1 回答
2777 浏览

xna - 在 XNA 中需要有关浅水涟漪效果的帮助

我需要在 XNA 中创建一个类似水的表面,从上面看。
像这样: http ://www.youtube.com/watch?v=Nr42AG1aPAY

有人可以指出一些例子吗?
我不知道从哪里开始。
谢谢,
西南。

0 投票
2 回答
11282 浏览

opengl - 你可以在同一个程序中有多个像素(片段)着色器吗?

我想要两个像素着色器;第一个做一件事,然后下一个做别的事。这是可能的,还是我必须将所有东西都打包到一个着色器中?

0 投票
1 回答
6564 浏览

opengl - 带有片段着色器的 GLSL 仅渲染黑色 GL_POINTS

我正在尝试将一些着色器添加到我的旧 OpenGL 程序中,该程序会绘制很多 GL_POINTS 和一些 GL_LINES。

我创建了这两个着色器:

顶点着色器:

片段着色器:

这两个着色器编译和链接没有问题。并且顶点着色器工作得很好,我可以看到 GL_POINTS 在顶点着色器中使用该罪转移。但问题是,如果背景颜色不是黑色,我只能看到我的 GL_POINTS 和 GL_LINES,因为所有点和线都呈现为黑色。似乎在渲染代码中使用 glColor3f 设置的所有颜色都被忽略了。如果我在片段着色器中取消注释注释行,我可以将所有线条和点设为红色,但 gl_Color 不应该对应于为每个点设置的 glColor3f 的颜色吗?

我的 OpenGL 代码中是否还有其他可能导致此行为的内容?

0 投票
1 回答
283 浏览

geometry - GLSL 检查片段是否在几何体上

我目前正在将几何体的位置写入 RGB 通道,gl_FragColor如果片段是几何体的一部分,我想将 1.0 写入 alpha 通道,如果片段为空,则写入 0.0。

有没有一种简单的方法来判断片段是否是几何图形?也许通过gl_FragCoord.z

谢谢

0 投票
1 回答
580 浏览

shader - 在纹理中打包属性,延迟渲染

我正在滚动延迟着色器管道,并且由于需要将 G 缓冲区保持为统一格式,因此需要压缩属性。遗憾的是,我一直无法找到有关如何实际完成的一些好的信息。

我有一个 G 缓冲区格式,它以定点格式每个组件使用 16 位。可悲的是,当我以着色器模型 3 硬件为目标时,我不能使用位运算符。那么,基本上,如何将 0..1 范围内的 2 个 8 位值打包到一个 16 位通道中,也在 0..1 范围内?最好适用于 CG 或 HLSL。

0 投票
1 回答
1048 浏览

c++ - 在 C++ GPGPU 库中嵌入 cg 着色器

我正在编写一个使用 C++/OpenGL/Cg 运行的 GPGPU 流体模拟。目前,该库要求用户指定着色器的路径,然后从中读取它。

我发现必须在我自己的项目和测试中指定它非常烦人,所以我想让着色器内容与其他内容链接。

理想情况下,我的 .cg 文件仍可单独浏览,但在需要时,构建后步骤或预处理器指令会将其包含在源代码中。

为了让事情变得更烦人,我有一个“utils”着色器文件,其中包含在事物之间共享的函数(例如将 3d 纹理坐标转换为 2d 地图集等价物)。

如果可能的话,我想要一个跨平台的解决方案,但这没什么大不了的,因为它目前仅适用于 Windows。我的搜索只出现objcopy在 linux 上,但在 windows 上使用它并不理想。

如果有帮助,该项目可在http://code.google.com/p/fluidic 获得