課堂作業1:
//week08_1_loadShape_shape
size(400,400,P3D);//(3)要有 P3D 的 OpenGL 3D 功能
PShape gundam = loadShape("Gundam.obj");//(1)讀入3D模型
translate(width/2,height/2);//放到畫面中心
pushMatrix();//備份矩陣
translate(0,100);//(5)再往下一一點點,比較好看
scale(10,-10,10);//(4)把模型放大shape(10)上下再倒過來
shape(gundam,0,0);//(2)畫出3D模型
popMatrix();//還原矩陣
課堂作業2://week08_2_PShape_gundam_setup_draw_push_scale_shape_pop
//轉動它,要改成互動模式的程式風格
PShape gundam;//要再把Gundam.obj等檔案,拉進來
void setup(){
size(400,400,P3D);
gundam = loadShape("Gundam.obj");
}
void draw(){
background(128);
translate(width/2,height/2+100);
pushMatrix();
scale(10,-10,10);
rotateY(radians(frameCount));
shape(gundam,0,0);
popMatrix();
pushMatrix();
translate(100,0,0);
scale(10,-10,10);
shape(gundam,0,0);
popMatrix();
}
課堂作業3://week08_3_anotheer_obj_large_mtl
PShape gundam;//要再把Gundam.obj等檔案,拉進來
void setup(){
size(400,400,P3D);
gundam = loadShape("FinalBaseMesh.obj");
}
void draw(){
background(128);
translate(width/2,height/2+100);
pushMatrix();
scale(10,-10,10);
rotateY(radians(frameCount));
shape(gundam,0,0);
popMatrix();
}
課堂作業4:
//week08_4_gundam_body_head
//慢慢把[切割開]的模型,逐一組合起來
//四個檔案拉進來 body.obj body.mtl Diffuse.jpg AO.jpg
PShape body, head;
//頭的2個檔案 head.obj head.mtl
void setup(){
size(400,400,P3D);
body = loadShape("body.obj");
head = loadShape("head.obj");
}
void draw(){
background(255);
translate(width/2,height/2+100);
sphere(10);//基準點
scale(10,-10,10);
pushMatrix();
translate(0.0,+22.5);//(3)再掛回原來的地方
rotate(radians(x));//(2)轉動
//rotate(radians(frameCount));
//translate(x/10,y/10);//要放在小x,y的座標
//println(x/10,y/10);//印出座標,等一下要取上面的數
translate(0.0,-22.5);//(1)我們的頭的中心,有放在旋轉中心
shape(head,0,0);
popMatrix();
shape(body,0,0);
}
float x=0,y=0;
void mouseDragged(){
x += mouseX - pmouseX;
y -= mouseY - pmouseY;
}
沒有留言:
張貼留言