问题标签 [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.

0 投票
1 回答
3236 浏览

c# - 从 XNA 中的文件动态编译和运行着色器

我想知道是否可以从文件动态编译像素着色器并将其应用于网格。

首先,我将从一些背景信息开始。我有一个基于一系列数据创建 HLSL 像素着色器的系统,这对问题并不重要。重要的是这些着色器不使用技术或通道。因为它们不打算用作 .fx 文件。

ShaderCompiler.CompileFromFile()方法能够成功地将文件编译成CompiledShader.

是否可以将此着色器应用于网格?

因为我不想找到每个文件的入口点以将其包装在一种技术中以允许将其编译为Effect.

0 投票
3 回答
1479 浏览

graphics - HLSL 半透明塑料着色器

我正在尝试制作一个着色器来复制一个内部带有彩色光的白色塑料物体。要么通过一个半透明的着色器,如果我在物体内部放一盏灯,光线就会透过,或者通过一个着色器来伪造内部灯光的效果。

我想要的效果有点像穿过灯罩的光,类似于这些图片:

替代文字 替代文字 替代文字

理想情况下,我将能够控制光的强度和颜色,使其在一些漂亮明亮的荧光色中产生脉冲和旋转

虽然我不知道从哪里开始!

我的问题是,是否有人知道我应该研究哪些技术才能生成这样的着色器,或者有一个相同/相似着色器的示例可以用作起点?或者即使您想提供一个可以完成这项工作的着色器

0 投票
2 回答
2652 浏览

wpf - 重新创造在 WPF 中的像素着色器/其他方法中

现在<BevelBitmapEffect>(在其他效果中)已被贬值,我正在寻找如何在着色器效果中重新创建完全相同的东西(包括它的属性、BevelWidthEdgeProfileLightAngle)。ReliefSmoothness

我对像素着色有点熟悉,主要是在 Shazzam 中对整个图像/元素进行颜色处理,但如何创建斜面却让我难以理解。这是一个顶点着色器吗?如果是,我将如何开始?我已经对此进行了高低搜索,但似乎无法找到可以让我开始在<BevelBitmapEffect>custom 中复制的信息Effect

或者,根据下面的评论,这是 WPF 中的 3D,如果是,是否有代码库用于重新创建一个<BevelBitmapEffect>模仿以前版本的 WPF 附带的代码库?

0 投票
2 回答
1940 浏览

wpf - 无法将像素着色器渲染到 RenderTargetBitmap!请帮忙!

我编写了一个非常简单的 WPF 应用程序来测试将具有关联像素着色器的控件呈现到 RenderTargetBitmap 的能力。然后我将位图写入文件(jpeg)。控件被渲染到位图上,但是像素着色器效果不应用于控件。

代码和 XAML 如下:

XAML:

0 投票
2 回答
1006 浏览

silverlight - 用于获得圆柱效果的 HLSL

我需要使用 Silverlight 4 编写一个应用程序,并且需要显示像包裹在圆柱体上的图像。我需要一些 HLSL 代码,因为我不会使用 Silverlight 的效果来做到这一点。
我不会对 Silverlight 的 3D 库这样做。我只需要 HLSL 代码来更改像素。
我需要让我的图像看起来像这样 替代文字
谢谢。

0 投票
2 回答
6027 浏览

image-processing - 像素着色器的 Floyd-Steinberg 抖动替代方案

我知道Floyd-Steinberg 抖动算法不能用像素着色器实现,因为该算法是严格顺序的。但也许存在一些高度并行的抖动算法,其视觉输出类似于 Floyd-Steinberg 算法?

所以问题是 - 哪些抖动算法适合在像素着色器(最好是 GLSL)上实现并且输出质量(非常)类似于 Floyd-Steinberg 抖动?

顺便提一句。允许多遍算法,直到不超过 2 遍并且这些遍之间的 CPU 开销很小。

有任何想法吗 ?

编辑:
我需要从 24 位颜色抖动到 21 位颜色。
(也就是说 - 我需要从 8 位/通道转换为 7 位/通道。)

编辑 2 也许我没有很好地解释问题。所以我会尝试扩展一下确切的问题。问题是这样的 - 考虑我们有这张图片:
替代文字
我们有上面的图片,但是用抖动算法处理:
替代文字
现在这是测试你的抖动是否适合我的程序:
1. 将这些图片加载到 Photoshop 中作为一张图片和 2层。
2.选择图层混合模式为“差异”。
3. 对图层执行“合并可见”操作,只得到一个图层。
4. 执行操作 => Image/Adjustments/Equalize

之后你必须得到这样的图像:
替代文字
如您所见 - 单调红色的中间像素根本没有抖动。左右图像区域的抖动也有点不同。尝试用这种行为重建抖动算法。

0 投票
4 回答
1050 浏览

xna - 像素和顶点着色器工具

有没有测试像素和顶点着色器的工具?

0 投票
1 回答
1030 浏览

wpf - WPF 中的图像处理

我正在设计一个 WPF 应用程序,它使用 WriteableBitmap 以每秒 10 帧的速度将数据呈现为 500x500 8 位索引图像。

我们想在我们的输出中添加一些实时图像处理算法,例如 2-D 中值滤波、高斯模糊或移动平均,这些算法需要大量计算。

  • 有没有人尝试使用 WPF 像素着色器来完成这些任务?
  • 特定于平台的图像处理库会高效吗?(例如英特尔 IPP ?)
  • 或者基于 DirectX 的自定义渲染器会是解决方案吗?

任何提示都会受到欢迎。目前一切都是在我们的 .NET 应用程序中计算的,我相信还有优化的空间。

谢谢您的帮助,

此致,

罗曼

0 投票
5 回答
4729 浏览

glsl - 着色器帧缓冲区回读

我想知道较新的着色器模型是否支持从目标帧缓冲区读回像素值。我假设这已经在绘图管道的后期(非可编程)阶段完成,这让我希望这个功能可能已经添加到可编程管道中。

我知道可以绘制到纹理绑定帧缓冲区,然后将此纹理发送到着色器,我只是希望有一种更优雅的方式来实现相同的功能。

0 投票
2 回答
1363 浏览

shader - WebGL 片段着色器中奇怪的浮点运算

我正在编写一个简单的 WebGL 程序。我在着色器程序中遇到了一个奇怪的行为:

条件( 1.01 * 2.0 > 1.0 )评估为真,但条件( 0.99 * 2.0 > 1.0 )评估为flase

每次我将小于的数字乘以其他数字时1.0,我得到的数字小于1.0

为什么会这样?

[编辑]

我正在使用片段着色器使用窗口级别和窗口高度(线性斜坡)将 16 位无符号整数数据更改为 8 位位图并显示在屏幕上。由于没有直接的方法将 16 位数据存储为 WebGL(AFAIK)中的内部格式,我决定创建,将第一个字节存储在 R 通道中,第二个字节存储在 B 通道中Uint8Array(width*height*3)并将其放入纹理(也许会更好)。gl.RGBgl.UNSIGNED_BYTELUMINESCANCE_ALPHA

在着色器中,我重建字形字节并进行调平。着色器程序:

如您所见,有一条愚蠢的线if( 1.0*2.0 > 1.1 ) gl_FragData[0] = vec4(1,0,0,1); 是我测试浮点运算的地方。在这个例子中,整个图像是红色的,但是当条件是答案时0.999999999*2.0 > 1.1,答案是错误的。当我重新采样的 16 位图像中出现奇怪的伪影时,我开始怀疑某些事情。

我在 Chrome 8 和 Firefox 4 上对其进行了测试。我相信我对浮点运算一无所知。