2023年5月8日月曜日

Blender3D分析空間の視認性向上

 Improved visibility of Blender3D analysis space


I'm doing a spatial analysis of a shell mound in Blender3D space. I introduced a 3D mesh made by arranging empty (CUBE) to improve the visibility. Spatial positions of shell layers and relics become easier to understand. No 3D mesh gets in the way.


Blender3D空間を有吉北貝塚北斜面貝層の分析空間として活用していますが、その視認性向上のために2m×2m×2mの3Dメッシュを一部空間に導入してその効果を確かめました。貝層や土器破片の空間関係に関する視認性が向上します。

1 3Dメッシュ


3Dメッシュの有無


3Dメッシュの有無


3Dメッシュの有無


3Dメッシュの有無

2 メモ

3DメッシュはBlenderオブジェクトのエンプティ(CUBE)を並べて作成しました。

エンプティの線が太さや面積をもたないという虚特性によりその存在の主張が弱く、対象物観察の邪魔になりません。しかし、3D位置関係を指示しますので、3D空間の視認性がとても向上します。

線の太さや面積のあるオブジェクト(MESH)で同じ3Dメッシュを作成しましたが、それ自身の主張が強すぎてかえって3D空間視認性の邪魔になります。

このエンプティはBlenderの外に書き出すことはできないようです。

3 3Dメッシュ作成スクリプト

この3Dメッシュは見よう見まねで次のBlenderPythonスクリプトを書き、作成しました。(このスクリプトをパソコンで走らせると、20メッシュ×20メッシュ×20メッシュの作成に10分ほどかかりました。)

……………………………………………………………………

import bpy


NUM_X = 20

NUM_Y = 20

NUM_Z = 20


def make_empty(x,y,z):

  loc = (x,y,z)

  empty = bpy.ops.object.empty_add(type='CUBE',location=loc)


def make_empties(num_x,num_y,num_z):

  for x in range(num_x):

    for y in range(num_y):

        for z in range(num_z):

            make_empty(x*2-(num_x-1),y*2-(num_y-1),z*2-(num_z-1))


if __name__ == "__main__":

  delete_all()    

  make_empties(NUM_X,NUM_Y,NUM_Z)


……………………………………………………………………


0 件のコメント:

コメントを投稿