Back to Node List

Solid Render

solid_render

Renders a solid orthographically (one ray per pixel) into a Surface G-buffer with normal, height, depth, curvature, material and face ids.

Draft
Guide available
The node name and summary are available in English. Port, parameter, and article details are currently shown in Japanese.

Input Ports

NameTypeDescription
ソリッド
solid
Solid
Required
レンダリングする立体です。

Output Ports

NameTypeDescription
サーフェース
surface
Surface
レンダリング結果のサーフェースです。「サーフェース光プレビュー」につなぐと光を当てられます。
画像
image
Image
ライティング前のベタ塗り画像です。

Parameters

NameTypeDefaultRangeDescription / Options
カメラ方位角
azimuth
Angle
45— / step 1

カメラの水平方向の角度です。アイソメ素材は45度刻みが基本です。8方向素材はここをアニメさせます。

カメラ角スナップ
camera_angle_snap
Float
00–90 / step 0.5

レンダリング前にカメラ方位角を指定刻みへ丸めます。0ならスナップしません。8方向素材では45が基本です。

見下ろし角
elevation_preset
Enum
Iso2To1

カメラの見下ろし角のプリセットです。

  • 2:1アイソメIso2To1
    26.565度。ドット絵の定番2:1アイソメです。
  • 30°Iso30
    30度のアイソメです。
  • 45°Iso45
    45度の見下ろしです。
  • 真上Top
    ほぼ真上からの見下ろしです。
  • カスタムCustom
    カメラ仰角パラメータの値を使います。
1ユニットのピクセル数
pixels_per_unit
Int
161–128

立体の1ユニットを何ピクセルで描くかです。16なら 1×1×1 のボックスが約16px幅になります。

余白
padding
Int
10–32

自動フィットした出力の外側に足す透明余白(px)です。

カメラ仰角
custom_elevation
Float
26.5650005340576171–89 / step 0.5

プリセットがカスタムの時のカメラ仰角(度)です。

出力フレーム
frame_mode
Enum
AutoFit

出力フレームの決め方です。アニメーションや8方向素材では固定キャンバスを使います。

  • 自動フィットAutoFit
    現在の立体に合わせて出力サイズを自動調整します。
  • 固定キャンバスFixedCanvas
    ピクセル幅・高さとワールド中心を固定します。アニメーション素材向けです。
固定幅
fixed_canvas_width
Int
641–1024

出力フレームを固定するときの幅(px)です。アニメーションでフレーム幅を揃えるために使います。

固定高さ
fixed_canvas_height
Int
641–1024

出力フレームを固定するときの高さ(px)です。アニメーションでフレーム高さを揃えるために使います。

固定範囲X
frame_world_width
Float
40.05–256 / step 0.05

固定キャンバス時に使うワールド範囲のX幅です。回転素材では対象が入る大きさにします。

固定範囲Y
frame_world_depth
Float
40.05–256 / step 0.05

固定キャンバス時に使うワールド範囲のY奥行きです。

固定範囲Z
frame_world_height
Float
40.05–256 / step 0.05

固定キャンバス時に使うワールド範囲のZ高さです。

中心X
frame_center_x
Float
0-256–256 / step 0.05

固定キャンバス時の中心Xです。

中心Y
frame_center_y
Float
0-256–256 / step 0.05

固定キャンバス時の中心Yです。

中心Z
frame_center_z
Float
0-256–256 / step 0.05

固定キャンバス時の中心Zです。

概要

  • ライティングはしない: 光を当てるのは後段(サーフェース光プレビュー 等)の仕事

技術詳細

  • 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 で直接レイマーチ表示する
  • ビューア内でドラッグして角度を探し、この角度を採用 を押すと azimuthelevation_preset=Customcustom_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=45FixedCanvas を併用する
  • サーフェース書き出し につなぐとHD-2Dエンジン用マップセットになる

アニメーション時の推奨

  • frame_mode = FixedCanvas
  • fixed_canvas_width / fixed_canvas_height を最終1フレームのサイズにする
  • 対象が全フレームで収まるように frame_world_width/depth/height を広めに取る
  • 8方向素材では camera_angle_snap = 45
Back to Node List
Solid Render — PixPipeline Node Reference