2018年1月18日 星期四

James的圖學筆記Week15

Part1.Antialias

1.Alias(鋸齒)
2.Antialias(反鋸齒)
3.Dither(抖動)

James的圖學筆記Week14

光柵化

Part1.繪製三角形

mode1.描邊
size(600,600,P3D);
background(255);
beginShape(TRIANGLE);
  stroke(255,0,0);vertex(300,100);
  stroke(255,255,0);vertex(500,500);
  stroke(0,0,255);vertex(100,500);
endShape();

mode2.填滿
size(600,600,P3D);
background(255);
beginShape(TRIANGLE);
  fill(255,0,0);vertex(300,100);//顏色填滿
  fill(255,255,0);vertex(500,500);//顏色填滿
  fill(0,0,255);vertex(100,500);//顏色填滿
endShape();

mode3.重疊
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();
}








James的圖學筆記Week13

Part1.AR
Part2.Processing 色彩模式

1.RGB
size(255,255);
colorMode(RGB,255);
for(int x=0;x<255;x++)
{
    for(int y=0;y<255;y++)
    {
      stroke(x,y,255);
      point(x,y);
    }
}
2.HSB
size(255,255);
colorMode(HSB,255);
for(int x=0;x<255;x++)
{
    for(int y=0;y<255;y++)
    {
      stroke(x,y,255);
      point(x,y);
    }
}

part3.多重貼圖

下載roach.zip





2018年1月17日 星期三

Week14

三角形繪圖








Week13

processing RGB測試



HSB 測試

Week12

1. 到moodle 下載myGL_Frustrum221

2. 新建Glut專案,複製myGL_Frustrum_skeleton.cpp的程式碼並全部取代

3. 新增以下程式


找不到M_PI只好自己定義(可能是版本太舊)


4. 執行結果




2018年1月16日 星期二

Week11

在GLUT專案加入音樂
程式碼如下:

#include <GL/glut.h>
#include<mmsystem.h>
#include<stdio.h>

int main()
{
     PlaySoundA("test.wav",NULL,SND_ASYNC);
     return 0;
}

//SND_SYNC 同步播放,播完音樂函式才會return(此為預設值)
//SND_ASYNC 非同步撥放,一開始撥放就return

Week9

1 下載processing 3
2 貼上Bump maping 的程式碼產生以下結果

3 下載一張圖片拉入編譯器並用程式顯示圖片,如下圖

4 加入draw的函式使圖片跟著滑鼠移動,如下圖


5 貼上馬力歐小遊戲的程式碼,用以上方式設定馬力歐、磚塊、問號磚塊的圖片會產生簡單的馬力歐小遊戲,可以用鍵盤左右和上鍵控制馬力歐移動和跳躍

Week8

1 下載openCV2.1
2 新建貝殼專案
3 設定OpenCV相關資料路徑
A 對專案點擊右鍵
B 選擇Build options
C *search directories->compiler-> ……..\openCV2.1\include
*search directories->linker-> ……..\openCV2.1\lib
*linker setting->cv21,cxcore210,highgui210
4 下載圖片道專案目錄底下
5 輸入範例程式碼並執行可以開啟圖片
6 新建Glut專案
7 同樣方式再次設定路經
8 把圖檔放到freeglut/bin 底下


9 複製老師程式碼全部選取代貼上並執行,便可以看到自轉的地球了

Week 7 滑鼠移動光源

1




const刪去便可更改光源位置

2 motion 裡加入以下程式碼


按住滑鼠移動便可移動光源

Week 18 期末專題展示

https://www.youtube.com/watch?v=Lr87vhlUsqw&list=UUvT1juMSONiWoAMMNz6c4VA

李嘉恩的期末作品week18

期末作品展示
1.影片連結:
https://youtu.be/IGDcn3Aojt0


2.開發工具:processing
3.操作方式:
   按左右鍵控制角色移動,跳到藍台階會有跳躍音效,跳到針刺會有扣血音效並扣三滴血,
   被頂端針刺刺到或者是墜落谷底會有死亡音效並停止遊戲

2018年1月15日 星期一

Claire 的課堂作業 week15




計算機圖學 Computer Graphics

  1. 主題:Anti alias
  2. 期末作品 Q & A

Anti-aliasing

Aliasing 因為格子取樣的關係,導致電腦繪圖出來不是很正確(因為只有黑白)
Anti-aliasing 平滑化:用灰階的值讓人的視覺自懂補償出平滑的線或邊緣



Dithering 抖動:原本只有黑或白點,為了讓網點做出現層灰階的效果,把黑色點作左右移動,製造出效果



Claire 的課堂作業 week17



計算機圖學 Computer Graphics

  1. 主題:期末作品 Q & A
2D Tetris 進度:
從上禮拜獲得老師的Q&A到今天已經大致上完成了整個俄羅斯方塊的操作,
剩下要完成的項目有...
  1. 顯示關卡、分數
  2. 貼圖
  3. 配樂
課堂上在找OpenCV怎麼安裝到Xcode上
大部分找到的資料都是類似這樣:Link
但似乎是改版了,現在直接下載下來只能看到opencv2.framework
但加入外部Library又不給用 ...

進度:暫時用terminal顯示分數


Claire 的課堂作業 week18



期末作品展示


開發工具:使用OpenGL / C++ / Xcode 
( 遠本有準備了可愛的磚塊貼圖,但遇到OpenCV for Xcode裝不好的問題,只好放圖讓大家看看.. )



操作方式:
  1. 遊戲開啟後便即刻開始
  2. 方向鍵:左、下、右 可移動方塊
  3. 方向鍵:上 可旋轉方塊
  4. 空白鍵:可讓方塊快速掉落到下方
  5. R:重新開始
  6. E:結束遊戲

視窗分別有兩個,白色為遊戲主場,黑色可看到分數及等級。
遊戲過程中,方塊會隨著時間加快。消除一列可獲得10分。
音樂會自動重複播放

備註
   遊戲背景音樂來自 Kevin MacLeod ~ Happy Boy End Theme - YouTube




WEEK18 期末專題展示


2018年1月14日 星期日

LLF的計圖學習筆記_Week_18

計算機圖學__期末專題

Leo 學習筆記 Week18


計圖筆記Week18

期末專題展演
https://youtu.be/iqvzqzelFxM

計圖筆記week17

下周要期末作品展示了
專題在做細微顏色修改和動畫速度調整

計圖筆記WEEK16

專題進度:
做出一大一小球會一分為二
float r1=200, r2=0;
float totalArea=r1*r1;
boolean touched=false;
int animT=0;
void setup(){
size(800,600);
}
void draw(){
background(255);
if(touched) fill(255,255,0);
else fill(255);
ellipse(300,300, r1,r1);
ellipse( 600,300, r2, r2);
if(touched && animT>0){
//same total area
float diff=(totalArea/3) / 60 * (60-animT);
r2=sqrt(diff);
r1=sqrt(totalArea-diff);
animT--;
}
}
void mousePressed(){
if( dist( mouseX, mouseY, 300,300 ) < r1/2 ){
touched=true;
animT=60;
}
}