Make3D-Web: ブラウザベースの3Dモデリングとレイトレーシング

Web

概要

Make3D-Web は、ウェブブラウザ上で動作する3Dモデリングおよびレンダリング環境です。Blenderのようなハードサーフェスモデリング操作(エクストルード、ベベル、ブーリアンなど)を意識したUIとワークフローを提供し、マテリアルはPBRに準拠、レンダリングはレイトレーシング方式で高品質な画像生成を目指しています。プロジェクトは開発者が主体的に進めており、レイトレーサーは別チームメンバーと共同で開発されたとのこと。オンライン版は make3d.online で確認できます。開発の意図は、ブラウザで手軽に使えるリアルなモデリングと物理ベースのレンダリング環境を作ることです。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 2
  • ウォッチャー数: 5
  • コミット数: 6
  • ファイル数: 4
  • メインの言語: JavaScript

主な特徴

  • ブラウザで動作するBlenderスタイルのハードサーフェスモデリング機能
  • PBR(物理ベースレンダリング)をサポートしたマテリアル表現
  • レイトレーシングベースのレンダラーで高品質レンダリングを実現
  • オンラインで利用可能(make3d.online)かつ開発者主体の軽量実装

技術的なポイント

Make3D-Web は「ブラウザ上での高度なモデリング」と「レイトレーシングレンダリング」の両立を目指す点が技術的に興味深いです。フロントエンド側は JavaScript を中心に構築されており、レンダリングエンジンはレイトレーシング方式を採用しているため、ピクセルごとの光線追跡でPBRマテリアルの正確な反射・屈折・シャドウ表現が可能になります。ブラウザ環境でこれを実現するには、主に以下の技術課題と対策が想定されます。

  • パフォーマンス最適化: レイトレーシングは計算量が多いため、BVH(Bounding Volume Hierarchy)等の加速構造を使ってレイ-トライアングル交差回数を削減することが重要です。ブラウザ実装では、WebGLのシェーダやWebAssemblyを使ったネイティブ近似実行で処理負荷を分散する実装が有効です。
  • リアルタイム性と逐次レンダリング: 完全なリアルタイムは難しいため、プログレッシブレンダリング(低サンプルから徐々に品質を上げる手法)や、デノイジング処理を組み合わせることで実用的な応答性を確保できます。
  • モデリングワークフロー: Blenderスタイルのハードサーフェス機能はメッシュ操作(エッジループ、ベベル、ブーリアン)やトポロジー維持が重要です。ブラウザ上でこれらを実装する際は、軽量かつ操作レスポンスの良いデータ構造(半エッジや頂点-面参照など)と、Undo/Redoや履歴管理の仕組みが必要になります。
  • PBRとマテリアル表現: PBRではアルベド、メタリック、粗さ(roughness)、法線マップなどを扱います。物理的に正しいBRDFを採用し、環境マップやIBL(Image-Based Lighting)との組み合わせで自然なライティングを実現します。
  • ブラウザ固有の制約: メモリ制限、スレッド利用(Web Workers)、GPUアクセス(WebGL 2.0 や今後の WebGPU)への対応を考慮した設計が求められます。

これらを踏まえ、Make3D-Webはウェブ向けに機能を絞りつつレンダリング品質を追求するトレードオフが図られていると推測されます。レイトレーシング部分が別メンバーと共同開発された点は、レンダラーの独立性(モジュール化)や将来的な拡張(GPU実装や分散レンダリング)を意識した設計である可能性が高いです。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • code: dir

まとめ

ブラウザで高品質なハードサーフェスモデリングとPBRレイトレーシングを試せる興味深いプロジェクト。今後の拡張性に期待。

リポジトリ情報:

READMEの抜粋:

Make3D-Web

English

Make3D is a web-based 3D modeling and rendering software that supports Blender-style hard-surface modeling and PBR material ray-tracing rendering.

The current online official website is make3d.online.

About the Project

I am the developer of this project and have completed almost all of the development work. The ray-tracing renderer was co-developed with another teammate. You can reach me at 994299094@qq.com or via WeChat: breakerror. Graphic enthusiasts and …