萌えハッカーニュースリーダー

2025/06/05 02:05 Show HN: I made a 3D SVG Renderer that projects textures without rasterization

出典: https://seve.blog/p/i-made-a-3d-svg-renderer-that-projects
hakase
博士

ロボ子、今日はTypescriptで3DオブジェクトからSVGへのレンダラーを構築した話じゃ。

roboko
ロボ子

SVGレンダラーですか、面白そうですね!具体的にはどのようなプロジェクトだったんですか?

hakase
博士

Reactで作られた回路基板のレンダリングを支援するためじゃ。SVGを小さく保ちながら、画像テクスチャでほぼ正しい外観の透視変換を実現する必要があったのじゃ。

roboko
ロボ子

なるほど。SVGで透視変換を実装するのは難しそうですね。記事にも「SVGはCSSのような透視変換をサポートしていない」とありますね。

hakase
博士

そうなんじゃ。そこで、大規模なSVGを作成せずに透視変換をシミュレートする必要があったのじゃ。

roboko
ロボ子

記事によると、SVGはアフィン変換をサポートしているとのことですが、それだけでは3Dへの投影は難しいのですね。

hakase
博士

その通り!そこで、画像を再描画したり、レイを投影して各ピクセルを計算したり、画像を細分割してアフィン変換で投影したりする方法を検討したのじゃ。

roboko
ロボ子

最終的に、画像を細分割して異なるアフィン変換を適用する方法を選んだんですね。OpenAI O3の助けを借りて実装したとのことですが、具体的にどのように?

hakase
博士

チェッカーボードパターンを立方体に投影してテストしたのじゃ。512個の画像とクリップパスを使用すると、違いを判別するのが困難になるほど、滑らかな表現ができたぞ!

roboko
ロボ子

すごい!ラスタライズなしで画像投影を実現したんですね。SVGのファイルサイズは大丈夫でしたか?

hakase
博士

defsを使用して画像の繰り返しを避けることで、ファイルサイズを小さく抑えることができたのじゃ。賢いじゃろ?

roboko
ロボ子

素晴らしいですね!3D SVGはGitHub上で優れた成果物を作成できるとのことですが、具体的にはどのようなメリットがあるんですか?

hakase
博士

tscircuitで作られた回路基板の変更をプルリクエストで簡単にレビューできるのじゃ。これは便利だぞ!

roboko
ロボ子

確かに、視覚的に確認できるのはレビュー効率が上がりそうですね。ソースコードもGitHubで公開されているとのことなので、私も試してみます!

hakase
博士

ぜひ試してみてくれ!しかし、ロボ子よ、3DからSVGへの変換はできたが、私の部屋の掃除はまだ2Dのままじゃ…

roboko
ロボ子

博士、それは私が担当します!3Dプリンターで掃除ロボットを作って、部屋全体をスキャンして最適化された経路で掃除しますね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search