モデルの座標を外部のファイルに保持することができるので、
C言語のソースファイルに座標を書かなくても良くなります
また、座標を直接書くよりも直感的にモデルを作成できます
はい、多分そっちのほうがラクです
でも3Dだとこんな感じで座標を読み込んで処理する必要があるので
考え方だけは知ってていいんじゃないかなって
フリーでオープンソースな3DCG作成ソフトウェア
フリーなのにかなりの高機能です
ちなみに電算機室のPCにもインストールされています
今回はこれで作ったモデルをglutで表示させるっていう話
ただし、3Dなモデルを扱うのは面倒なので、今回は2Dなモデルを対象とします
手順は以下の通り
また、Blenderから書き出すテキストファイルは次のような構造にします
60 -38.778374 -50.802578 -3.070045 -41.519920 -3.070040 -13.671919 38.940594 -50.802589 3.232277 -13.671919 以下続く...
BlenderはPythonスクリプトを用いて操作することができます
この機能を使って、モデルの座標を外部のテキストファイルに書き出します
モデルの作成方法は適当に調べてくださいいくらでも情報出てきます
まずはスクリプトを書くための画面を表示させます
画面上のツールバー内「Default」の左のボタンを押し、出てきたメニューから
「Scripting」を選択
次に、画面左の中央より少し下の「New」を押して
テキストを新規作成します
すると、テキストを打てるようになるので、そこにスクリプトを書く
なお、スクリプトの意味は以下の通りである
import bpy # モデルの拡大率 # 書きだしたモデルは非常に小さいので、ある程度拡大する scaling = 40 # Plane.txtファイルを作成 # ファイル名を書き換えることで違うファイルに書き出すこともできる f = open("Plane.txt", "w") # 選択されているオブジェクトを取得 obj = bpy.context.active_object # 頂点の数を書き出す f.write(str(len(obj.data.polygons) * 3)) f.write("\n") # ポリゴン(多角形)を書き出す # obj.data.polygonで選択されているオブジェクトの # ポリゴンのリストを取得できる for poly in obj.data.polygons: # ポリゴンの頂点のうち3つのみ(すなわち三角形)を書き出す for i in range(0, 3): # 頂点を取得して先ほど指定した拡大率で拡大 co = obj.data.vertices[poly.vertices[i]].co * scaling # ファイルに頂点を書き出す f.write("%f %f\n" % (co.x, co.y)) # ファイルを閉じる f.close()
スクリプトを打ち込んだら、テキストを入力した画面の右下にある「Run Script」を押して
スクリプトを実行します
エラーが無ければPlane.txtというファイルがBlenderファイルと同じ場所にできているはずです
今回書きだしたテキストファイルをC言語で読み込んでglutで描画する話を書きます たぶん