问题标签 [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.
graphics - VertexShader 中的错误“重叠寄存器语义尚未实现”
我正在尝试在 hlsl 中执行漫反射。目前我正在研究顶点着色器。不幸的是,在尝试编译时出现以下错误fxc.exe
:
顶点着色器代码:
我用来执行编译的命令:
为什么我会收到此错误?我能做些什么来防止这种情况发生?
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 或在着色器中手动插值)?有人可以绕过所有这些,并告诉我我是否走在正确的轨道上或遗漏了什么。感觉现在有点蒙。
c++ - Phong - 两侧的半向量镜面反射
实现 PhongModel 着色时。镜面反射项出现在几何体的两侧。使用半向量计算镜面反射项。
在前面的输出图像中,它似乎计算正确。光在相机后面,物体在相机前面。
[光……相机……物体]
但是当去另一边时,即使没有漫反射项,我仍然会得到一些镜面反射,我不确定我是否应该这样做。在下面的图片中,物体和灯光都在相机前面,灯光在物体后面。
[相机……物体……光]
我想也许镜面反射应该乘以符号(fLDotN)?但结果似乎并不好。一般是怎么处理的?
我的猜测是我是
光照均匀位置在相机空间中设置:
具有法线和半向量的结果图像: Phong Specular+Diffuse Results
顶点着色器
片段着色器
ios - gl_PointSize OpenGLES 说明
gl_PointSize = 1.0
顶点着色器中的设置意味着或实现什么?这是否意味着顶点本身就是一个像素?
python - 使用 numpy 进行 blinn-phong 着色
为了教育目的,我正在尝试在 numpy 中实现 blinn-phong 着色。但是,我几天来一直在调试参数正在做什么。
我的总体想法如下。由于方程是针对通道给出的。我将模型应用于每个颜色通道以获得通道中的相对像素强度,然后将通道重新组合在一起以获得所有图像。
我的朗伯系数似乎没有考虑到光的位置变化,但它确实改变了像素强度,但其他参数对输出几乎没有影响。任何帮助,将不胜感激。以下是代码的相关位(有兴趣的人可以在这里找到完整的代码):
谢谢