问题标签 [pixel-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.
c# - HLSL:有问题的像素着色器代码(采样时 alpha 为零)?
我对像素着色器中的采样器有这个奇怪的问题。当我从采样器采样到一个空的 float4 变量时,我总是会返回黑色/透明颜色。所以如果我使用它,我会得到一个黑屏:
我用这个代替它工作正常:
这只发生在我家的 AMD 4850 GPU 开发环境中。当我在一些 nVidias 或 AMD5850 上尝试它时,它无论如何都可以工作......
这是什么原因?我错过了一些设备初始化吗?
干杯!
directx - CG:我的逐像素光照有什么问题?
我尝试在统一和 CG 中进行基本的 n-dot-l 照明。
据我了解,照明不应根据您用相机观察物体的位置而改变。但在我的情况下确实如此。
那么我在这段代码中缺少什么?
我还需要用模型视图矩阵转换灯光位置吗?
谢谢!
directx - 无法访问 DXGI_FORMAT_R8_UINT 纹理
我想对相机发送的 8 位图像进行一些计算,但我不知道如何访问它们。
以下是我创建纹理对象/资源视图的代码:
我使用以下代码更新纹理:
HLSL 文件(采用四边形,在屏幕上显示为四边形):
当我尝试运行它时,出现错误 X4532: cannot map expression to pixel shader instructions set
当我尝试调试它时,当我尝试查看 g_pCurrentImage 的数据时,它只是说无法显示表面,并且将其替换为
DirectX 调试器(在这种情况下为 PIX)只是忽略第一行,它们永远不会到达,因此我无法调试它。我已经没有办法解决这个问题了,我想做的只是一些基本的数学指令,但我完全无法让像素着色器工作。
graphics - 帮助了解像素化效果
我是新的 HLSL,我正在尝试了解像素化样本。但是,我无法找到有关几个操作的参考。这是着色器示例:
我无法理解发生了什么计算:
我不确定如何计算两个向量之间的除法,也不知道如何计算向量的下限。(我假设两个 float2 的除法返回一个 float2)。
任何的想法?
graphics - 几何着色器执行次数?
因此,为每个顶点执行一个顶点着色器,为每个片段执行一个片段着色器(对吗?)。
几何着色器执行多少次?
xna - xbox 上的像素着色器性能
我有一个与 XNA 一起使用的像素着色器(如下)。在我的笔记本电脑(蹩脚的显卡)上,它运行起来有点生涩,但还可以。我刚刚尝试在 xbox 上运行它,这太可怕了!
游戏没有任何内容(它只是一个分形渲染器),所以它必须是导致问题的像素着色器。我也认为这是 PS 代码,因为我降低了迭代次数,没关系。我也检查过,GC delta 为零。
xbox 上是否有任何禁止使用的 HLSL 功能?我一定是在这里做错了,性能不会那么差!
下面是 FractalBase.fxh:
编辑我确实尝试通过使用大量 lerps 来删除条件,但是当我这样做时,我得到了大量的文物(而不是“属于博物馆”的那种!)。我改变了一些东西,并修复了一些逻辑错误,但关键是将 GreaterThan 结果乘以 1 + epsilon,以解决舍入误差仅使 0.9999 = 0(整数)。请参阅下面的固定代码:
opengl-es - HYDRA(像素弯曲器)sampleLinear 的 OpenGL ES 2 着色器语言模拟是什么?
所以我查看了OpenGL ES 着色器规范,但没有看到这样的......
例如 - 我创建了简单的“捏放大”和“旋转转身”和“移动中心” HYDRA 像素弯曲过滤器。它可以在闪存中执行。它基于默认的像素弯曲器旋转示例,并且:
所以现在我想将它移植到 OpenGL ES 着色器中。数学和参数可以转换成 OpenGL ES 着色器语言,但是 sampleLinear 怎么办?openGL ES 着色器语言中的模拟是什么?
更新:
所以我创建了类似于我的 HYDRA 过滤器的东西......兼容 webGL 和 OpenGL ES 着色器......
要查看它是如何工作的,请使用现代浏览器,导航到shadertoy为其提供一个纹理(http://www.iquilezles.org/apps/shadertoy/presets/tex4.jpg
例如),将我的代码粘贴到可编辑文本 aeria 中并点击...玩得开心。所以..现在我有另一个问题...我想要一个图像和黑色而不是同一图像的副本...任何人都知道该怎么做?
opengl - OpenGL Pixel Shader:如何生成 0 和 1 的随机矩阵(在每个像素上)?
所以我需要的很简单:每次我们执行着色器(每个像素的意思)时,我都需要计算1
s 和0
s 的随机矩阵resolution == originalImageResolution
。怎么做这样的事情?
至于现在我已经创建了一个shadertoy随机矩阵分辨率在这里设置为15 x 15,因为当我尝试像200 x 200这样的东西时,gpu会使chrome经常下降,而我真的需要完整的图像分辨率大小
还有一个用于 Adobe 像素弯曲器:
所以我真正的问题是——我的着色器让我的 GPU 崩溃。如何将 GLSL 用于与我现在相同的目的,但不会失败,如果可能的话更快?
更新: 我想要创建的是单像素相机(google Compressive Imaging 或 Compressive Sensing),我想创建基于 gpu 的软件实现。
想法很简单:
- 我们有一个图像 -
NxM
。 - 对于图像中的每个像素,我们希望 GPU 执行以下操作:
- 生成
NxM
随机值矩阵 -0
s 和1
s。 - 计算原始图像上所有像素的算术平均值,其坐标对应
1
于随机NxM
矩阵中 s 的坐标 - 算术平均值的输出结果为像素颜色。
- 生成
我试图在我的着色器中实现的是模拟那个谨慎的过程。
尝试在 gpu 上执行此操作真的很愚蠢:
- 压缩传感并不要求我们计算
NxM
这种算术平均值的矩阵,它只需要它的和平(例如1/3
)。所以我给GPU施加了一些我不需要的压力。然而,对更多数据进行测试并不总是一个坏主意。
opengl - 顶点着色器和片段着色器中的 gl_Color 和 gl_FrontColor 之间的关系是什么
我有直通顶点和片段着色器。
顶点着色器
片段着色器
那些会产生空渲染(黑色而不是像 glClearBuffer 那样的背景颜色)。
如果我修改顶点着色器以将 gl_FrontColor 设置为 gl_Color 它会渲染未触及的 OpenGl 缓冲区......这是传递着色器的预期行为。
我很困惑,顶点着色器中的 gl_FrontColor 设置如何改变片段一中 gl_Color 的值?我错过了什么?
wpf - 我可以打印像素着色器效果吗?
我有一个要打印的 WPF 用户控件。我可以用 XpsDocumentWriter 做到这一点。现在我想应用一个像素着色器效果。我可以看到效果已应用于控件。但是,当我尝试打印它时,输出与没有效果的输出相同。是否可以打印着色器效果?谢谢。