當前位置:
首頁 > 最新 > 學習WebGL之繪製點線面

學習WebGL之繪製點線面

本文將詳細介紹WebGL三角形之外的其餘繪製模式,下面是運行截圖,通過下拉菜單可以選擇不同的繪製模式,可以前往我的博客查看代碼演示。

之前的文章中,我們主要使用了繪製三角形的方式來渲染物體。gl.drawArrays(gl.TRIANGLES, 0, 3);中的gl.TRIANGLES即是三角形繪製模式,除了三角形模式之外,還有很多其他的內置繪製模式。下面我將一一介紹。

Triangles(三角形)

var triangle = [ -0.5, 0.5, 0.0, -0.5, -0.5, 0.0, 0.5, -0.5, 0.0, -0.5, 0.5, 0.0, 0.5, -0.5, 0.0, 0.5, 0.5, 0.0, ]; triangleBuffer = makeBuffer(triangle); triangleBuffer.vertexCount = 6;

TriangleStrip(三角帶)

對應繪製參數gl.TRIANGLE_STRIP。三角帶模式也是繪製三角形的一種模式,不過在特定情況下,它可以使用更少的頂點達到和三角形繪製模式一樣的效果。如果多個三角形之間每兩個共用一條邊,就可以使用三角帶模式。下圖是一個典型的例子,兩個三角形共用v3到v2的邊,因此可以用三角帶繪製。

代碼如下。頂點數目從6減到了4。要注意的是使用三角帶時要把共享邊的頂點數據放到其餘兩點數據之間,比如v3和v2就放到了v1和v4的中間。至於v3和v2的上下順序,會影響到Cull Face,不過本文還沒有激活這個功能,所以暫時不需要管這方面的問題。

TriangleFan(三角扇)

對應繪製參數gl.TRIANGLE_FAN。三角扇正如其名可以很方便的繪製扇形,下面是本文例子繪製的扇形。

要繪製扇形,首先給一個圓心點,然後依次給圓弧上的點,代碼如下。首先增加0,0,0點為中心點,然後依次按照角度angle計算頂點位置,全部推入頂點數組中即可。

var triangleFan = []; triangleFan.push(0); triangleFan.push(0); triangleFan.push(0); var vertexCount = 1; for (angle = 0; angle

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 推酷 的精彩文章:

這個人玩比特幣賺了2500萬美元,現在他開始環遊世界
最早越獄Iphone手機的黑客,現在在研究自動駕駛了
賣小龍蝦、自助點餐還「點歌」,30歲的肯德基中國很活潑
換行符的問題
直播在洗牌,但也在醞釀新的契機

TAG:推酷 |

您可能感興趣

FPGA學習之USB Blaster驅動程序的安裝
深度學習之DenseNet
Python 學習的路線推薦
系統學習PHP之API介面
OpenAI發布強化學習環境Gym Retro:支持千種遊戲
Kubernetes:在異構GPU集群上分散式深度學習
OpenAI 發布完整版遊戲強化學習研究平台 Gym Retro
系統學習PHP之mysqli 基礎篇
系統學習PHP之mysqli 高級篇
資源 | OpenAI發布強化學習環境Gym Retro:支持千種遊戲
HTML5Plus 移動開發學習路線
Yann LeCun分享Facebook最新AI研發成果:AI變革的下一站是無監督學習
DeepMind新目標:用YouTube讓AI學習玩視頻遊戲
用Python和NumPy學習《深度學習》中的線性代數基礎
學習製作VR180視頻,YouTube VR Creator Lab再次開課
Python語言學習路線圖
Google,OpenAI提出層次強化學習新思路
Learn with Google AI:谷歌開放更多免費AI及機器學習在線資源
類Keras的PyTorch 深度學習框架——PyToune
IBM 的深度學習平台 FfDL