GLSL 为 Shader æä¾äºä¸ç§ä¸åä½ç¨çæ°æ®åå¨ï¼æ¯ç§é½æä¸ä¸ªç¹å®çç¨ä¾ãæ¯ç§æ°æ®ä¾ä½ç¨ä¸åå¯ä»¥è¢«ä¸ç§æè å ¨é¨ shader 访é®ï¼åå³äºæ°æ®åå¨ç±»åï¼ï¼ä¹å¯è½éè¿ç«ç¹ç Javascript 代ç è¿è¡è®¿é®ï¼è¿åå³äºåéçç¹å®ç±»åã
GLSL æ°æ®ç±»å<<å ³äº åºæ¬æ°æ®ç±»åï¼åéçï¼åè§ Khronos WebGL Wiki çææ¡£ï¼Data Type (GLSL) >>
GLSL åéGLSL 䏿ä¸ç§ç±»åçâåéâæè è¯´æ°æ®åå¨ç±»åãæ¯ä¸ç§ç±»å齿ç¹å®çç®æ åä½¿ç¨æ¹æ³ï¼: attributesãvaryingsåuniforms.
AttributesAttributes å¯ä»¥è¢« JavaScript ä»£ç æä½ï¼ä¹å¯ä»¥å¨ vertex shader ä¸è¢«ä½ä¸ºåé访é®ãAttributes é常被ç¨äºåå¨é¢è²ã纹çåæ ä»¥åå ¶ä»éè¦å¨ JavaScript 代ç å vertex shader ä¹é´äºç¸ä¼ éçæ°æ®ã
// init colors
const vertexColors = [
vec4(0.0, 0.0, 0.0, 1.0), // black
vec4(1.0, 0.0, 0.0, 1.0), // red
vec4(1.0, 1.0, 0.0, 1.0), // yellow
vec4(0.0, 1.0, 0.0, 1.0), // green
vec4(0.0, 0.0, 0.0, 1.0), // black
vec4(1.0, 0.0, 0.0, 1.0), // red
vec4(1.0, 1.0, 0.0, 1.0), // yellow
vec4(0.0, 1.0, 0.0, 1.0), // green
];
const cBuffer = gl.createBuffer();
// continued
// create buffer to store colors and reference it to "vColor" which is in GLSL
gl.bindBuffer(gl.ARRAY_BUFFER, cBuffer);
gl.bufferData(gl.ARRAY_BUFFER, flatten(vertexColors), gl.STATIC_DRAW);
const vColor = gl.getAttribLocation(program, "vColor");
gl.vertexAttribPointer(vColor, 4, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(vColor);
//glsl
attribute vec4 vColor;
void main()
{
fColor = vColor;
}
Varyings
Varyings å¨ vertex shader ä¸å®ä¹ï¼ç¨äºä» vertex shader å fragment shader ä¼ éæ°æ®ãéå¸¸ä¼ éæ³åéçå¨ vertex shader ä¸è®¡ç®çæçæ°æ®ä¼ä½¿ç¨ varyingã
<<how to use>>
UniformsUniform é常æ¯ç± JavaScript 代ç 设置并ä¸å¨ vertex shader å fragment shader ä¸é½è½å¤è®¿é®ãä½¿ç¨ uniform 设å®å¨ä¸å¸§çææç»å¶ä¸ç¸åçæ°æ®ï¼ä¾å¦å æºé¢è²ã亮度ãå ¨å±åæ¢ä»¥åéè§æ°æ®ççã
<<æ·»å ç»è>>
Buffers<<æ·»å ä¿¡æ¯>>
Textures<<æ·»å ä¿¡æ¯>>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4