2008-01-01から1年間の記事一覧

はじめに

Blender + python で無料、お手軽、高画質、かつほぼフルスクリプト制御な3次元作図を目指す。基本的には個人的なメモ・備忘録。 Blender + python とは? Blender は比較的高画質な画像が作れる無料の3次元モデリング・レンダリングソフト。 python は最…

目次

スタートアップ Blender と python を手に入れる。 Blender と python を速習する(外部サイトの紹介)。 とりあえず Hello, world. 新しいシーンを作って何か描いてみる。 逆引きリファレンス (注:スタートアップ(↑)の知識を前提とする。) モノに属性…

通過点を指定して曲線を描く

==暫定版== 通過点を直接指定して曲線を描く方法が判らないので、 Bezier 曲線の機能を使って無理矢理描く。たぶんもっとうまい方法があるはず? import math #### Define some functions #### def pbez(v): return BezTriple.New(v.x, v.y, v.z, v.x, v…

MRI 等からのデータを滑らかにする。

MRI や CT で撮ったデータをそのまま読み込んで使うと画素数によっては滑らかに見えないときがある。 これを滑らかにする。 ob を object だとすると m = ob.getData(mesh=True) for e in m.edges: e.sel = 1 m.remDoubles(0.01) for f in m.faces: f.smooth…

ステレオ画像を作る。

カメラの位置を少しずらすことで、ステレオ写真(両眼視差を利用した立体画像)的なことをする。 (交差法で立体的に見えるはず。モデルは The Official Blender Model Repository で sebi さんが公開されているものを使用。) cam をカメラオブジェクトだと…

領域色分割・エッジ強調をする。

特殊用途(?)として、オブジェクトや図地を色で分割する。あるいはエッジを強調する。 元画像 色分割。 mmat を Object に関連付けられた Material として(モノに属性(色や透明度)を付ける。参照) mmat.mode |= Material.Modes.SHADELESS エッジ強調。…

背景色を変える(透過背景にする)。

w = World.New('myworld') w.setCurrent() w.skytype = 0 w.hor = [0.3, 0.6, 1.0] 新しい世界(World)を作成し、その世界を使用する。「.hor」で背景の RGB 値を指定。タプル("()")ではなくてリスト("[]")であることに注意。 世界(World)の詳細はこ…

レンダリング結果をファイルに保存する。

scene = Scene.GetCurrent() context = scene.getRenderingContext() context.render() context.imageType = Scene.Render.PNG context.setRenderPath('D:\\blender\\') context.saveRenderedImage('test.png') 現在のシーン(scene)からレンダリングに関す…

出力サイズを変える。

scene = Scene.GetCurrent() context = scene.getRenderingContext() context.imageSizeX(320) context.imageSizeY(256) context.render() 現在のシーン(Scene)からレンダリングに関するインスタンス(context)を取得し、context を通じてサイズを変える…

モノに属性(色や透明度)を付ける。

m を object だとすると、 mmat = Material.New('myMaterial') mmat.rgbCol = (1.0, 0.0, 0.0) m.setMaterials([mmat]) m.colbits = 1 属性(Material)インスタンス mmat を作成して「.rgbCol」で RGB 値を指定。それを「setMaterials」でオブジェクトに関…

新しいシーンを作って何か描いてみる。

スクリプトを用いて新しくシーンを作り、何かレンダリング出来るようにする。 やることは4つ。 新しくシーンを作る。 光源を置く。 カメラを置く。 物を置く。 from Blender import * #### Scene #### scene = Scene.New('myScene') scene.makeCurrent() ##…

とりあえず Hello World

まずは python スクリプトが実行できるようにする。 Help の横にあるリストボックスの左側(上下三角のアイコン)をクリック。出てきたメニューから「5-scripting」をクリック。 そうすると のようにウィンドウが分割される。分割部分の大きさは境界をドラッ…

Blender と python を速習する(外部サイトの紹介)

Blender チュートリアル(本当に初めての方のために作成したBlenderチュートリアル) WBS+(Web/Blender Studio+) 藤堂+さんによるチュートリアル。とても判りやすい。 当「備忘録」の趣旨上、基本的にはスクリプトでの操作を前提にするにしても、作業画面の使…

Blender と python を手に入れる。

LinuxK/Ubuntu (Debian 一般)コンソールから sudo apt-get install python sudo apt-get install blender でインストール。その後、同じくコンソールから blender で起動。メイン画面(下図A)が表示されるはず。また blender を起動したコンソールは pytho…