问题标签 [pixel-shading]

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 回答
1111 浏览

graphics - VertexShader 中的错误“重叠寄存器语义尚未实现”

我正在尝试在 hlsl 中执行漫反射。目前我正在研究顶点着色器。不幸的是,在尝试编译时出现以下错误fxc.exe

顶点着色器代码:

我用来执行编译的命令:

为什么我会收到此错误?我能做些什么来防止这种情况发生?

0 投票
0 回答
100 浏览

opengl - 使用插值沿曲面重复色阶

我试图用一系列颜色对表面进行着色以实现某些视觉效果。一种效果是从一种颜色到另一种颜色的渐变。假设我有一个带有黑色和白色纹素的查找纹理。我通过选择颜色序列的 [0,1] 将颜色应用到整个表面。线性插值创建了一个很好的渐变。现在我想重复那个序列。直观地说,我想使用 [0,2] 的范围,并且应该沿着表面绘制两次渐变。

但这会在中间产生硬边,因为每个渐变占据了表面的 50%。(一般问题,不是 GL 特定的)我可以挤入一个“隐藏的”纹素并使用一些额外的空间在序列的最后一种颜色和第一种颜色之间进行插值。但随后缩放变得丑陋。沿表面应用于 [0,1] 的序列将比应用于 [0,2] 的每个重复序列的长度略多两倍。

另一个效果是创建条纹的重复图案。在那里我不需要重复序列之间的额外空间。例如,如果我在第一个和第二个 b,w 序列之间挤压任何东西,带有 b,w,b,w 条纹着色的表面就会被破坏。

如果我将 b,w 重复到 b,w,b,w 我会得到带有 NN 的工作条纹,但中间的硬边用于渐变。如果我将 b,w,b 重复到 b,w,b,b,w,b 它适用于线性 ip,但 NN 会弄乱条纹的大小。

所以看起来我必须确保颜色序列以相同的颜色开始和结束,如果我想要平滑的重复。如果我想创建可区分的条纹而不是渐变,我必须切换插值行为(调用 GL 或在着色器中手动插值)?有人可以绕过所有这些,并告诉我我是否走在正确的轨道上或遗漏了什么。感觉现在有点蒙。

0 投票
1 回答
162 浏览

c++ - Phong - 两侧的半向量镜面反射

实现 PhongModel 着色时。镜面反射项出现在几何体的两侧。使用半向量计算镜面反射项。

在前面的输出图像中,它似乎计算正确。光在相机后面,物体在相机前面。

[光……相机……物体]

但是当去另一边时,即使没有漫反射项,我仍然会得到一些镜面反射,我不确定我是否应该这样做。在下面的图片中,物体和灯光都在相机前面,灯光在物体后面。

[相机……物体……光]

我想也许镜面反射应该乘以符号(fLDotN)?但结果似乎并不好。一般是怎么处理的?

我的猜测是我是

光照均匀位置在相机空间中设置:

具有法线和半向量的结果图像: Phong Specular+Diffuse Results

顶点着色器

片段着色器

0 投票
0 回答
675 浏览

c# - 我可以使用什么像素着色器来移除背景颜色,但保留透明像素?

我可以在 WPF 中使用像素着色器来删除特定的颜色,但是背景上有分层的 alpha 像素。我想删除背景颜色,但保留 alpha 像素。

例如,我有Image 1。它是一个红色矩形,不透明度为 50%,覆盖在纯黑色背景上。我想删除黑色背景,使红色矩形保持 alpha 50%,然后我可以将生成的图像叠加在蓝色背景上,如图像 2-3(左)。

但是通过使用像素着色器去除特定颜色,我得到了图像 2-3(右),这不是我想要的。

图 2-3

  1. 可能吗?
  2. 这个过程怎么称呼?
  3. 我可以在 WPF 中使用什么像素着色器来实现它?
0 投票
2 回答
3109 浏览

ios - gl_PointSize OpenGLES 说明

gl_PointSize = 1.0顶点着色器中的设置意味着或实现什么?这是否意味着顶点本身就是一个像素?

0 投票
1 回答
1095 浏览

python - 使用 numpy 进行 blinn-phong 着色

为了教育目的,我正在尝试在 numpy 中实现 blinn-phong 着色。但是,我几天来一直在调试参数正在做什么。

我的总体想法如下。由于方程是针对通道给出的。我将模型应用于每个颜色通道以获得通道中的相对像素强度,然后将通道重新组合在一起以获得所有图像。

我的朗伯系数似乎没有考虑到光的位置变化,但它确实改变了像素强度,但其他参数对输出几乎没有影响。任何帮助,将不胜感激。以下是代码的相关位(有兴趣的人可以在这里找到完整的代码):

谢谢

0 投票
0 回答
20 浏览

opencv - OpenCV Python:比较多边形图像并确定其是否有阴影

我正在尝试比较 2 个图像(转换为灰度)并确定一个图像中的多边形是否包含另一个图像中相同多边形的阴影等效项。

在此处输入图像描述 在此处输入图像描述

例如上面的2张图片。我使用 open CV ConnectedComponents 来读取轮廓。我是图像处理的新手。我使用下面的函数来读取图像并识别连接的组件。所以在两张图片中,我可以识别感兴趣的区域,但我需要能够比较这两个轮廓,并说第一张图像中的轮廓只是第二张图像中轮廓的阴影版本(在这种情况下,阴影与白线)。这可能吗?我的用于识别连接组件的起始代码: