2022年3月7日 星期一

⚝ YI-ZHEN的筆記 week03

  • 課堂範例: https://jsyeh.org/3dcg10/

1. 下載Win32的範例,並解壓縮


2. 執行Shapes.exe
3. 左邊介面選項 
    Toggle big vertices -->顯示頂點 
    Specify colors @vertices -->顯示顏色
4. 右邊介面滑鼠點擊數字上下移動,調整顏色及位置

  • 顏色(黃色茶壺)
1. 與Week01一樣,建立一個GLUT專案(Week03_Color)
    1.1 先進入 moodle 打開上課用軟體資料夾 下載 freeglut  
    1.2 下載好後解壓縮至桌面
    1.3 打開lib資料夾 先複製一個相同的檔案 再改檔名為libglut32.a
    1.4 CodeBlocks 建立 project 點選 GLUT project
    1.5 修改專案名稱及檔案位置
    1.6 GLUT 要在桌面的 freeglut 中
2.將所有原有程式刪除
3.模仿原有程式寫出10行程式,畫出一個黃色的茶壺
#include <GL/glut.h>
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

    glColor3f(1, 1, 0); ///黃色
    glutSolidTeapot( 0.3 ); ///0.3大小的實心茶壺

    glutSwapBuffers();///交換兩倍的buffer
}

int main (int argc, char**argv) ///進階main函式
{
    glutInit(&argc, argv ); ///glut初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH ); ///兩倍buffer(避免顯示出來閃爍)+ 3D
    glutCreateWindow("Week03的視窗"); ///建立視窗
    glutDisplayFunc( display ); ///用來畫圖的函式
    glutMainLoop(); ///主要的迴圈
}

  • 顏色(彩色三角形)
1. 與Week01一樣,建立一個GLUT專案(Week03_Color_Triangle)。刪除原有程式
2. 複製茶壺的程式碼貼上
3. 修改程式碼並加上OPENGL專案裡的5行程式
#include <GL/glut.h>
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

    glColor3f(1, 1, 0); 
    glBegin(GL_TRIANGLES);
        glColor3f(1.0f, 0.0f, 0.0f);   glVertex2f(0.0f,   1.0f);       
        glColor3f(0.0f, 1.0f, 0.0f);   glVertex2f(0.87f,  -0.5f);
        glColor3f(0.0f, 0.0f, 1.0f);   glVertex2f(-0.87f, -0.5f);
    glEnd();

    glutSwapBuffers();
}

int main (int argc, char**argv)
{
    glutInit(&argc, argv ); 
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("Week03的彩色三角形"); ///修改視窗名稱
    glutDisplayFunc( display );
    glutMainLoop();
}












沒有留言:

張貼留言