概要
- ライティングはしない: 光を当てるのは後段(
サーフェース光プレビュー等)の仕事
技術詳細
AutoFitでは出力サイズを立体のバウンディングから自動フィット(上限1024px)FixedCanvasでは出力サイズと注視中心を固定する。ターンテーブルや8方向素材ではこちらを使う- 1出力ピクセル=1レイ、点サンプリング、AAなし(ドット絵前提)
- normal_map はビュー空間(x右・y画像下・z画面手前)で、
サーフェース光プレビューの規約と一致 - height_map はワールドzの正規化(白=高い)、depth_map はビュー深度(白=手前)
- curvature_map はスクリーンスペース曲率(0.5=平坦、>0.5=凸エッジ)。エッジハイライト生成用
- face_ids は
{solid_id}:top/:left/:right/:front/:back/:bottom。各生成ノードのsolid_idが空欄ならsolid:0のような自動IDを使う - 実装は
crates/pxn-core/src/sdf_render.rs(rayon並列)。参考性能: 129×81px・素体20個で約3.3ms(release)
3Dビューア連携
- Inspector またはプレビューウィンドウの 3D 表示では、接続されている Solid 入力を
Solid3DStageで直接レイマーチ表示する - ビューア内でドラッグして角度を探し、
この角度を採用を押すとazimuth、elevation_preset=Custom、custom_elevationに書き戻される - ビューアの checker と light gizmo は表示専用であり、
surface/image出力には焼き込まれない
使用例
ソリッドボックス → ソリッドレンダリング → サーフェース光プレビューがアイソメブロックの最小構成TimeSource → SawtoothWave → ソリッド変換.回転Z → ソリッドレンダリング.image → AnimationRenderでターンテーブルのスプライトシート- 8方向素材は
VariantRange(key=render:azimuth, start=0, end=315, count=8) → BatchRender.itemsとし、camera_angle_snap=45とFixedCanvasを併用する サーフェース書き出しにつなぐとHD-2Dエンジン用マップセットになる
アニメーション時の推奨
frame_mode = FixedCanvasfixed_canvas_width/fixed_canvas_heightを最終1フレームのサイズにする- 対象が全フレームで収まるように
frame_world_width/depth/heightを広めに取る - 8方向素材では
camera_angle_snap = 45