WebGL程式設計指南高階技術篇(常見需求的處理)

2022-07-09 11:03:12 字數 1750 閱讀 4515

一、滑鼠控制模型旋轉

實質的根據滑鼠移動前後的位置比較得出x,y軸的旋轉角度;

圖中是乙個螢幕,有乙個模型(恩,他是乙個模型),滑鼠由p點移動到p1點,我們假定移動單位步長旋轉β角度;

p(x1,y1)--->p1(x2,y2),x軸移動(x2-x1),y軸移動(y2-y1),所以x軸旋轉 (x2-x1)β度,y軸旋轉(y2-y1)β度:

二、判斷物體被點選

當滑鼠點選的時候,將物體顏色全置為紅色,然後取滑鼠點選座標點的顏色,然後將物體顏色還原,再將之前獲取的座標點顏色做判斷:

如果顏色為紅色,那麼就說明,點選到了物體。

點完之後,要將頂點著色器內判斷是否點選的變數重置為false,從而使得重繪為正常顏色。

三、判斷面被點選

前面我們知道,繪製面的時候,是通過告知這個面包含那幾個頂點來進行繪製的:

二在這裡,為了實現判斷面的點選,我們加入了面的序號這個概念,

這樣一來,每個頂點除了座標、顏色,發向量之外,多了乙個面序號的屬性。當我們點選的時候:

直接就獲取了點選位置的面編號,兵器將其傳遞給頂點著色器,進行判斷並繪製:

四、hud平視顯示器/網頁上方顯示3d物體

就是在三維canvas(z-index = 1)上覆蓋乙個canvas(z-index = 2),用來顯示2d資訊(實時顯示一些提示性訊息),前置canvas的背景色為透明。

滑鼠點選事件註冊到2d的canvas上,因為兩個canvas是重疊的,所以點選2d上的點,就相當於點選了webgl上的點了。

後續該怎麼繪製怎麼繪製:

對於網頁上方顯示3d,道理相同,將3d的canvas,絕對定位在html上,或者指定節點位置,背景色透明。

五、霧化效果

六、繪製圓點

主要是在片元著色器中使用gl_pointcoord變數

七、α混合實現透明

高階bash程式設計指南(十)

1.設定選項 1 bash n scriptname 不會實際執行指令碼,而只是檢查標本的語法錯誤,也可以在指令碼中新增 set n 或者set o noexec 2 bash v scriptname在實際執行乙個命令或者指令碼前列印出這個命令或者指令碼的內容,也可以在指令碼中新增set v 或者...

高階bash程式設計指南(八)

一 正規表示式 1.在這裡就不詳細列舉正規表示式中各種元字元的功能 僅僅說一下,在看這一章遇到的乙個小問題 匹配前乙個字元的任意多次 包括零次 eg 1133 更明確的應該寫成 113 3 可以理解它匹配113 0個3 1133 1個3 但是為什麼可以 匹配111312?111312 因為它是這樣匹...

Windows應用高階程式設計C 程式設計篇

windows程式設計基礎 net framework類庫 system.windows.froms windows介面 包含用於建立基於 windows 的應用程式的類,這些應用程式可以充分利用 microsoft windows 作業系統中的豐富使用者介面功能。private void butt...