1件のコメント

 
GN⁺ 2024-04-20
Hacker News のコメント
  • 数日前にこれを作った
    最初は CSS で被写界深度を「擬似的に」実装してみようと思って作ったもので、デモ動画と shuding_ から受けたインスピレーションは、サイト下部リンクの最後から2番目のツイートにある
    ところが昨晩 ThreeJS があることを思い出して、react-three-fiber で書き直した。初めて使ったけれど、かなりエルゴノミックに作られていて感心した
    ドキュメントには書いていないが、右クリックドラッグで画面移動できる

    • いいね。自分も Shuding に触発されて、CSS ベースの擬似被写界深度を作った :)
      https://depth-of-field.vercel.app/
    • UI のインタラクティブ性が気に入った。よくできている
      ドキュメント化されていない機能も確認した。macOS で ctrl+左クリックでも移動できない理由は少し不思議
  • OS と連携して、ウィンドウコンポジタの前段階の3D スクリーンショットを撮り、各ウィンドウに Z 深度を与えて、デスクトップや互いの上に浮いているようにするものだと期待していた
    こういう「3D スクリーンショット」は、正投影で見ると通常のスクリーンショットとまったく同じに見えるが、被写界深度効果を入れた瞬間に違いが現れそう
    もちろん別の投影で見たり、ここでのように 3D 空間で傾けたり、遠くのウィンドウにフォグをかけたり、点光源でウィンドウ同士が実際に影を落とすようにすることもできそうだ。半透明領域は光をより多く通すようにもできるし、理想的には HTML5 に埋め込めるビューアがこうした機能を全部提供してくれるとよい
    この形式とビューアには、visionOS の深度マッピングされた AR ウィンドウ配置を、静的に「見回せる」スナップショットとして再現するという、かなり明確な用途がありそうだ。2D デスクトップ OS のウィンドウに任意の深度マップを付けられるなら、それはおまけだ

    • これにいちばん近いものとして見たことがあるのは、Xcode のUI デバッグビューアだ。すべての UI 要素を分解図のように 3D 空間で回転して見られる
      ただし照明や影はなく、デバッグアクセス権のあるアプリに限られる
      Amazon Fire Phone も、複数の前面視線追跡カメラとジャイロ+加速度計を使って、携帯電話の UI を動かし、視差のある 3D ビューをリアルタイムでまねようとしていたように思う。昔のモバイル Safari のタブ表示でも、端末の向きに応じてタブが動いていた
      いつかグローバルイルミネーション UIを見てみたい。実用的でなくても、Microsoft Design チームが出していた Windows のレンダリングをリアルタイムで見るような感じならよい。電力の無駄は大きいだろうが、パストレーシングされた柔らかな影は格好よさそうだ
    • ほとんど VisionOS の動機、つまり 3D 空間指向の OS に近づいている
  • 最近、スクリーンショットが十分にぼやけていないとよく思っていたので、ちょうどいいね

    • 被写界深度を制限するのは、写真で特定の要素を強調するのにとても有用で、だからポートレート写真ではほぼ常に使われる
      またポートレートは望遠レンズである程度離れて撮るのがよい。実際に見える顔ではなく、人々が記憶している顔を写してくれるからだ。補正が必要になる理由は、同じレンズ構成では近くで撮ると被写界深度がずっと浅くなり、遠くから撮るとずっと深くなるためだ
    • これは不必要に皮肉っぽい言い方だ。バグレポートに添付するために、こういう被写界深度スクリーンショットを使うのは嫌だと思う
      でもマーケティングサイトでスクリーンショットの特定部分を強調し、伝えたい内容を示す視覚効果としてはよさそうだ
    • その通り。まずスクリーンショットをぼかしてから、HiDPI ディスプレイでもう一度シャープにしよう /s
  • 以前の Show HN だった Screenstab [0] のように見える
    [0] https://www.screenstab.com/editor/
    [1] https://news.ycombinator.com/item?id=34729849

    • スクリーンショットとキャプションのセットから、被写界深度とゆっくりした回転の入った動画モンタージュを作ってくれる似たようなツールはあるだろうか?
  • ほかのコメントに見える質問に答えると、これは three.js で作られている
    2D 平面に画像をレンダリングした 3D シーンで、カメラがその一部に特定のガウスぼかしを適用していると考えればよい。ズームや画像の回転には orbit controls を使っている

  • これはスクリーンショットで「残りを全部ぼかす」ということを格好よく言い換えただけなのか? 個人的には不要な部分は切り抜くほうが好みだ

    • 複雑な UI でどこへ移動すべきかを示すときは、スクリーンショットに残りの UI も残しておくのが役立つことがある
      切り抜くとナビゲーションの手がかりが消えるが、全部をくっきり残すと実際の UI と同じくらい見づらくなりかねないので、ぼかしが折衷案になり得る
  • 面白そうだ。最初はスクリーンショットのうち自分から最も遠い部分がぼけて、最も近い部分に焦点が合うのだと思ったが、実際の動作はそうではなかった
    重要な部分を示せるなら、スクリーンショットの特定部分にフォーカスを当てる用途に使えそうだ

    • 画像の一部をクリックすると、そこに焦点が合う
    • 浅い被写界深度は、写真やときどき映画で見る、人の注意を特定の要素に集めるためのまさにその目的で使われる
      ただデモを見たあとでも、これをどこに使いたいのかはよく分からない
  • 数年前に Blender で試したように、よりリアルに見えるようRGB ピクセルを追加してもよさそうだ
    https://blenderartists.org/t/rgb-display-shader/684533

  • YouTube 動画のサムネイルのようなものの背景に使うと面白そうだ
    実際の情報を伝える用途には使われてほしくないが、どのアプリケーションを使っているか分かる程度の情報は伝わるように思う

  • どうか画像の貼り付けに対応してほしい
    ペーストバッファを使う代わりにファイルシステムからファイルを選ばなければならない入力欄は、体感で5倍くらい摩擦が増える。これまで使ったすべての画像アップロードボタンに当てはまる