精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一起學 WebGL:改變點的顏色

開發 前端
這是設置片元著色器的 Float 精度為高精度。因為現在桌面端瀏覽器性能都很好,我們直接設置高精度即可。此外還有 Mediump 中等精度,和 Lowp 低精度,適合用在一些性能羸弱的設備上。精度越低,渲染的效果越差。

大家好,我是前端西瓜哥,上一章我們用 attribute 變量,從外部設置頂點著色器中點的位置信息。

《??一起學 WebGL:動態繪制點??》

這次我們把目光投向片元著色器,通過片元著色器修改點的顏色。

片元著色器

片元著色器的代碼改一下:

const fragmentShaderSrc = `
precision mediump float;
uniform vec4 u_FragColor;
void main() {
gl_FragColor = u_FragColor;
}
`;

類似頂點著色器的 attribute,我們在這里聲明了一個 uniform 變量 u_FragColor,同樣我們使用過的是 vec4 類型,4 個浮點數組成的結構體。

片元著色器中不能設置 attribute 類型的變量,只能用 uniform,或者也能用 varing 變量,支持從頂點著色器傳遞數據到片元著色器,這個以后西瓜哥會專門講解。

我們會將這個變量賦值給 WebGL 片元著色器的內置屬性 gl_FragColor,確定圖形的顏色。

此外,因為使用了變量,所以頂部要加一個 precision highp float; 的玩意。

這是設置片元著色器的 float 精度為高精度。因為現在桌面端瀏覽器性能都很好,我們直接設置高精度即可。此外還有 mediump 中等精度,和 lowp 低精度,適合用在一些性能羸弱的設備上。精度越低,渲染的效果越差。

然后就是給我們聲明的 u_FragColor 傳值了,在 JavaScript 里。

修改顏色

/** 修改片元著色器的 uniform **/
const u_FragColor = gl.getUniformLocation(gl.program, "u_FragColor");
gl.uniform4f(u_FragColor, 1, 1, 0, 1); // 綠色

西瓜哥這里通過 gl.getUniformLocation 方法獲取對應程序對象中片元著色器的名為 u_FragColor 的 uniform 變量的地址。

然后通過 gl.uniform4f 給這個 uniform 類型賦值。

WebGL 中的顏色分量取值范圍是 0 到 1,對應的是一個 比值,比如 vec4(1.0, 0.5, 0, 0.5),其實就等價于 rbga(255, 255*0.5, 0, 0.5) 。

渲染結果:

圖片

代碼實現:

/**
* wegbl 繪制一個點
*/

/** @type {HTMLCanvasElement} */
const canvas = document.querySelector("canvas");
const gl = canvas.getContext("webgl");

const vertexShaderSrc = `
attribute vec4 a_Position;
void main() {
gl_Position = a_Position;
gl_PointSize = 30.0;
}
`;

const fragmentShaderSrc = `
precision highp float;
uniform vec4 u_FragColor;
void main() {
gl_FragColor = u_FragColor;
}
`;

/**** 渲染器生成處理 ****/
// 創建頂點渲染器
const vertexShader = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vertexShader, vertexShaderSrc);
gl.compileShader(vertexShader);
// 創建片元渲染器
const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fragmentShader, fragmentShaderSrc);
gl.compileShader(fragmentShader);
// 程序對象
const program = gl.createProgram();
gl.attachShader(program, vertexShader);
gl.attachShader(program, fragmentShader);
gl.linkProgram(program);
gl.useProgram(program);
gl.program = program;

/** 修改頂點著色器的 attribute */
const a_Position = gl.getAttribLocation(gl.program, "a_Position");
gl.vertexAttrib3f(a_Position, 0, 0, 0);

/** 【本章新增的代碼】修改片元著色器的 uniform **/
const u_FragColor = gl.getUniformLocation(gl.program, "u_FragColor");
gl.uniform4f(u_FragColor, 0, 1, 0, 1);

/** 畫布繪制 **/
// 清空畫布,并指定顏色
gl.clearColor(0, 0, 0, 1);
gl.clear(gl.COLOR_BUFFER_BIT);
// 繪制點
gl.drawArrays(gl.POINTS, 0, 1);

Demo 地址:

https://codesandbox.io/s/xp81lh?file=/index.js。

這個 demo 加了點料,寫了個定時器不斷修改顏色的函數,將底部的 // changeColor(); 的注釋取消掉即可看到顏色變化的效果。

結尾

下一節我們就真正來繪制三角形了。復雜的三維物體,都可以通過一個個很小的三角形組成,三角形越多,三維物體就越精細。

