(1)主題:場景Scene
Mocap、Skeleton、Model
1.下載myGL_Frustum211_MultiView
2.開啟GLUT專題檔
3.解決EEROR:加上int main(int argc,char *argv[]),glutInit( & argc, argv );
2018年1月12日 星期五
魏建新的第十五週學題單
(1)專題進度檢視, Q&A
(2)主題:Antialias
Antialias:
簡單地說主要是應用調色技術將圖形邊緣的“鋸齒”緩和,邊緣更平滑。抗鋸齒是相對來來說較複雜的技術,一直是高檔加速卡的一個主要特徵。目前的低檔3D加速卡大多不支持反鋸齒。
維基。
(2)主題:Antialias
Antialias:
簡單地說主要是應用調色技術將圖形邊緣的“鋸齒”緩和,邊緣更平滑。抗鋸齒是相對來來說較複雜的技術,一直是高檔加速卡的一個主要特徵。目前的低檔3D加速卡大多不支持反鋸齒。
維基。
魏建新的第十四週學題單
1.主題:期末作品Q&A
2.主題:Rasterization光柵化
張鈞法的老師上網站:http://cg.csie.ntnu.edu.tw/CG/
Processing:
1.Processing三角形 ->滿色三角形

size(600,600,P3D); size(600,600,P3D);
background(255); background(255);
beginShape(TRIANGLE); beginShape(TRIANGLE);
stroke(255,0,0);vertex(300,100); fill(255,0,0);vertex(300,100);
stroke(255,255,0);vertex(500,500); fill(255,255,0);vertex(500,500);
stroke(0,0,255);vertex(100,500); fill(0,0,255);vertex(100,500);
endShape(); endShape();
2.重疊三角形

void setup()
{size(600,600,P3D);
}
void draw()
{
background(255);
beginShape(TRIANGLE);
beginShape(TRIANGLE);
fill(255,0,0);vertex(100,100,0);
fill(255,0,255);vertex(100,500,100);
fill(255,255,0);vertex(500,500,0);
endShape();
beginShape(TRIANGLE);
fill(0,255,0);vertex(500,100,0);
fill(0,255,255);vertex(500,500,100);
fill(255,255,0);vertex(100,500,0);
endShape();
}
2.主題:Rasterization光柵化
張鈞法的老師上網站:http://cg.csie.ntnu.edu.tw/CG/
Processing:
1.Processing三角形 ->滿色三角形

size(600,600,P3D); size(600,600,P3D);
background(255); background(255);
beginShape(TRIANGLE); beginShape(TRIANGLE);
stroke(255,0,0);vertex(300,100); fill(255,0,0);vertex(300,100);
stroke(255,255,0);vertex(500,500); fill(255,255,0);vertex(500,500);
stroke(0,0,255);vertex(100,500); fill(0,0,255);vertex(100,500);
endShape(); endShape();
2.重疊三角形

void setup()
{size(600,600,P3D);
}
void draw()
{
background(255);
beginShape(TRIANGLE);
beginShape(TRIANGLE);
fill(255,0,0);vertex(100,100,0);
fill(255,0,255);vertex(100,500,100);
fill(255,255,0);vertex(500,500,0);
endShape();
beginShape(TRIANGLE);
fill(0,255,0);vertex(500,100,0);
fill(0,255,255);vertex(500,500,100);
fill(255,255,0);vertex(100,500,0);
endShape();
}
2018年1月11日 星期四
2018年1月4日 星期四
魏建新的第九週學題單
- 上週Texture 貼圖、詳解
- 多重貼圖
- Bump Mapping
在MOODLE的上課軟體下載processing-3.3.6-windows64.zip打開
程式碼:
先RUN網友的程式碼:https://www.openprocessing.org/sketch/249457
把網路的程式碼COPY到processing
PImage img=loadImage("doraemon.jpeg"); 注載入圖片用 doraemon.jpeg為你要用的圖片名
size(600, 600);
image(img, 0,0, 600,600);
PImage img; 注用來呈現中BUG的圖片
void setup(){
size(1280, 800);
img=loadImage("error.jpg");
}
void draw(){
//rect(mouseX, mouseY, 50, 50); <- 用來畫正方形的碼
image(img, mouseX,mouseY, 400,250);
}

PImage img=loadImage("doraemon.jpeg"); 注載入圖片用 doraemon.jpeg為你要用的圖片名
size(600, 600);
image(img, 0,0, 600,600);
PImage img; 注用來呈現中BUG的圖片
void setup(){
size(1280, 800);
img=loadImage("error.jpg");
}
void draw(){
//rect(mouseX, mouseY, 50, 50); <- 用來畫正方形的碼
image(img, mouseX,mouseY, 400,250);
}
魏建新的第七週學題單
(1)作業二展示,互評(2)主題: Mouse,Model,打光 ->用mouse調光源(3)主題: Lighting打光,Shading光影
程式碼:void motion(int x,int y){
light_position[0]= (x-150)/150.0*2;
light_position[1]= -(y-150)/150.0*2;
glLightfv(GL_LIGHT0,GL_POSITION,light_position);
glutPostOverlayRedisplay();
}
GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; 注:剛孕const
圖例:

2017年12月7日 星期四
魏建新的第十三週學題單
2017年11月23日 星期四
魏建新的第十一週學題單
(1)主題:聲音-音效.音樂
(2)平台:windows,Java,etc
(3)期中 proposal提案分析
(4)Mocap
MP3檔的播放格式
MP3要放到freeglut/bin;1.下載CMP3_MCI.h
2.include CMP3_MCI.h
程式碼:
#include<stdio.h>
#include"CMP3_MCI.h"//FB下載
CMP3_MCI mp3;
int main()
{
mp3.Load("file.mp3");//載入
mp3.Play();//PLAY播放
printf("現在在待輸入a\n");
int a;
scanf("%d",&a);
}
Processing
1.速寫本->引用庫文件->添加庫文件->library->下載Minim
2.
2017年11月2日 星期四
魏建新的第八週單
2017年10月19日 星期四
魏建新的第六週學習單
1.在MOODLE上下載week05跟freeglut解壓
2.解決編輯問題

3.加入光影,鍵盤,mouse函式

4.RUN

函式:
GLfloat pos[] = { 0.0, 0.0, -1.0, 0.0 };
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos);
int rotateX=0,rotateY=0,rotateZ=0;
int oldX=0,oldY=0;
void keyboard(unsigned char key,int x,int y)
{
printf("now: %c (%d %d)\n",key,x,y);
if(key=='1')
{
rotateX++;
}
if(key=='2')
{
rotateY++;
}
if(key=='3')
{
rotateZ++;
}
glutPostRedisplay();
}
void mouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN)
{
oldX=x;
oldY=y;
}
}
void motion(int x,int y)
{
rotateX+= -(x-oldX);
rotateY+= -(y-oldY);
oldX=x;
oldY=y;
glutPostRedisplay();
}
2.解決編輯問題

3.加入光影,鍵盤,mouse函式

4.RUN

函式:
GLfloat pos[] = { 0.0, 0.0, -1.0, 0.0 };
glutMouseFunc(mouse);
glutKeyboardFunc(keyboard);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos);
int rotateX=0,rotateY=0,rotateZ=0;
int oldX=0,oldY=0;
void keyboard(unsigned char key,int x,int y)
{
printf("now: %c (%d %d)\n",key,x,y);
if(key=='1')
{
rotateX++;
}
if(key=='2')
{
rotateY++;
}
if(key=='3')
{
rotateZ++;
}
glutPostRedisplay();
}
void mouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN)
{
oldX=x;
oldY=y;
}
}
void motion(int x,int y)
{
rotateX+= -(x-oldX);
rotateY+= -(y-oldY);
oldX=x;
oldY=y;
glutPostRedisplay();
}
2017年10月12日 星期四
魏建新的第5週學習單
複習上周內容
1.去jsyeh.org/3dcg10把data.zip,windows.zip,glut32.dll下載解壓到同一個文件中


