2009年7月5日 星期日

OpenGL帶來的3D世界

還記得多年前, 原本不愛寫程式的我, 卻在大學專題製作中, 開始接觸到OpenGL API, 透過OpenGL呈現的3D視覺效果, 讓我開始enjoy在coding和3D modeling當中. 而這也影響到, 我之後所選擇工作的內容, 不在是老本行(機械相關產業), 而是軟體業或和3D有關聯的工作.
而什麼是OpenGL(Open Graphics Library)呢? 簡單地說就是"公開的標準繪圖介面", 它定義了一個跨程式語言跨平台的編成介面規格,並可用來產生2D3D圖象.

OpenGL可分成兩種版本, 分別為硬體純軟體實作版本。
硬體實作版本會透過ICD(Installable-Client Driver,它是硬體驅動程式的介面)
來辨別是否可以透過硬體處理(OpenGL應用程式會連結opengl32.dll,當應用程式呼叫OpenGL函式,便會把工作交給ICD處理),如果沒有則透過CPU進行運算。
純軟體的版本是使用SGI所提供的靜態函式庫,所有的運算都是透過CPU來達成.


關於OpenGL的相關網站, 有非常多, 可參考下面列出的網址
:

什麼是OpenGL?
OpenGL 教學文件:
http://janusbooks.myweb.hinet.net/opengl/what_is_opengl.html
OpenGL的維基百科 :
http://zh.wikipedia.org/wiki/OpenGL

OpenGL官網:
OpenGL函式庫 : http://www.opengl.org/sdk/docs/man/
OpenGL函式庫: http://www.xmission.com/~nate/opengl.html

OpenGL教學

OpenGL Reference Manual: http://www.glprogramming.com/blue/
OpenGL Programming Guide: http://orion.lcg.ufrj.br/compgraf1/downloads/OpenGL_Programming_Guide/index.html
OpenGL step by step : http://www.pinxue.net/OpenGL/openglstepbystep.htm
OpenGL tutorial: http://www.songho.ca/opengl/index.html
codesample : http://www.codesampler.com/oglsrc.htm

下面的圖示, 是我利用C搭配OpenGL寫出來的作品:
電腦繪圖學


B-Spline curve


NURBS Surface


校徽



Shadow



3D modeling



Mesh


機構設計

正齒輪模擬



魯式鼓風機


凸輪教學軟體



連桿機構


非圓形齒輪

1 則留言:

  1. 作者,您好:
    我課程上需要用opengl呈現四連桿機構,
    剛好看到您繪製的連桿機構,因此冒昧在此留言打擾;
    請問繪製一個四連桿機構會複雜嗎?拘束條件該怎麼設置呢?可否請您分享個範例呢?

    謝謝

    回覆刪除