OpenCL, WebGL, and WebCL
承接Khronos技術概觀和生態系統概述 (Khronos Technology Overview & Ecosystem Review)和OpenGL & OpenGL ES,下午第二場在講OpenCL, WebGL, and WebCL,我之前有整理簡介WebCL可以參考。
WebGL是一項在網頁瀏覽器呈現3D畫面的技術,在程式平台是HTML和Javascript,在繪圖方面是基於OpenGL ES這個規範,接著發現了OpenGL ES這個OpenGL的子版本,根據維基百科的解釋:OpenGL ES (OpenGL for Embedded Systems) 是OpenGL三維圖形 API 的子集,針對手機、PDA和遊戲主機等嵌入式設備而設計。該API由Khronos集團定義推廣,Khronos是一個圖形軟硬體行業協會,該協會主要關注圖形和多媒體方面的開放標準。
承我剛寫不久的Bump Map,這次要更仔細分析它表現出來的特性,除了bump map的效果之外,我還加了phong shading的diffuse和specular。
Bump Map的概念其實很簡單,在不增加geometry複雜度之下,讓物體表現更立體的樣子。我們需要兩張texture,一個color一個normal,color當然是做顏色,而normal則是表現凹凸(陰影)。做出來的結果並沒有增加model的polygon數,只是在視覺上巧妙地表現陰影(兩張texture合併),使得物體看起來凹凸不平(有著陰影)。
工欲善其事,必先利其器!雖然說可以直接在Visual C++上寫GLSL,但必須先寫OpenGL application,接著設定shader和program,經過建立create、來源source、編譯compile、附著attach、連結link、使用use等步驟,才真正能和vertex shader和fragment shader溝通,詳情可見Setup Example。若想要直接來寫shader,跳過OpenGL application的部份,可以安裝ShaderDesigner。
HappyMan・迴響