openFrameworksで3Dデータを読み込む
openFrameworksで,3Dデータを読み込んでみた.使ったのはつぼみの3Dデータ.以下からダウンロードできる. つぼみを3Dプリントできまっす! | つぼみオフィシャルサイトへようこそ! ダウンロードしたobjデータをprojectのbin/dataに置く.
プログラムを実行すると以下のようになる.
ただ,上手くライトを当てられず顔がはっきりと見えない.ライトの使い方がまだまだ難しい.
ofApp.h
#pragma once
#include "ofMain.h"
#include "ofxAssimpModelLoader.h"
class ofApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void keyPressed(int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void mouseEntered(int x, int y);
void mouseExited(int x, int y);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
ofxAssimpModelLoader model;
ofEasyCam cam;
ofLight light;
};
ofApp.cpp
#include "ofApp.h"
//--------------------------------------------------------------
void ofApp::setup(){
ofBackground(50, 50, 50, 0);
ofEnableDepthTest();
ofEnableSmoothing();
model.loadModel("tsubomi.obj");
}
//--------------------------------------------------------------
void ofApp::update(){
}
//--------------------------------------------------------------
void ofApp::draw(){
light.enable();
ofEnableSeparateSpecularLight();
ofEnableLighting();
cam.begin();
ofSetColor(255, 255, 255, 255);
model.setScale(0.75, 0.75, 0.75);
model.setPosition(0, 0, 0);
model.drawFaces();
cam.end();
}
//--------------------------------------------------------------
void ofApp::keyPressed(int key){
}
//--------------------------------------------------------------
void ofApp::keyReleased(int key){
}
//--------------------------------------------------------------
void ofApp::mouseMoved(int x, int y ){
}
//--------------------------------------------------------------
void ofApp::mouseDragged(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mousePressed(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mouseReleased(int x, int y, int button){
}
//--------------------------------------------------------------
void ofApp::mouseEntered(int x, int y){
}
//--------------------------------------------------------------
void ofApp::mouseExited(int x, int y){
}
//--------------------------------------------------------------
void ofApp::windowResized(int w, int h){
}
//--------------------------------------------------------------
void ofApp::gotMessage(ofMessage msg){
}
//--------------------------------------------------------------
void ofApp::dragEvent(ofDragInfo dragInfo){
}
openFrameworks/load3d at master · aa-debdeb/openFrameworks