私はこれについてグーグルで検索しましたが、StackOverflow を含め、「ほとんどの主要なブラウザーでサポートが壊れていた」ということしか見つかりませんでした。私の問題に対する実際の解決策ではありません。
今月のプレイボーイには、目を見張るような中折りを見るための 3D メガネ (赤/シアン) が付属していました。当然のことながら、私はインターネットにアクセスして、可能な限りすべての赤/シアンのアナグリフを見つけ、それらがどれほど素晴らしいかを調べました。最終的に、いくつかのアニメーション GIF を見つけたので、3D シーンに形状を配置できるクールな HTML5 Canvas を作成する必要があるのではないかと考えました。
これが私が得た距離です。 Google Chrome でのみ正常に動作します。Firefox では、"Elevated Text" は正しく表示されますが、四角形は正しく表示されません。
シーンを生成する方法は次のとおりです。それぞれ Z インデックスを含むレイヤーがあり、必要なレイヤーに四角形またはテキストを配置できます。コンセプトはシンプルです。オブジェクトを描画するとき、純粋な赤で左に 1 [Z-index] ピクセルを描画し、次に純粋なシアンで右に 1 [Z-index] ピクセルを描画します。
理論的には、重なっている部分を差し引いて純粋な黒にする必要があります。Chrome では、これは四角形の塗りつぶし、テキストのストロークで発生しますが、テキストの塗りつぶしでは発生しません。Firefox では、これはテキストをストロークする場合にのみ発生します。
の意図した効果globalCompositeOperation="darker"
はまさに私が望んでいることですが、この道をたどると苦痛しかもたらさないことは明らかです。
を使用せずに必要な効果を得る方法について、ここに誰か考えがありますglobalCompositeOperation
か? 色のアルファ チャネルをいじってみましたが、それがどのように組み合わされるかはあまり好きではありませんでした (純粋な黒になることはありません)。赤とシアンの四角形の間に 3 つ目の黒の四角形を描画できますが、テキストや任意の形状の問題は解決しません。
Javascript でピクセルごとのレンダリングを自分で行うこともできますが、それはやり過ぎのように思えます。何かご意見は?