Tags - Hirai0827/Dynamis GitHub Wiki

About

Dynamisではタグを使用してSDFを構成していきます。

基本的なノード

レンダリングに不可欠なノードです。

render

レンダリングを開始するコンポーネントです。XMLの一番外側に必ず一つだけ配置されている必要があります。

パラメータ名 説明 デフォルト値
camX カメラのX座標 camX="0.5" 0.0
camY カメラのY座標 camY="sin(iTime)" 0.0
camZ カメラのZ座標 camZ="0.5 + iTime" -1.5
colX ピクセルの色(赤) colX="0.5" (1.0 - dot(n,r) * dot(n,r))/(1.0 + d * d * 0.1)
colY ピクセルの色(緑) colY="1.0/(1.0 + d * d * 0.1)" (1.0 - dot(n,r) * dot(n,r))/(1.0 + d * d * 0.1)
colZ ピクセルの色(青) colZ="(1.0 - dot(n,r) * dot(n,r))/(1.0 + d * d * 0.1)" (1.0 - dot(n,r) * dot(n,r))/(1.0 + d * d * 0.1)
iter レイの伸長回数(定数のみ指定可能) iter="256" 128
weight 距離関数にかかる倍率 weight="0.25" 0.5

シェイプノード

形を生成するためのノードです。空タグ(</ hoge>)として表現され、タグを子として持つことはできません。

sphere

球体を生成するノードです。

パラメータ名 説明 デフォルト値
radius 球体の半径 radius="0.5" 0.5
<render>
    <sphere/>
</render>

Image from Gyazo

box

3次元の直方体を生成するノードです。

パラメータ名 説明 デフォルト値
x x方向の長さ x="0.5" 1.0
y y方向の長さ y="0.5" 1.0
z z方向の長さ z="0.5" 1.0
<render>
    <rot axis="y" angle="0.7">
        <box x="1.0" y="0.6" z="0.6"/>
    </rot>
</render>

Image from Gyazo

pillar

円柱あるいは四角柱を生成するノードです。

パラメータ名 説明 デフォルト値
axis 高さ方向の軸(x,y,z) axis="x" x
radius 球体の半径/四角柱の一辺 radius="0.5" 0.5
<render>
    <translate x = "0.2" y="-0.2">
        <pillar axis="x" radius="0.05"/>
        <pillar axis="y" radius="0.05"/>
        <pillar axis="z" radius="0.05"/>
    </translate>
</render>

Image from Gyazo

donut

トーラス(ドーナツ型)を生成するノードです。

パラメータ名 説明 デフォルト値
axis トーラスの方向(穴の開いている向き) radius="y" x
radius トーラスの大半径 radius="0.5" 0.5
width トーラスの小半径 width="0.5" 0.1
<render>
    <translate y="-0.25">
        <donut axis="x"/>
        <donut axis="y" radius="1."/>
        <donut axis="z" radius="1.5"/>
    </translate>
</render>

Image from Gyazo

トランスフォームノード

座標系を操作するためのノードです。開始タグ、終了タグのペアとして表現されます。子として内部に記述されたタグ全てに変形操作を適用します。

translate

指定された量だけオブジェクト群を平行移動させるノードです。

パラメータ名 説明 デフォルト値
x xへの移動成分 x="0.5" 0.0
y yへの移動成分 y="0.5" 0.0
z zへの移動成分 z="0.5" 0.0

rot

指定された量だけオブジェクト群を回転させるノードです。

パラメータ名 説明 デフォルト値
axis 回転の軸 axis="x" x
angle 回転の量(rad) angle="3.14" 0.0

scale

指定された量だけオブジェクトを拡大、縮小させるノードです。

パラメータ名 説明 デフォルト値
x xの拡大率(1.0で等倍) x="0.5" 1.0
y yの拡大率(1.0で等倍) y="2.0" 1.0
z zの拡大率(1.0で等倍) z="sin(iTime)" 1.0

twist

指定された軸と比例するようにオブジェクトを「捻る」ノードです。

パラメータ名 説明 デフォルト値
axis 捻り操作の軸 axis="x" x
weight 捻り操作の大きさ。実際の捻り量は(axis × weight)となる(rad) weight="sin(iTime)" 1.0

fract

座標系を繰り返させるノードです。

パラメータ名 説明 デフォルト値
size 繰り返し単位の大きさ size="1.5" 1.0
x(option) x軸方向の繰り返し単位の大きさ x="1.5" 1.0
y(option) y軸方向の繰り返し単位の大きさ y="1.5" 1.0
z(option) z軸方向の繰り返し単位の大きさ z="2.5" 1.0
<render>
    <fract>
        <box x="0.2" y="0.2" z="0.2"/>
    </fract>
</render>

Image from Gyazo

notice

sizexなどが同時に定義されている場合、sizeが優先されます。

abs

座標系を鏡写しにするノードです。

パラメータ名 説明 デフォルト値
axis 対称面("x","y","z","xyz") axis="xyz" x
<render>
    <abs axis="x">
        <translate x="0.5" y="0.0" z="0.2">
            <sphere radius="0.3"/>
        </translate>
    </abs>
</render>

Image from Gyazo

<render>
    <rot axis="y" angle="0.8">
        <abs axis="xyz">
            <translate x="0.2" y="0.2" z="0.2">
                <donut axis="z"/>
            </translate>
        </abs>
    </rot>
</render>

Image from Gyazo

minus

タグの外側で記述されたオブジェクトからタグの内側で記述された形状を切り抜くノードです。

<render>
    <rot axis="y" angle="time * 1.0">
    <box/>
    <minus>
        <translate x="0.5" y="0.5" z="0.5">
            <box/>
        </translate>
    </minus>
    </rot>
</render>

Image from Gyazo

⚠️ **GitHub.com Fallback** ⚠️