Skip to content

Headless 3D model renderer for .glb / .obj files. Render still images from custom viewpoints via CLI.

License

Notifications You must be signed in to change notification settings

takago/EzRender

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EzRender

EzRender は、.glb.obj 形式の 3D モデルをコマンドラインからレンダリングし、静止画像として保存・表示できる Python スクリプトです。

timg を使用してターミナル内で画像を表示できるため、簡易的な確認に便利です。

ss


特長

  • .obj / .glb に対応
  • カメラ位置の指定が可能:
    • 極座標(距離と角度)
    • 直交座標(x, y, z)
  • WebP 形式での画像保存
  • timg を使用したターミナル内での即時プレビュー表示(mlterm や ezterm などの Sixel 対応端末が必要)
  • 出力画像サイズの指定(デフォルト:512x512)
  • ヘッドレス環境での GPU レンダリングが可能(EGL 使用)
  • モデル情報の表示機能(--info オプション)
    • 注意: Color Attribution 情報はテキトウです(...もっとよく勉強してから直す予定)

ファイル説明

  • ezrender.py ... 3Dデータをターミナルに表示・保存するプログラム
  • おまけ(→ utils内のプログラム)
    • srgb2linobj.py... SRGB頂点カラーOBJ → LiearRGB頂点カラーOBJ
    • e3d_objfix.py ... Era3D のinstant-nsr-pl で出力されるrefine_###.objを修復してアーティファクトが発生しないようにするツール(アーティファクトの原因を調べるが大変でした・・・)
    • tkg_era3d_fullauto.py ... Era3D を簡単に実行するためのスクリプト(Era3DはConda環境で作成していることを想定).
    • vc2texobj.py ... 頂点カラーOBJをUVテクスチャOBJにする(pymeshlabで,UV展開・頂点カラーをテクスチャにベイク).
    • vc2glb.py ... 頂点カラーOBJをGLBにする(pyxatlasでスマートUV展開して,pymeshlabで頂点カラーをベイク).

インストール

sudo apt-get install timg
pip install trimesh==4.6.8 pyrender==0.1.45 PyOpenGL Pillow tabulate
pip install pymeshlab==2023.12.post3
pip install https://github.com/mworchel/xatlas-python.git

使い方

python ezrender.py MODEL_FILE [オプション]

使用例

1. マルチビュー画像の表示

python ezrender.py model.glb

2. モデル中心から距離 3.0、方位角 45 度で画像を表示(保存しない)

python ezrender.py model.glb --distance 3.0 --angle 45

3. カメラ位置を x=1, y=2, z=3 で指定し、画像を保存(表示なし)

python ezrender.py model.obj --cam-xyz 1.0,2.0,3.0 --output output.webp --no-view

4. 出力画像サイズを 1024x768 に指定して保存

python ezrender.py model.obj --cam-xyz 0.5,1.5,2.0 --output view.webp --size 1024x768

5. モデル情報を表示(メッシュ数、頂点数、色情報など)

python ezrender.py model.glb --info

オプション一覧

オプション 説明
--distance カメラの極座標モード:中心からの距離(--angle とセット)
--angle カメラの極座標モード:水平回転角(度)
--cam-xyz カメラ位置を x,y,z 形式で直接指定
--output 画像保存ファイル名(拡張子 .webp
--no-view timg での画像表示を無効化(デフォルトでは表示されます)
--size WxH 出力画像サイズ(例:--size 1024x768、デフォルト:512x512)
--light-intensity 光源の明るさ(指定がない場合はモデルスケールに応じて自動設定)
--info モデル情報を表示(メッシュ数、頂点数、色情報、UV マッピングの有無)

モデル情報の表示例(--info オプション)

以下は、--info オプションを使用した際の出力例です。

🔍 Model Information (Total Meshes: 2)

+--------+-----------+--------+------------------------------+-------------+
| Mesh   | Vertices  | Faces  | Color Attribution            | UV Mapping  |
+--------+-----------+--------+------------------------------+-------------+
| 0      | 1024      | 2048   | Texture Mapping (UV + Image) | Yes         |
| 1      | 300       | 600    | Vertex Color (RGBA)          | No          |
+--------+-----------+--------+------------------------------+-------------+

ライセンス

MIT License(LICENSE を参照)


© 2025 Daisuke TAKAGO

About

Headless 3D model renderer for .glb / .obj files. Render still images from custom viewpoints via CLI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages