问题标签 [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.
opengl - 如何使用 GPU 高效地渲染和处理视频流?
我计划开发一个使用 C++、Qt 和 OpenGL 进行实时视频操作的工具。视频叠加不是一个选项,因为着色器应该用于帧处理。目前我想象以下步骤顺序:
- 解码视频 (CPU)
- 预处理它(可选,CPU)
- 将其传输到视频内存(使用 DMA 的 GPU)
- 使用顶点和片段着色器 (GPU) 进一步处理它
- 渲染它(GPU)
我正在寻找一些一般性建议来解释可以在这里使用哪些扩展或技术。是否有充分的理由使用 Direct3D?
iphone - OpenGL ES 1.x 着色器
我试图找到如何为 OpenGL ES 1.x(特别是 iPhone)实现简单着色器的示例。我以前从未使用过着色器,但我确实了解它们的用途。我认为一旦我能够在模拟器中加载一个简单的着色器,我就可以从那里获取它并做我需要做的事情。感谢您的帮助,〜埃里克
opengl - 如何将纹理索引为来自着色器的离散查找表?
我正在用 GLSL 编写着色器,我需要向它传递一定数量的信息。传递此信息的唯一实用方法是使用一维纹理。
我正在创建纹理和设置GL_TEXTURE_MIN_FILTER
,现在我GL_TEXTURE_MAG_FILTER
需要GL_NEAREST
从着色器访问纹理,以便能够准确地索引我放入其中的每个数字 3 值向量。
有什么可靠的方法可以轻松做到这一点?
我正在寻找的是一个公式,它采用数组的大小和我想要的索引,并给我 [0,1] 中的数字,它对应于我想要的纹素。
opengl - 在 Intel 上编译的详细 GLSL 着色器
我有一个使用 GLSL 着色器的项目。
该项目旨在不向标准输出打印任何内容,除非出现问题或您明确打开一些额外的调试输出。
当着色器编译失败时,给出的日志长度glGetProgramInfoLog
大于 0,有时当它成功时大于 0,并给出编译警告。当你有一个可以完美编译的着色器时,日志长度<1...这就是它在我的开发机器上的 NVidia 卡上的工作方式。
对于我的罪过,我还在带有英特尔集成显卡的笔记本电脑上进行了一些开发。代码运行良好,但每当我进行着色器编译时,日志包含:
“着色器已成功编译为在硬件上运行”
这很烦人,因为除了某种字符串分析之外,我现在无法决定是否应该将字符串打印出来,例如:
希望这很明显为什么不受欢迎。如果有的话,我如何判断一条消息是否值得使用 OpenGL api 打印出来?
编辑:
如果我使用glGetShaderiv(shaderobj,GL_COMPILE_STATUS,&err);
,那么我不会收到编译警告,只有错误。
wpf - WPF中像素着色器的线条艺术效果?
我想创建一个艺术线条效果,但现在 WPF 不支持顶点着色器。有没有办法通过像素着色器创建线条艺术效果?任何想法?
谢谢。
graphics - 什么是顶点着色器和像素着色器?
什么是顶点着色器和像素着色器?
它们之间有什么区别?哪一个是最好的?
direct3d - Direct3D 10 和着色器管理
我正在使用 DirectX 10 编写 3d 应用程序,我想知道 Shadermanagement 的处理方式如何。
在应用程序启动时预加载所有着色器然后根据需要使用它们是否最有效,或者如果数量增加,这是否训练硬件资源?
另外我想知道通过着色器排序渲染是否是速度考虑因素,以便最小化着色器开关。
opengl - GLSL 片段着色器语法错误
以下简单的片段着色器代码失败,在日志中留下一条无意义的消息:
ERROR: 0:1: 'gl_Color' : syntax error syntax error
而以下一个有效:
这让我大吃一惊,因为在Lighthouse3D 的教程中 gl_Color 据说是 vec4。为什么我不能将它分配给另一个 vec4?
opengl - GLSL:启用/禁用纹理+着色器
我正在寻找一种从着色器访问 OpenGL 状态的方法。GLSL 快速参考指南,一个很棒的资源,在这方面帮不上我的忙。
在我正在处理的示例中,我有以下两个着色器:
顶点:
分段:
当我渲染没有纹理的多边形时,它们的 alpha 值是正确的,但它们被分配了黑色。
1,我可以设置什么条件检查,以便在禁用vec4(1.0, 1.0, 1.0, 1.0)
时设置变量“texel”而不是从纹理中采样?GL_TEXTURE_2D
2,如果我为不同的纹理模式编写不同的着色器并在我将使用glEnable
/ glDisable
( GL_TEXTURE_2D
) 的位置在它们之间切换,处理会更快吗?
c++ - 堆叠 Cg 着色器
在我的引擎中,我从成对的顶点/像素着色器文件中加载 Cg 着色器。我希望能够堆叠着色器来组合它们(照明+材质等)。除了将着色器分解为单独的函数,然后从中创建单个着色器脚本字符串之外,您知道在 Cg 中堆叠不同着色器的任何好方法吗?