p5.js resetShader()方法在WEBGL模式下恢複默認著色器。在此方法之後運行的代碼將不受先前定義的著色器的影響。
用法:
resetShader(kindOfShader)
參數:它接受kindOfShader作為可選參數,它是一個整數,描述了著色器的類型(點,線或三角形)。
Returns Type:它的返回類型為void。
下麵的示例說明了p5.js中的resetShader()函數:
Javascript
let m;
function preload() {
// Load the shader definitions from files
m = loadShader('shader.vert', 'shader.frag');
}
function setup() {
createCanvas(100, 100, WEBGL);
// Use the shader
shader(m);
noStroke();
m.setUniform('p', [-0.74364388703, 0.13182590421]);
resetShader();
}
function draw() {
m.setUniform('r', 1.5 * exp(-6.5 * (1 + sin(millis() / 2000))));
quad(-1, -1, 1, -1, 1, 1, -1, 1);
}
shader.vert
precision highp float; varying vec2 vPos; attribute vec3 aPosition; void main() { vPos = (gl_Position = vec4(aPosition,1.0)).xy; }
shader.frag
precision highp float; varying vec2 vPos; uniform vec2 p; uniform float r; const int I = 500; void main() { vec2 c = p + vPos * r, z = c; float n = 0.0; for (int i = I; i > 0; i --) { if(z.x*z.x+z.y*z.y > 4.0) { n = float(i)/float(I); break; } z = vec2(z.x*z.x-z.y*z.y, 2.0*z.x*z.y) + c; } gl_FragColor = vec4(0.5-cos(n*17.0)/2.0,0.5-cos(n*13.0)/2.0,0.5-cos(n*23.0)/2.0,1.0); }
輸出:
在注釋掉resetShader()方法時,將輸出以下內容。
相關用法
- Lodash _.method()用法及代碼示例
- Node.js Http2ServerRequest.method用法及代碼示例
- Node.js http.IncomingMessage.method用法及代碼示例
- Javascript dataView.getInt16()用法及代碼示例
- Collect.js toArray()用法及代碼示例
- Javascript RegExp toString()用法及代碼示例
- Node.js URLSearchParams.has()用法及代碼示例
- JavaScript Math cosh()用法及代碼示例
- HTML DOM isEqualNode()用法及代碼示例
- JavaScript Date toLocaleTimeString()用法及代碼示例
- Node.js crypto.createHash()用法及代碼示例
- Node.js process.send()用法及代碼示例
- Node.js writeStream.clearLine()用法及代碼示例
- Javascript Number isSafeInteger()用法及代碼示例
- HTML DOM History go()用法及代碼示例
- Node.js fs.link()用法及代碼示例
- Java ArrayList toArray()用法及代碼示例
- JavaScript Math random()用法及代碼示例
- JavaScript Math round()用法及代碼示例
- Javascript toString()用法及代碼示例
- Javascript Number.isInteger( )用法及代碼示例
- Javascript Number.isFinite()用法及代碼示例
注:本文由純淨天空篩選整理自faizamu19大神的英文原創作品 p5.js resetShader() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。