レッスン 5. ブール表現を習得

Lesson 5: Learning About Boolean Expressions より。
http://brlcad.com/downloads/documentation/BRLCAD_VolumeII.pdf

以下の文の内容について、公式に問い合わせたりしないでください。また、翻訳文章ではありません、かいつまんだりして書いたものです。目次の項目が一致するようにしてあります。

目次

  1. 領域の組み合わせ: ブールツール
  2. ブール演算
  3. ブール演算子を使用して領域を作成
  4. (なし?)
  5. 演算子操作

MGED でモデリングする際に重要なブール演算を用いたモデルの構築について。

1. 領域の組み合わせ: ブールツール

MGED は二つのオブジェクトをサポートしており、それぞれはブール演算を行えます。組み合わせ (combination) と領域 (region) です。

MGED での構成図系は基本図形 (primitive) です。これらのみですべてのモデルを作ることはできないため、それらを組み合わせて複雑な図形を構築します。複数の図形をブール演算で組み合わせ (combination) ます。

前の章では、マテリアルのプロパティは領域に割り当てられていました。組み合わせのように、領域はブール演算で複雑な図形を形成できます。違いは、領域にはマテリアル属性がある点です。

基本図形と組み合わせは、オブジェクトの青写真だと思ってください。実際のオブジェクトは領域が生成されたときに作られます。

単純な図形からブール演算で構築された複雑な図形を組み合わせ図形 (shape combination) と呼びます。これは他の論理構造、または階層構造をの構築に使用できます。これらはグループまたは組み合わせの構築 (assembly combination) となります。

2. ブール演算

MGED で使用できるブール演算は三つで、和 (union)、減算 (subtraction)、交差(intersection) です。和では、二つの図形を融合させます。減算では、ある図形から別の図形の空間を切り取ります。交差では二つの図形の重なりを図形とします。

和演算の演算子は u で、二つの図形を融合させます。

減算

減算演算の演算子は - (マイナス) で、ある図形から別の図形と交差している部分を取り除きます。

交差

交差演算の演算子は + (プラス) で、二つの基本図形の重なり部分のみを新しい図形とします。

ブール演算の減算と交差では、二つ目の図形がなければ演算子が無視されます。和ではいつも使用されます。

3. ブール演算子を使用して領域を作成

レッスン 3 で作成した shapes.g データベースを開いてください。そして、コマンドウィンドウに次のように入力してください。

draw sph2.s rcc2.s

以前作成した図形が描写されます。この図形でブール演算を行なってみます。

r part1.r u rcc2.s - sph2.s

r: 領域作成
u: 和

  • : 減算

マテリアルプロパティの設定を GUI で行なってみましょう。メニュー - Edit - Combination Editor を選択してください。

Name 欄のドロップダウンをクリックして、Select From All を選択、開いたウィンドウで part1.r をダブルクリックしてください。この図形のマテリアルプロパティ設定を行います。
Show Shader ボタンをクリック、Shader カテゴリを表示します。Color のドロップダウンで赤色を選択してください。OK ボタンを押して決定します。

今のグラフィックウィンドウには基本図形のみが表示されています。レイトレーシングを行う前に、グラフィックウィンドウをクリアして再描写します。

B part1.r

メニュー - File - Raytrace を選択して Raytrace Control Panel ウィンドウを表示します。Raytrace ボタンをクリックしてレイトレーシングを開始してください。円柱が円で削り取られたような図形が表示されます。

次に、交差領域を作成します。

r part2.r u rcc2.s + sph2.s

コマンドでマテリアルを設定します。

mater part2.r plastic 0 0 255 0

再描写します。

B part2.r

交差演算を使用した場合、演算子の順序で結果に違いはありません。

r part2.r u sph2.s + rcc2.s

しかし、減算演算では二つの図形の順序で結果が異なります。

r part2.r u sph2.s - rcc2.s

マテリアルプロパティを設定しませんが、その場合図形は白色とみなされます。

三つの領域を再描写します。

B part1.r part2.r part3.r

この操作を一度だけ行うのは大した手間ではありませんが、何度も行う時に一々全部の領域を指定するのは面倒です。オブジェクトの集合 (assembly combination) を作成するには簡単で、comb コマンドを使用します。

comb dome.c u part1.r u part2.r u part3.r

この集合体を再描写するには次のようにします。

B dome.c

領域と組み合わせ (combination) は異なるもので、組み合わせでは同じマテリアルで構成されていなくてもかまいません。複数のオブジェクトから集合体が作成できます。

集合体の作成はよく行うため、ショートカットコマンド g (グループ) が用意されてます。このコマンドの場合、u を入力する必要はありません。

g dome.c part1.r part2.r part3.r

5. 演算子操作

より複雑な演算を行えます。例えば次のようなものです。

comb demo.c u shape1 - shape2 u shape3 - shape4 + shape5

この例の結果は次のようなブール演算になります。

(shape1 - shape2) u ( (shape3 - shape4) + shape5 )