責任編輯:姜華 來源: 前端西瓜哥
相關推薦

2023-04-12 07:46:24

JavaScriptWebGL

2023-04-11 07:48:32

WebGLCanvas

2023-04-26 07:42:16

WebGL圖元的類型

2023-03-29 07:31:09

WebGL坐標系

2023-05-04 08:48:42

WebGL復合矩陣

2023-06-26 15:14:19

WebGL紋理對象學習

2023-05-31 20:10:03

WebGL繪制立方體

2023-05-16 07:44:03

紋理映射WebGL

2023-05-17 08:28:55

2023-04-27 08:27:29

WebGL變形矩陣

2023-04-17 09:01:01

WebGL繪制三角形

2023-05-08 07:29:48

WebGL視圖矩陣

2022-11-29 16:35:02

Tetris鴻蒙

2022-12-02 14:20:09

Tetris鴻蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2023-05-06 07:23:57

2023-02-28 07:28:50

Spritepixijs

2023-11-13 22:27:53

Mapping數據庫

2024-02-28 12:12:20

Pipeline數據機制
點贊
收藏

51CTO技術棧公眾號

日韩精品视频一区二区在线观看| 国产福利视频一区二区| 北条麻妃在线一区| 午夜精品一区| 高清久久久久久| 日本一区二区三区在线播放 | 久久嫩草捆绑紧缚| 最新日韩一区| 国产精品婷婷午夜在线观看| 2019国产精品视频| 国产午夜免费福利 | 超碰97在线人人| 伊人手机在线视频| 综合亚洲色图| 欧美一区二区三区四区五区| 丰满人妻中伦妇伦精品app| 拍真实国产伦偷精品| 99这里只有精品| 亚洲qvod图片区电影| 欧美一区二区三区不卡视频| 欧美日韩调教| 精品国产一区久久久| 亚洲黄色在线网站| 视频一区中文字幕精品| 亚洲国产美女搞黄色| 杨幂一区欧美专区| 精品黑人一区二区三区国语馆| 精品成人一区| 欧美成aaa人片在线观看蜜臀| 色婷婷狠狠18禁久久| 四虎4545www国产精品| 午夜电影网一区| 国产精品视频网站在线观看| 国产原创在线观看| 国产精品久久久久久久久久免费看| 国产日韩在线视频| 日韩成人毛片视频| 欧美gvvideo网站| 亚洲天堂av女优| 在线观看日韩精品视频| 久久亚洲黄色| 亚洲第一黄色网| 亚洲911精品成人18网站| 在线免费观看亚洲| 欧美日韩精品久久久| av丝袜天堂网| 免费在线观看一区| 欧美亚洲尤物久久| 另类小说色综合| 国产成人免费| 欧美女孩性生活视频| 四季av一区二区| 韩国女主播一区二区| 色综合天天综合狠狠| 一本久道久久综合| 日本免费在线视频| 亚洲欧洲国产日韩| 久久精品magnetxturnbtih| 人人妻人人澡人人爽久久av| 国产91精品露脸国语对白| 国产精品一区二区久久| 在线观看精品国产| 亚洲综合精品四区| 国产精品99一区| 一区二区视频网站| 国产日韩免费| 国产成人在线视频| 国产成人无码精品久久久久| 天天做天天爱天天综合网2021| 国产视频一区在线| 欧美做受高潮6| 成人羞羞动漫| 久久福利视频导航| 日韩美女视频网站| 三级久久三级久久| 91亚洲va在线va天堂va国| www.国产毛片| 另类欧美日韩国产在线| 成人h视频在线观看| 人妻少妇精品无码专区| 国产日韩视频一区二区三区| 国产av不卡一区二区| 91精品国产综合久久久久久豆腐| 99精品一区二区| 日韩色妇久久av| 国产黄色在线网站| 精品毛片网大全| 色噜噜狠狠永久免费| 视频一区日韩精品| 亚洲网站视频福利| 欧美激情精品久久| 亚洲高清资源在线观看| 久久久免费av| 亚洲成人av网址| 懂色av一区二区三区蜜臀| 91一区二区三区| 黄视频在线观看免费| 亚洲欧洲日韩女同| 国产麻花豆剧传媒精品mv在线| wwww亚洲| 欧美日韩一区二区三区免费看| 日本xxxx黄色| 欧美日韩看看2015永久免费 | 国产一区二区精品福利地址| 中文国产亚洲喷潮| 日韩av黄色片| 九九视频精品免费| 久久久久久久久久久久久9999| 亚洲色图欧美视频| 亚洲欧洲99久久| 欧美日韩在线中文| 日韩中文字幕无砖| 中国china体内裑精亚洲片| 国产大片aaa| 国产一区二区免费视频| 日韩在线电影一区| 国产资源在线观看入口av| 日韩一本二本av| 国产又粗又猛又爽又黄的视频小说| 97色伦图片97综合影院| 欧美性一区二区三区| 国产激情久久久久久熟女老人av| 成人免费看的视频| 亚洲精品偷拍视频| 国产精品毛片久久久久久久久久99999999| 欧美日韩视频一区二区| 野花社区视频在线观看| 亚洲国产一区二区三区a毛片| 啪一啪鲁一鲁2019在线视频| 午夜视频网站在线观看| 99精品视频一区二区| 日本久久久网站| 国产精品一区免费在线| 日韩视频在线一区| 毛片在线免费播放| 国产偷国产偷亚洲高清人白洁| 正在播放精油久久| 国产成人午夜性a一级毛片| 精品成人一区二区三区四区| 九九精品在线观看视频| 国产一区啦啦啦在线观看| 五月天丁香综合久久国产| 秋霞国产精品| 精品久久久久久久久久久久久久久| 久久亚洲AV成人无码国产野外| 久久国产电影| 国产精品极品美女粉嫩高清在线| xxxwww在线观看| 亚洲人成精品久久久久| www.偷拍.com| 你懂的国产精品永久在线| 亚洲字幕一区二区| 日本伦理一区二区| 欧美精品一区二区三区一线天视频 | 乱一区二区av| 亚洲午夜高清视频| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 在线播放中文一区| 中文字幕一区二区三区人妻| 国产精品久久久久久久免费软件 | 卡一精品卡二卡三网站乱码| 久久免费成人精品视频| 国产孕妇孕交大片孕| 亚洲欧美日韩在线播放| 特黄特色免费视频| 日韩午夜av| 日韩精品久久久| 色8久久久久| 美日韩丰满少妇在线观看| 亚洲av无码乱码在线观看性色| 国产欧美精品一区二区三区四区 | 美女在线视频免费| 亚洲欧美日韩国产中文| 夜夜爽8888| 一区二区三区四区亚洲| free性中国hd国语露脸| 日本欧美韩国一区三区| 久久伦理网站| 成人在线中文| 欧美激情视频在线观看| 香蕉视频911| 欧美片网站yy| 日产精品久久久久久久| 国产精品色婷婷| 日批视频免费看| 久久激情中文| 亚洲高潮无码久久| 爱情电影网av一区二区| www.亚洲人.com| 人妻一区二区三区| 欧美日韩精品一区二区在线播放 | 成人午夜视频一区二区播放| 黑人巨大精品欧美一区免费视频| 波多野结衣影院| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品久久久久久搜索| 黄色网址在线免费观看| 亚洲国产精品高清久久久| 影音先锋国产在线| 亚洲国产一区二区三区青草影视| 亚洲少妇中文字幕| 日本不卡在线视频| 亚洲精品自在在线观看| 粉嫩精品导航导航| 欧美有码在线观看| 深夜国产在线播放| 亚洲国产精品热久久| 日本视频www| 亚洲色图视频网| 国产成人av片| 国产色综合网| 精品无码av无码免费专区| 精品国产一区二区三区久久久蜜臀 | 亚洲美女搞黄| 蜜桃一区二区三区| 国产精品二区二区三区| 欧美午夜三级| 国产91精品网站| 日韩精品黄色| 国产一区二区三区18| 性高潮久久久久久久久久| 欧美不卡在线视频| 99在线观看精品视频| 欧美优质美女网站| aaaaaa毛片| 亚洲视频一二三| 欧洲性xxxx| 国产天堂亚洲国产碰碰| 中文字幕12页| 美腿丝袜一区二区三区| 国产aaa一级片| 一区二区三区毛片免费| 亚洲女人毛片| 久久美女精品| 午夜精品一区二区三区四区| 国产精品自拍区| 欧美中日韩免费视频| 精品国产鲁一鲁****| 国产原创欧美精品| 国产福利片在线观看| 久久久噜噜噜久噜久久| 丁香高清在线观看完整电影视频| 国产亚洲在线播放| www.五月婷婷| 欧美mv日韩mv| 好吊视频一区二区三区| 亚洲成人黄色网址| 少妇一区二区三区四区| 亚洲激情自拍图| av手机免费看| 91精品国产福利| 亚洲精品97久久中文字幕无码| 欧美在线免费观看视频| 中文字字幕在线观看| 欧美日韩国产中文字幕 | 国产精品妹子av| 99久久久无码国产精品不卡| 91亚洲国产成人精品一区二区三| 97超碰人人看| 丰满白嫩尤物一区二区| 国产国语老龄妇女a片| 国产综合色在线视频区| 香蕉视频xxxx| 成人黄色大片在线观看| 国产精品第七页| 国产日韩欧美亚洲| 一级片一级片一级片| 亚洲激情在线播放| 日韩视频免费观看高清| 一本高清dvd不卡在线观看| 美女黄页在线观看| 日韩一区二区三区在线视频| 神马一区二区三区| 一色桃子一区二区| 主播国产精品| 欧美一性一乱一交一视频| 成人在线高清免费| 国产成人精品网站| 成人乱码手机视频| 国产精品一区二区三区在线观 | 日本在线啊啊| 国产精品黄页免费高清在线观看| 欧美成人黑人| 91久久国产综合久久91精品网站| 日本午夜免费一区二区| 国产精品视频久久久久| 日韩精品麻豆| 国产精品视频一区二区三区经| h视频久久久| 水蜜桃亚洲一二三四在线| 欧美激情偷拍| 免费看污黄网站| 成人激情黄色小说| jizz18女人高潮| 亚洲动漫第一页| 日本亚洲欧美在线| 欧美日韩一级片网站| 日本高清视频免费观看| 最好看的2019的中文字幕视频| 午夜在线视频播放| 国内久久久精品| 91麻豆精品一二三区在线| 蜜桃精品久久久久久久免费影院 | 91免费视频黄| 男人的天堂亚洲在线| 污视频在线观看免费网站| 久久精品人人做人人综合 | 四虎永久免费观看| 国产精品你懂的在线| 一区二区三区福利视频| 欧美大片在线观看一区二区| av福利在线播放| 日本精品久久中文字幕佐佐木| 视频二区不卡| 国产精品有限公司| 国产欧美日韩精品一区二区三区| 亚洲不卡1区| 美女爽到呻吟久久久久| 这里只有精品在线观看视频| 亚洲欧洲中文日韩久久av乱码| 久久久久久蜜桃| 欧美一区二区三区视频| 最新电影电视剧在线观看免费观看| 久久久www成人免费精品| 人人视频精品| 九九九九精品九九九九| 国内精品嫩模av私拍在线观看| 欧美日韩亚洲一| 成人免费观看视频| 中文字幕在线观看成人| 欧美精品v国产精品v日韩精品| 日本成人动漫在线观看| 欧美黄色小视频| 日韩最新av| 国产精品av免费观看| 国产一区二区福利| 亚洲综合视频网站| 欧美日韩一区精品| 在线看黄色av| 国产精品视频永久免费播放| 欧美一站二站| 激情 小说 亚洲 图片: 伦| 日本一区二区三区四区在线视频| 亚洲欧美一区二区三区四区五区| 偷拍一区二区三区| 日韩在线视频免费| 97精品一区二区视频在线观看| 激情中国色综合| 在线精品日韩| 国产乱人伦精品一区二区在线观看| 性久久久久久久久久| 色综合天天综合在线视频| 午夜久久久久久久久久| 九九精品视频在线| 成人直播在线观看| 国产深夜男女无套内射| 91久色porny| 探花国产精品一区二区| 最好看的2019年中文视频| 国产欧洲在线| 免费看成人午夜电影| 亚洲午夜激情在线| 日本黄色动态图| 亚洲精品美国一| 亚洲乱码精品久久久久..| 国内精品久久久久久久| 精品一区二区三区亚洲| 男人天堂a在线| 久久综合九色综合欧美98 | 第九色区aⅴ天堂久久香| 中日韩av在线播放| 一区二区三区不卡在线观看| 色一情一乱一区二区三区| 国产成人精品日本亚洲| 亚洲人成网77777色在线播放| 僵尸世界大战2 在线播放| 国产乱对白刺激视频不卡 | 国产亚洲成年网址在线观看| 亚洲天堂网在线观看视频| 欧美成人久久久| 天堂99x99es久久精品免费| 久久国产精品国产精品| 一区二区三区日本| 欧美女子与性| 91热精品视频| 亚洲欧美日韩视频二区| 免费三级在线观看| 日韩av网站电影| 欧美亚洲福利| 国产一区二区在线视频播放| 中文成人综合网| 免费看av毛片| 国产精品久久久亚洲| 日本一区二区在线看| 国产午夜在线一区二区三区| 欧美性色综合网| 91九色国产在线播放| 亚洲乱码一区二区三区三上悠亚| 久国产精品韩国三级视频| 91国产丝袜播放在线|