2.把EXE打開複習


透視投影:
void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
fovy:指定在y方向的視角角度
aspect:指定x方向視野的比例(y/x)
zNear、zFar:指定觀察者到可視最近、遠平面的距離
平行投影-正交投影:
void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal); 正方體
left、right:指定左、右剪切平面
bottom、top:指定上、下剪切平面
nearVal、farVal:指定近、遠剪切平面
指定視角:
void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ,
GLdouble centerX, GLdouble centerY, GLdouble centerZ,
GLdouble upX, GLdouble upY, GLdouble upZ);
eyeX, eyeY, eyeZ:指定從哪裡看
centerX, centerY, centerZ :指定看哪裡
upX, upY, upZ :指定向上的向量
1.去jsyeh.org/3dcg10把data.zip,windows.zip,glut32.dll下載解壓到同一個文件中


2.把EXE打開複習


透視投影:
void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
fovy:指定在y方向的視角角度
aspect:指定x方向視野的比例(y/x)
zNear、zFar:指定觀察者到可視最近、遠平面的距離
平行投影-正交投影:
void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal); 正方體
left、right:指定左、右剪切平面
bottom、top:指定上、下剪切平面
nearVal、farVal:指定近、遠剪切平面
指定視角:
void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ,
GLdouble centerX, GLdouble centerY, GLdouble centerZ,
GLdouble upX, GLdouble upY, GLdouble upZ);
eyeX, eyeY, eyeZ:指定從哪裡看
centerX, centerY, centerZ :指定看哪裡
upX, upY, upZ :指定向上的向量
2017年10月5日 星期四
魏建新的第四週學習單
2017年9月28日 星期四
魏建新的第三週學習單
2017年9月21日 星期四
魏建新的學習單week2
1.開啟專案

2.把老師教的程式碼打上專案

3.把專案打開

4.第2程專案

程式碼:
#include <GL/glut.h>
void display(void)
{
///背景顏色(R, G, B, 透明度)
glClearColor(0,1,0,0);
///清除背景buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
///設定GL顏色 (R, G, B)
glColor3f(1,0,1);
///茶壺
glutSolidTeapot(0.3);
///刷新 延伸閱讀
glutSwapBuffers();
///開始晝圖(多邊形)
glBegin(GL_POLYGON);
///坐標設定
glVertex3f(1,1,0);
///END
glEnd();
}
int main(int argc, char *argv[])
{
///初始化glut
glutInit(&argc, argv);
///設定顯示模式
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///創建glut 3D視窗
glutCreateWindow("GLUT Shapes");
///呼叫display function
glutDisplayFunc(display);
///主要LOOP
glutMainLoop();
return EXIT_SUCCESS;
}

2.把老師教的程式碼打上專案

3.把專案打開

4.第2程專案

程式碼:
#include <GL/glut.h>
void display(void)
{
///背景顏色(R, G, B, 透明度)
glClearColor(0,1,0,0);
///清除背景buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
///設定GL顏色 (R, G, B)
glColor3f(1,0,1);
///茶壺
glutSolidTeapot(0.3);
///刷新 延伸閱讀
glutSwapBuffers();
///開始晝圖(多邊形)
glBegin(GL_POLYGON);
///坐標設定
glVertex3f(1,1,0);
///END
glEnd();
}
int main(int argc, char *argv[])
{
///初始化glut
glutInit(&argc, argv);
///設定顯示模式
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///創建glut 3D視窗
glutCreateWindow("GLUT Shapes");
///呼叫display function
glutDisplayFunc(display);
///主要LOOP
glutMainLoop();
return EXIT_SUCCESS;
}
2017年9月14日 星期四
魏建新的第一週學習內容
訂閱:
文章 (Atom)





















