我已经用谷歌搜索了这个问题,我能找到的所有东西,包括在 StackOverflow 上,都是“大多数主流浏览器的支持都被破坏了。” 不是我的问题的实际解决方案。
本月的《花花公子》带着一副 3D 眼镜(红色/青色)来观看令人瞠目结舌的插页。自然地,我上网寻找我能找到的每一个红色/青色立体图,看看它们有多棒。最终我找到了一些动画 GIF,这让我产生了一个想法,也许我应该制作一些很酷的 HTML5 Canvas 东西,让你可以在 3D 场景中放置形状。
这就是我走多远。 仅适用于谷歌浏览器。在 Firefox 中,“高架文本”看起来应该是正确的,但不是矩形。
因此,我生成场景的方式是:有一些图层,每个图层都包含一个 Z 索引,您可以在任何您想要的图层上放置一个矩形或一些文本。这个概念很简单。绘制对象时,向左绘制一个 [Z-index] 像素为纯红色,然后向右绘制一个 [Z-index] 像素为纯青色。
理论上,重叠部分应该减去成为纯黑色。在 Chrome 中,填充矩形、描边文本会发生这种情况,但填充文本不会。在 Firefox 中,这只发生在描边文本上。
虽然预期的效果globalCompositeOperation="darker"
应该完全符合我的要求,但很明显,沿着这条路走下去只会带来痛苦。
这里有没有人知道如何在不使用的情况下获得我想要的效果globalCompositeOperation
?我尝试在颜色上弄乱 alpha 通道,但并不真正喜欢它是如何组合在一起的(它们从不加起来是纯黑色)。我可以在红色和青色之间绘制第三个黑色矩形,但这并不能解决文本或任意形状的问题。
我可以在 Javascript 中自己进行逐像素渲染,但这似乎有点矫枉过正。有什么想法吗?