//-------------------------------------------------------------- void testApp::draw(){ ofBackground(50, 50, 50, 0); ofSetColor(255, 0, 255, 255); model.setRotation(0,90,0,1,0); model.setScale(0.2, 0.2, 0.2); model.setPosition(ofGetWidth()*2/6, (float)ofGetHeight() * 0.75 , 0); model.drawFaces(); }
ofVec3f AssimpUtils::getAnimatedObjectPosition(ofxAssimpModelLoader &model){ ofxAssimpAnimation &animation = model.getAnimation(0); const aiNodeAnim * channel = animation.getAnimation()->mChannels[0]; float progressInSeconds = animation.getPositionInSeconds(); aiVector3D presentPosition(0, 0, 0); if(channel->mNumPositionKeys > 0) { unsigned int frame = 0; while(frame < channel->mNumPositionKeys - 1) { if(progressInSeconds < channel->mPositionKeys[frame+1].mTime) { break; } frame++; } unsigned int nextFrame = (frame + 1) % channel->mNumPositionKeys; const aiVectorKey & key = channel->mPositionKeys[frame]; const aiVectorKey & nextKey = channel->mPositionKeys[nextFrame]; double diffTime = nextKey.mTime - key.mTime; if(diffTime < 0.0) { diffTime += animation.getDurationInSeconds(); } if(diffTime > 0) { float factor = float((progressInSeconds - key.mTime) / diffTime); presentPosition = key.mValue + (nextKey.mValue - key.mValue) * factor; } else { presentPosition = key.mValue; } } return ofVec3f(presentPosition.x, presentPosition.y, presentPosition.z); }
void setup() { ofEnableDepthTest(); ofDisableArbTex(); img.loadImage("img1.jpg"); env.loadImage("env.jpg"); env1.loadImage("env1.jpg"); shader.load("material.vert","material.frag"); model.loadModel("wolf.dae", true); }
void keyPressed(int key) { if(key == '1') { model.loadModel("wolf.dae"); cube=false; } if(key == '2') { model.loadModel("elephant.dae"); cube=false; } if(key == '3') { model.loadModel("alduin.obj"); cube=false; } if(key == '4') cube=!cube; if(key == ' ') ofToggleFullscreen(); if(key == 'q') { shader.load("material.vert","material.frag"); reflect=false; sreflect=false; } if(key == 'w') { shader.load("material.vert","material1.frag"); reflect=false; sreflect=false; } if(key == 'e') { shader.load("material.vert","material2.frag"); reflect=false; sreflect=false; } if(key == 'r') { shader.load("material.vert","material3.frag"); reflect=false; sreflect=false; } if(key == 't') { shader.load("material.vert","material4.frag"); reflect=false; sreflect=false; } if(key == 'y') { shader.load("material.vert","material5.frag"); reflect=false; sreflect=false; } if(key == 'u') { shader.load("material.vert","material6.frag"); reflect=false; sreflect=false; } if(key == 'i') { shader.load("material.vert","material7.frag"); reflect=false; sreflect=false; } if(key == 'o') { shader.load("material.vert","material8.frag"); reflect=false; sreflect=false; } if(key == 'p') { shader.load("material.vert","material9.frag"); reflect=false; sreflect=false; } if(key == 'a') { shader.load("material.vert","material10.frag"); reflect=false; sreflect=false; } if(key == 's') { shader.load("material.vert","material11.frag"); reflect=false; sreflect=false; } if(key == 'd') { shader.load("material.vert","material12.frag"); reflect=false; sreflect=false; } if(key == 'f') { shader.load("material.vert","material13.frag"); reflect=false; sreflect=false; } if(key == 'g') { shader.load("material.vert","material14.frag"); reflect=false; sreflect=false; } if(key == 'h') { shader.load("material.vert","material15.frag"); reflect=false; sreflect=false; } if(key == 'j') { shader.load("material.vert","material16.frag"); reflect=false; sreflect=false; } if(key == 'k') { shader.load("material.vert","material17.frag"); reflect=false; sreflect=false; } if(key == 'l') { shader.load("material.vert","material18.frag"); reflect=false; sreflect=false; } if(key == 'z') { shader.load("material.vert","material19.frag"); reflect=false; sreflect=false; } if(key == 'x') { shader.load("material.vert","material20.frag"); reflect=false; sreflect=false; } if(key == 'c') { shader.load("material_reflect.vert","material_reflect.frag"); reflect=true; sreflect=false; } if(key == 'v') { shader.load("material_reflect_1.vert","material_reflect_1.frag"); reflect=true; sreflect=false; } if(key == 'b') { shader.load("material_reflect_2.vert","material_reflect_2.frag"); sreflect=true; reflect=false; } }
//-------------------------------------------------------------- void testApp::setup(){ model.loadModel("test.obj"); ofSetVerticalSync(true); // this uses depth information for occlusion // rather than always drawing things on top of each other glEnable(GL_DEPTH_TEST); // this sets the camera's distance from the object cam.setDistance(100); ofSetCircleResolution(64); bShowHelp = true; }
void ofApp::setupModel(ofxAssimpModelLoader &mod) { mod.loadModel("astroBoy_walk.dae", true); mod.setPosition(ofGetWidth() * 0.75, (float)ofGetHeight() * 0.75 , 0); mod.setRotation(0, 125, .0, 1.0, .0); mod.setLoopStateForAllAnimations(OF_LOOP_NORMAL); mod.playAllAnimations(); //if(!bAnimate) { mod.setPausedForAllAnimations(true); //} models.push_back(&mod); }
void draw() { ofBackgroundGradient(64, 0); if(reflect || sreflect) env.draw(0,0,env.getWidth()/8,env.getHeight()/8); if(sreflect) env1.draw(env.getWidth()/8,0,env1.getWidth()/8,env1.getHeight()/8); ofEnableDepthTest(); cam.begin(); shader.begin(); if(sreflect){ // shader.setUniform3f("CameraPos",cam.getGlobalPosition().x, cam.getGlobalPosition().y, cam.getGlobalPosition().z); // shader.setUniformMatrix4f("ModelWorld4x4",cam.getGlobalTransformMatrix()); shader.setUniform3f("CameraPos",cam.getPosition().x, cam.getPosition().y, cam.getPosition().z); shader.setUniformMatrix4f("ModelWorld4x4",cam.getModelViewMatrix());//getLocalTransformMatrix()); shader.setUniformTexture("frontMap", env,1); shader.setUniformTexture("backMap", env1,2); } if(reflect){ shader.setUniformTexture("colorMap",env1,1); shader.setUniformTexture("envMap", env,2); }else if(sreflect==false){ shader.setUniformTexture("texture", img, 1); shader.setUniform1f("time", ofGetElapsedTimef()); } if(cube) ofDrawBox(200); else { ofTranslate(0,-150,0); ofRotateX(-90); ofRotateY(-90); ofRotateZ(45); model.drawFaces(); } shader.end(); cam.end(); ofDisableDepthTest(); ofDrawBitmapString(ofToString((int) ofGetFrameRate()), 10, 20); }