WebGL入門 001 繪製乙個點

2021-10-10 06:30:45 字數 1367 閱讀 3293

webgl依賴於一種新的稱為著色器的繪圖機制,

繪製乙個點中,用到了頂點著色器和片元著色器

下面是繪製乙個點的程式(直接複製無法工作),

// 頂點著色器

varvshader_source

='void main() \n'

;// 片元著色器

varfshader_source

='void main() \n'

;function

main()

// 初始化shaders!! 這裡使用了書中自己編寫的初始化程式,遮蔽了底層差異if(

!initshaders

(gl,

vshader_source

,fshader_source))

// 設定黑色清空,(設定背景色)

gl.clearcolor

(0.0

,0.0

,0.0

,1.0);

// 清空

gl.clear

(gl.

color_buffer_bit);

// 繪製

gl.drawarrays

(gl.

points,0

,1);

}

執行流程

獲取canvas元素

獲取webgl繪圖上下文

初始化著色器

設定canvas背景色

清除canvas繪圖

頂點著色器

用來描述頂點的特性的程式,

示例程式中 ,以下**代表了乙個頂點著色器

是使用opengl es著色器語言

'void main() \n'

;

和c語言一樣,必須包含乙個main()函式 不能為main()函式指定引數

頂點著色器中 gl_position和gl_pointsize 是內建在頂點著色器中的,而且有著特殊的含義,分別代表頂點的位置,和頂點的尺寸,

gl_position必須被賦值,否則無法工作

vec4 vec4(v0,v1,v2,v3)

可以根據值來建立vec4物件,

vec4表示由4個浮點數組成的向量(x,y,z,w)

w為齊次座標

(x,y,z,w)等價為(x/w,y/w,z/w)

片元著色器

下面是乙個片元著色器

void

main()

;

gl_fragcolor 是片元著色器的唯一內建變數,控制畫素在螢幕上的顏色

型別也是vec4型別的

代表(r,g,b.a)

詳細的片元著色器的內容將會在以後介紹.

WebGL程式設計指南案例解析之繪製乙個點

webgl width 400 height 400 後續的本系列部落格頁都將基於這個頁面進行開發,只是替換了案例相關 部分的js檔案。首先讓我們來看webgl1.js 第一章.繪製乙個點,通過頂點著色器和片元著色器傳參 頂點著色器,接收attribute型變數a position var vsha...

opengl 繪製乙個點

背景 這將是我們第一次遇到 glew,glew 是opengl的擴充套件功能庫。它能幫助你解決opengl不斷擴充套件的問題。一旦你初始化它之後,它在你的系統上將查詢所有可用的擴充套件功能,自動的載入它們並且通過乙個單一的標頭檔案提供簡單的介面。在這一節中,我們將第一次看見頂點緩衝區物件 vbos ...

VB SolidWorks繪製乙個圓

1 繪製乙個圓的 dim part as object dim boolstatus as boolean sub main 連線solidworks 在前視基準面建立乙個圓 boolstatus part.extension.selectbyid2 前視基準面 plane 0,0,0,false,...