天天看點

純Shading Language繪制HTML5時鐘

純Shading Language繪制HTML5時鐘

以上三種方式都是較容易了解的實作方式,今天我們将采用的則是較為少見的WebGL純Shading Language實作方式,這種方式極其高效,畢竟我們采用的是可利用GPU硬體加速的WebGL技術,CPU代碼角度看僅有兩個三角形的繪制,真正表盤的繪制邏輯完全在GPU對兩個三角形進行Fragment Shading時實作。

純Shading Language繪制HTML5時鐘

Rect函數中的clamp(uv, -size/2.0, size/2.0))是我們決定點是否在矩形區域的技巧

函數Rotate(vec2 uv,float angle)将坐标點旋轉到水準或垂直位置友善我們确定Rect和Line參數進行對比

Blend函數mix(shapeColor, backColor, smoothstep(0.0, 0.005, shape))是常用的混合mix和smoothstep達到更好處理邊緣平滑效果GLSL常用技巧

純Shading Language繪制HTML5時鐘

GLSL的Fragment Shader實作代碼如下:

繼續閱讀