1. 概要
今日はIAMASで神田竜さんのGLSLワークショプがありました。その中でoFでモデルを作成するのは手間が掛かるので、Houdiniで作成しているという話をされていました。
(肝心のGLSLの話ですが、僕には早かったみたいなので、まずはここから。)
Houdiniを覚えるのも良さそうですが、普段Fusion 360を使用しているのでこっちでobjファイルを作成し、oFに読み込んでみました。
2. Fusion 360でobjファイルを作成する
まずはモデルを作成します。
図のモデルは70 * 70 * 70 mmで5mmのフィレットをつけた立方体です。
通常、モデルからは3Dプリンタなどで使うstlファイルを作成できるのですが、そのままではobjファイルを作成できないので、環境設定->プレビューに進みます。
[メッシュ]作業スペースにチェックを入れてOKを押します。
メニューバーが変わるので、作成->BRepからメッシュを選択します。
左側のメニューでメッシュボディを右クリックしOBJ形式で保存を選択します。
これでモデルをobjファイルで保存することができました。
3. objモデルをopenFrameworksに読み込む
以下のサイトを参照しました。
objファイルはbin/data/にmodelsというフォルダを作成し、shikaku.objという名前で保存しました。
# pragma once
# include "ofMain.h"
# include "ofxAssimpModelLoader.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
ofxAssimpModelLoader shikaku;
ofEasyCam cam;
ofLight light;
};
# include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofBackground(50, 50, 50, 0);
ofEnableDepthTest();
ofEnableSmoothing();
shikaku.loadModel("models/shikaku.obj");
}
//--------------------------------------------------------------
void ofApp::update(){
// shikaku.drawFaces();
}
//--------------------------------------------------------------
void ofApp::draw(){
light.enable();
ofEnableSeparateSpecularLight();
ofEnableLighting();
cam.begin();
ofSetColor(255, 255, 255, 255);
shikaku.setScale(0.75, 0.75, 0.75);
shikaku.setPosition(0, 0, 0);
shikaku.drawFaces();
cam.end();
}
今はまだ黒光りしているだけのこいつをシェーダでかっこよくできるのか…。