【发布时间】:2019-03-22 21:44:05
【问题描述】:
我正在尝试将最基本的 ShaderToy 着色器 (https://www.shadertoy.com/new) 转换为与 PixiJS v4.5.5 一起使用。我得到的是一个完全静止的背景:
背景应该在颜色之间移动和混合,就像在 ShaderToy 示例中一样。我在控制台中没有收到任何错误。
我的代码:
let width = window.innerWidth;
let height = window.innerHeight;
let app = new PIXI.Application(width, height);
document.body.appendChild(app.view);
let shaderFrag = `
precision mediump float;
uniform vec3 iResolution; // viewport resolution (in pixels)
uniform float iTime; // shader playback time (in seconds)
void main() {
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = gl_FragCoord.xy/iResolution.xy;
// Time varying pixel color
vec3 col = 0.5 + 0.5*cos(iTime+uv.xyx+vec3(0,2,4));
// Output to screen
gl_FragColor = vec4(col,1.0);
}
`;
let container = new PIXI.Container();
container.filterArea = app.screen;
app.stage.addChild(container);
let filter = new PIXI.Filter(null, shaderFrag);
filter.uniforms.iResolution = [width, height, 1.0];
filter.uniforms.iTime = 1.0;
container.filters = [filter];
// Animate the filter
app.ticker.add(function(delta) {
filter.uniforms.iTime += 0.1;
});
这可能是什么问题?
PS:完全相同的着色器代码与 Three.js 完美配合。
【问题讨论】:
标签: glsl shader fragment-shader pixi.js