精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品久久久久9999高清| 亚洲aⅴ网站| 99国产精品99久久久久久| 欧美在线观看视频| 99久久久无码国产精品不卡| 亚洲精品一二三**| 91国模大尺度私拍在线视频| 色135综合网| 精品国产a毛片| 妺妺窝人体色www在线观看| 日韩欧美一起| 亚洲国产精品v| 国产一区二区三区无遮挡| 久久久精品人妻一区二区三区四| 国产人与zoxxxx另类91| 精品国产鲁一鲁一区二区张丽| 国产精品手机视频| 一区二区自拍偷拍| 99av国产精品欲麻豆| 精品国内亚洲在观看18黄 | 亚洲AV无码国产精品| av日韩一区| 欧美专区在线观看一区| 亚洲国产成人精品无码区99| 久久77777| 国产免费观看久久| 女同一区二区| 亚洲性生活大片| 久久国产成人| 97成人超碰免| 国产91av视频| 欧美日韩蜜桃| 中文字幕亚洲天堂| 欧美老熟妇乱大交xxxxx| 都市激情久久| 欧美成人一区二区三区片免费 | 在线小视频你懂的| 成人在线啊v| 在线欧美日韩精品| 亚洲自偷自拍熟女另类| free性欧美16hd| 亚洲少妇30p| 中文字幕在线中文字幕日亚韩一区| www.亚洲天堂.com| 久久精品二区亚洲w码| 日韩av手机在线看| 日本中文在线视频| 久久要要av| 中文日韩电影网站| 蜜桃av乱码一区二区三区| 激情视频亚洲| 91精品国产一区二区| 亚洲涩涩在线观看| 国产精品3区| 日韩一级二级三级| 少妇欧美激情一区二区三区| 日韩精品一区二区三区中文字幕 | 男人的天堂视频在线| 人人干在线视频| 国产精品不卡在线观看| 亚洲三区在线观看| 免费人成在线观看播放视频| 亚洲私人影院在线观看| 品久久久久久久久久96高清| 国产午夜精品一区理论片| 久久久不卡网国产精品二区| www日韩av| 亚洲综合精品视频| 国产一区二区三区在线观看免费 | 少妇激情综合网| 国产探花视频在线| 亚洲影视一区二区三区| 欧美福利视频在线| 性欧美疯狂猛交69hd| 欧美+日本+国产+在线a∨观看| 亚洲人成网站免费播放| 欧美在线一级片| 九九热爱视频精品视频| 亚洲福利影片在线| 91精品人妻一区二区三区蜜桃2| 日韩经典一区| 91精品国产综合久久精品图片| 三级在线免费看| 一级欧美视频| 亚洲国产毛片完整版| 蜜桃无码一区二区三区| 日韩欧美高清在线播放| 欧美日韩福利在线观看| 少妇一级淫片免费放中国| 奇米一区二区三区av| 亚洲最大福利视频| 国产又粗又猛又爽又黄视频 | 欧美一级网站| 国产精品香蕉av| 亚洲精品成人区在线观看| 久久五月婷婷丁香社区| 性欧美18一19内谢| 国际av在线| 1000部国产精品成人观看| av免费观看国产| 国产精品一区二区免费福利视频| 欧美亚男人的天堂| 国产+高潮+白浆+无码| 欧美精品一二| 国模gogo一区二区大胆私拍 | 一起草最新网址| 日韩成人精品| 国产亚洲精品高潮| 精品无码久久久久久久| 美女视频黄久久| 久久久7777| 国内高清免费在线视频| 亚洲一区二区三区视频在线播放| 黄页网站大全在线观看| 日韩三级一区| 亚洲色图综合网| 日韩av在线播放观看| 精品一区免费av| 日韩一区二区三区高清| 二区在线观看| 亚洲国产精品嫩草影院| 欧美一级xxxx| 欧美日韩伦理一区二区| 欧美一区二区三区性视频| 最近中文字幕免费| 免费在线成人| 精品国产乱码久久久久| 成人在线免费观看黄色| 欧美一区二区私人影院日本| 国产伦精品一区二区免费| 在线免费观看日本欧美爱情大片| 性色av香蕉一区二区| 精品人妻少妇AV无码专区| 国产精品成人网| 色播五月综合网| 91成人福利| 欧美成人免费在线观看| 国产精品亚洲欧美在线播放| 中文天堂在线一区| 色悠悠久久综合网| 国产精品亚洲二区| 日本一本a高清免费不卡| 亚洲人成色777777老人头| 午夜一区二区三区在线观看| 无码人妻精品一区二区三区99不卡| 你懂的一区二区三区| 91av在线视频观看| 青青草在线视频免费观看| 亚洲色图欧美偷拍| 中文字幕12页| 亚洲影视一区二区三区| 97se亚洲综合在线| 欧美人与牲禽动交com | 日韩少妇与小伙激情| 亚洲天堂视频网| 亚洲人成在线播放网站岛国| 亚洲一区二区偷拍| 欧美涩涩视频| 精品日本一区二区三区在线观看 | 国模精品一区| 国产精品嫩草影院久久久| 午夜激情在线观看| 色婷婷av久久久久久久| a级片在线观看| 美女精品一区二区| 99视频精品全部免费看| 国产精品66| 另类色图亚洲色图| 亚洲国产成人精品一区二区三区| 成人欧美一区二区三区在线播放| 国产成人a亚洲精v品无码| 国产91久久精品一区二区| 国产精品羞羞答答| 成人福利在线观看视频| 精品粉嫩aⅴ一区二区三区四区 | 一区二区电影| 国产午夜精品一区| 国精产品一区二区三区有限公司| 日韩国产精品视频| 中文无码精品一区二区三区| 久久久国际精品| 亚洲网中文字幕| 日韩图片一区| 亚洲一区三区电影在线观看| 亚洲经典视频| 国产精品第七十二页| gogo在线观看| 亚洲人成电影网站色www| 国产欧美第一页| 懂色av影视一区二区三区| www.涩涩爱| www.在线欧美| 九九九九九伊人| 一本色道久久综合一区| 一区二区成人国产精品| 久久久久观看| 91精品视频专区| 成人欧美magnet| 色综合久久中文字幕综合网小说| 国产乱码久久久| 欧美日韩免费一区| 欧美偷拍一区二区三区| 日韩国产欧美视频| 九九热只有这里有精品| 久久一区二区中文字幕| 久久99精品久久久久久秒播放器 | 日韩精品一区二区久久| 国产精华一区| 精品久久在线| 欧洲成人免费视频| 变态调教一区二区三区| 久久精品国产免费观看| 国产在线三区| 亚洲国产小视频在线观看| 国产人妖一区二区| 欧美在线一二三四区| 亚洲免费在线视频观看| 夜夜操天天操亚洲| 91久久国产综合| 国产精品污网站| 亚洲AV无码国产成人久久| 蜜桃精品视频在线| 警花观音坐莲激情销魂小说 | 日本在线免费观看一区| youjizz亚洲| 国产成人精品av在线| 麻豆免费在线视频| 在线精品国产成人综合| 国产在线一二| 亚洲深夜福利在线| av手机免费看| 91精品国产综合久久精品app | 欧美日韩亚洲视频| 久久影院一区二区| 夜夜嗨av一区二区三区| 久久久久久久久久久97| 一区二区三区日韩精品视频| 国产成人自拍网站| 亚洲柠檬福利资源导航| 亚洲午夜久久久久久久久红桃| 久久99精品一区二区三区三区| 亚洲色成人www永久在线观看| 神马久久一区二区三区| 欧美久久久久久一卡四| 欧美精美视频| 日韩电影大全在线观看| 精品国产精品久久一区免费式| 91国产丝袜在线放| 亚洲欧洲国产精品一区| 操人视频欧美| 老司机成人在线| 91嫩草在线视频| 色妞ww精品视频7777| 国产精品区免费视频| 久久久久97| 欧美裸体网站| 日韩理论电影大全| 久久免费视频2| 欧美午夜在线视频| 国产在线播放观看| 欧美成人亚洲| 免费看毛片的网址| 自由日本语亚洲人高潮| 成人免费a级片| 国产精品久久久久久久久久10秀 | 亚州视频一区二区三区| 亚洲男人7777| 婷婷激情在线| 色综合男人天堂| 老司机成人影院| 国产一区二区在线播放| 清纯唯美激情亚洲| 久久精品中文字幕一区二区三区 | 免费成人美女在线观看.| 精品久久一二三| 免费黄网站欧美| 9191在线视频| 久久久三级国产网站| 波多野结衣先锋影音| 国产视频一区二区在线| 精品自拍偷拍视频| 欧美日韩国产专区| 久草国产精品视频| 欧美天天综合网| 最新中文字幕第一页| 欧美一区二区三区日韩视频| 熟妇高潮一区二区高潮| 在线电影av不卡网址| 中文国产字幕在线观看| 日韩美女中文字幕| 日韩一区二区三区精品视频第3页| 成人精品一区二区三区| 久久久久观看| 欧美极品日韩| 国产精品www994| 免费看a级黄色片| 成人午夜激情影院| 中国1级黄色片| 欧美午夜美女看片| 性生活黄色大片| 在线成人激情黄色| 日本精品一区二区三区在线播放| 最新69国产成人精品视频免费| 午夜视频在线免费观看| 91地址最新发布| 日韩激情综合| 亚洲免费视频一区| 国产精品一二| 蜜桃免费在线视频| 99热99精品| 欧美成人手机视频| 欧美日韩精品一区二区三区蜜桃| av一级黄色片| 最近2019中文字幕在线高清| 是的av在线| 国产精品.com| 欧美激情性爽国产精品17p| 性欧美极品xxxx欧美一区二区| 老司机精品视频导航| 无码人妻精品一区二区三区温州| 国产欧美日韩视频在线观看| 国产一级特黄aaa大片| 欧美一区二区三区成人| 99reav在线| 国产精品高清在线| 日韩理论电影中文字幕| 国产精品久久久久久久乖乖| 国产乱国产乱300精品| 影音先锋人妻啪啪av资源网站| 国产婷婷色一区二区三区 | 亚洲激情77| av免费看网址| 成人美女视频在线观看18| 国产精品jizz| 亚洲同性gay激情无套| 超碰在线97观看| 精品美女一区二区三区| 91精品久久| 99久久综合狠狠综合久久止 | 亚洲天堂第一页| 在线天堂新版最新版在线8| 国产一区在线观| 亚洲福利一区| 日韩免费高清一区二区| 国产精品麻豆视频| 中文字幕人妻色偷偷久久| 精品国产伦理网| av伦理在线| 久久av一区二区三区亚洲| 亚洲一区 二区 三区| 欧美人与性动交α欧美精品| 一区二区三区小说| 最近日韩免费视频| 色伦专区97中文字幕| 日韩成人一区| 中文字幕の友人北条麻妃| 成人小视频免费在线观看| 日本一级片免费看| 亚洲人成电影在线| 亚洲国产91视频| 日韩电影免费观看高清完整| 日本成人在线电影网| 成人自拍小视频| 精品少妇一区二区三区日产乱码 | 9l视频自拍蝌蚪9l视频成人| 日本欧美视频在线观看| 97精品国产露脸对白| 加勒比av在线播放| 精品国产乱码久久久久久久久 | 国产蜜臀97一区二区三区| 亚洲一区在线观| 久久久久久久久91| 九色成人国产蝌蚪91| 在线观看免费av网址| 夜夜嗨av一区二区三区网页| 三级在线观看| 91九色单男在线观看| 极品av少妇一区二区| av男人的天堂av| 日韩欧美aaa| 免费在线毛片网站| 国产女主播一区二区三区| 久热精品视频| 少妇aaaaa| 亚洲毛茸茸少妇高潮呻吟| 91丨精品丨国产| 国产一区二区在线视频播放| k8久久久一区二区三区| 国产精品51麻豆cm传媒 | 成人在线观看免费| 亚洲精品免费av| 久久亚洲欧美| 曰本女人与公拘交酡| 亚洲欧美综合另类中字| 欧美成人精品三级网站| 久久av秘一区二区三区| 2021久久国产精品不只是精品| 天堂中文字幕在线观看| 久久精品亚洲94久久精品| 香蕉精品久久|