Combining shapes

形を組み合わせる

To design complex shapes with SDF, you need to combine multiple different shapes. We have already seen how taking the minimum of two SDFs can merge shapes. In this section, we will explore other useful functions. These functions are all from Inigo Quilez's article.

複雑な形状をSDFで作るには、複数の異なる形を組み合わせる必要があります。すでに2つのSDFの最小値を取ることで形状を結合する方法について触れました。このセクションでは、その他の便利な関数について説明します。これらの関数はすべて、Inigo Quilezの記事が出典です。

Boolean operations

ブール演算

Boolean operations are a common concept used in various design tools. With SDF, boolean operations such as union, intersection, and difference can be expressed as simple comparisons of distances, allowing you to sculpt various shapes.

ブール演算は、さまざまなデザインツールで使われています。SDFでは簡単な距離の比較を用いて、和(union)、共通部分(intersection)、差(subtraction)などのブール演算を表現することができます。これを使うとさまざまな形状を造ることができます。

boolean.png

float opUnion( float d1, float d2 ) { return min(d1,d2); }

https://codepen.io/kynd/pen/MWLyxqg?editors=0010

float opSubtraction( float d1, float d2 ) { return max(-d1,d2); }

https://codepen.io/kynd/pen/LYqLRYX?editors=0010

float opIntersection( float d1, float d2 ) { return max(d1,d2); }

https://codepen.io/kynd/pen/yLZXayX?editors=0010