我正在尝试制作一个行星的球形图像,其夜面处于阴影中,以便在浏览器中渲染为模拟网页,但我一直在与一个奇怪的视觉问题作斗争,我似乎无法弄清楚。
下面是在 Chrome 中显示的 SVG 图像片段(IE 中也会出现这种情况),然后放大 3 倍:
您会注意到,在昼/夜明暗界线上方,有一条微弱的深色水平带,其宽度约为明暗界线上方距离的 1/3。那不应该在那里,我不明白为什么它在那里或如何摆脱它。
(如果您愿意,可以将其保存到 HTML ( .html) 文件(添加 html 和 body 标签),然后在浏览器中运行以查看它。或者将其保存到 SVG 文件 ( .svg),然后删除div 和 br 标签,如果你想在上面使用任何 SVG 工具。
此伪影正好发生在线性渐变停止点之一的位置,特别#stopEaDusk
是在线性渐变中的第 33 行#lgdEaNightSide
,该渐变被用作覆盖路径的填充#pNight
。这种伪影可能看起来非常微弱,但它是真实的,并且在未缩小 300% 时更加明显。我实际的 SVG 还有一个免费的#pDay
覆盖层,我将其删除以简化代码。但是当它被添加时,我得到了三个暗带伪像,一个在上面,一个在另一侧的相应位置(我有另一个黎明/黄昏停止点),一个在两个叠加层相遇的中点。当它们三个都可见时,看起来很可怕,所以我不能忽视它。
其他要点:
据我所知,这不仅仅是这里所建议的视觉错觉,因为即使被炸毁它仍然存在。如果是的话,我仍然需要修复它。
我不相信这是这个答案中建议的这个旧的 Chrome 错误,因为它看起来不同,但主要是因为我也在 IE 中看到它(尽管它可能更微弱)。
对于这里的问题似乎有些混乱,所以请允许我澄清一下。线性梯度lgdEaNightSide
是为了显式效果而编写的,它似乎正在这样做,但它也产生了不希望的副作用,而且据我对 SVg 的最佳理解不应该发生。
期望的效果是 pNight 叠加添加: 1. 70% 黑暗,在其弧线顶部(非常高且超出屏幕),平滑地着色到 99% 向下的 60% 黑暗。2. 然后快速从 60% 暗度 99% 下降到 50% 暗度 100% 下降。这是为了提供一个类似黄昏的过渡区域。
然而,除此之外,它还增加了不需要的效果: - 在下降到大约 98.8% 时,它突然变暗 - 然后在下降到大约 99.2% 时,它突然再次变亮。
这不应该发生,据我所知,我编写的 SVG 不应该这样做。
我正在寻找的是如何保持第一个(所需的)效果,同时消除第二个(不需要的)效果。
我不需要被告知第二站导致了问题。我知道,我在上面说过了,并且在代码注释中指出了这一点。我不需要答案来告诉我我已经知道的事情。我正在寻找的是:
如何修复它,同时保留我最初编写它的视觉效果,以及
为什么会发生这种情况,据我所知,它不应该发生。
翻过高山走不出你
小唯快跑啊
相关分类