Lathander Posted September 7, 2016 Share Posted September 7, 2016 Hello, I recently started to experiment a little bit with HTML5 Game Development. Now I found a some Lightmapping Shader Example on the Internet, which is build on Pixi v3. I currently use Pixi v4 and I dont get the example to work, since it looks like they changed a lot on shaders since v3. This is the website with the example code: http://codepen.io/Oza94/pen/EPoRxj Here is the code I am executing: /** * Created by Fabien on 07.09.2016. */ var lightUrl = 'data:image/png;base64,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'; var tiledmapUrl = 'data:image/png;base64,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'; var fragmentShader = [ 'precision mediump float;', 'varying vec4 vColor;', 'varying vec2 vTextureCoord;', 'uniform sampler2D u_texture; //diffuse map', 'uniform sampler2D u_lightmap; //light map', 'uniform vec2 resolution; //resolution of screen', 'uniform vec4 ambientColor; //ambient RGB, alpha channel is intensity ', 'void main() {', ' vec4 diffuseColor = texture2D(u_texture, vTextureCoord);', ' vec2 lighCoord = (gl_FragCoord.xy / resolution.xy);', ' vec4 light = texture2D(u_lightmap, vTextureCoord);', ' vec3 ambient = ambientColor.rgb * ambientColor.a;', ' vec3 intensity = ambient + light.rgb;', ' vec3 finalColor = diffuseColor.rgb * intensity;', ' gl_FragColor = vColor * vec4(finalColor, diffuseColor.a);', '}' ].join('\n'); function defaultValue(inputValue, defaultValue) { inputValue = typeof inputValue !== 'undefined' ? inputValue : defaultValue; return inputValue; } function LightmapFilter(lightmapTex, ambientColor, resolution) { this.lightmapTex = lightmapTex; ambientColor = defaultValue(ambientColor, [0.3, 0.3, 0.7, 0.5]); resolution = defaultValue(resolution, [1.0, 1.0]); PIXI.AbstractFilter.call( this, null, fragmentShader, { u_lightmap: { type: 'sampler2D', value: lightmapTex }, resolution: { type: '2f', value: new Float32Array(resolution) }, ambientColor: { type: '4f', value: new Float32Array(ambientColor) } }); } LightmapFilter.prototype = Object.create(PIXI.AbstractFilter.prototype); LightmapFilter.prototype.constructor = LightmapFilter; // need to preload fucking image since RenderTexture does not support async loading var img = new Image(); img.crossOrigin = "Anonymous"; img.src = lightUrl; img.onload = function () { var stage = new PIXI.Container(); // create a renderer instance. var renderer = PIXI.autoDetectRenderer(400, 300); // draw lightmap on this render target var renderTexture = new PIXI.RenderTexture(renderer, 400, 300); // tex creation var lightBaseTexture = new PIXI.BaseTexture(img); var lightTexture = new PIXI.Texture(lightBaseTexture); var lightTexture2 = new PIXI.Texture(lightBaseTexture); var lightSprite = new PIXI.Sprite(lightTexture); var lightSprite2 = new PIXI.Sprite(lightTexture2); // ADDITIVE blend mode for pretty intersecting lights lightSprite.blendMode = PIXI.BLEND_MODES.ADD; lightSprite2.blendMode = PIXI.BLEND_MODES.ADD; // move a little bit one light on right to check proper lights intersect lightSprite.x = 100; // back background of the lightmap var lightmapBg = new PIXI.Graphics(); lightmapBg.beginFill(0x000000); lightmapBg.drawRect(0, 0, 400, 300); // size of our renderer lightmapBg.endFill(); // create the lightmap var lightmapContainer = new PIXI.Container(); lightmapContainer.addChild(lightmapBg); lightmapContainer.addChild(lightSprite); lightmapContainer.addChild(lightSprite2); renderTexture.render(lightmapContainer); // here is our map, a simple texture for the example var tiledmapSprite = new PIXI.Sprite.fromImage(tiledmapUrl); // tada magic - apply our lightmap to our tiledmap tiledmapSprite.filters = [new LightmapFilter(renderTexture)]; // add the tiledmap to stage stage.addChild(tiledmapSprite); document.body.appendChild(renderer.view); // rendering code requestAnimationFrame( animate ); function animate() { requestAnimationFrame( animate ); // render the stage renderer.render(stage); } }; If I try to run this Pixi v4 I get the following error: gl.getProgramInfoLog() Varyings with the same name but different type, or statically used varyings in fragment shader are not declared in vertex shader: vColor this is why I changed the code to this: var fragmentShader = [ 'precision mediump float;', 'varying vec4 vColor;', 'varying vec2 vTextureCoord;', 'uniform sampler2D u_texture; //diffuse map', 'uniform sampler2D u_lightmap; //light map', 'uniform vec2 resolution; //resolution of screen', 'uniform vec4 ambientColor; //ambient RGB, alpha channel is intensity ', 'void main() {', ' vec4 diffuseColor = texture2D(u_texture, vTextureCoord);', ' vec2 lighCoord = (gl_FragCoord.xy / resolution.xy);', ' vec4 light = texture2D(u_lightmap, vTextureCoord);', ' vec3 ambient = ambientColor.rgb * ambientColor.a;', ' vec3 intensity = ambient + light.rgb;', ' vec3 finalColor = diffuseColor.rgb * intensity;', ' gl_FragColor = vColor * vec4(finalColor, diffuseColor.a);', '}' ].join('\n'); var vertexShader = [ 'precision lowp float;', 'attribute vec2 aVertexPosition;', 'attribute vec2 aTextureCoord;', 'attribute vec4 aColor;', 'uniform mat3 projectionMatrix;', 'varying vec2 vTextureCoord;', 'varying vec4 vColor;', 'void main(void){', ' gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);', ' vTextureCoord = aTextureCoord;', ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);', '}' ].join('\n'); function defaultValue(inputValue, defaultValue) { inputValue = typeof inputValue !== 'undefined' ? inputValue : defaultValue; return inputValue; } function LightmapFilter(lightmapTex, ambientColor, resolution) { this.lightmapTex = lightmapTex; ambientColor = defaultValue(ambientColor, [0.3, 0.3, 0.7, 0.5]); resolution = defaultValue(resolution, [1.0, 1.0]); PIXI.Filter.call( this, vertexShader, fragmentShader, { u_lightmap: { type: 'sampler2D', value: lightmapTex }, resolution: { type: '2f', value: new Float32Array(resolution) }, ambientColor: { type: '4f', value: new Float32Array(ambientColor) } }); } LightmapFilter.prototype = Object.create(PIXI.Filter.prototype); LightmapFilter.prototype.constructor = LightmapFilter; // need to preload fucking image since RenderTexture does not support async loading var img = new Image(); img.crossOrigin = "Anonymous"; img.src = "assets/lightSource.png"; img.onload = function () { var stage = new PIXI.Container(); // create a renderer instance. var renderer = PIXI.autoDetectRenderer(400, 300); // draw lightmap on this render target // var renderTexture = new PIXI.RenderTexture(renderer, 400, 300); var renderTexture = PIXI.RenderTexture.create(400,300); // tex creation var lightBaseTexture = new PIXI.BaseTexture(img); var lightTexture = new PIXI.Texture(lightBaseTexture); var lightTexture2 = new PIXI.Texture(lightBaseTexture); var lightSprite = new PIXI.Sprite(lightTexture); var lightSprite2 = new PIXI.Sprite(lightTexture2); // ADDITIVE blend mode for pretty intersecting lights lightSprite.blendMode = PIXI.BLEND_MODES.ADD; lightSprite2.blendMode = PIXI.BLEND_MODES.ADD; // move a little bit one light on right to check proper lights intersect lightSprite.x = 100; // back background of the lightmap var lightmapBg = new PIXI.Graphics(); lightmapBg.beginFill(0x000000); lightmapBg.drawRect(0, 0, 400, 300); // size of our renderer lightmapBg.endFill(); // create the lightmap var lightmapContainer = new PIXI.Container(); lightmapContainer.addChild(lightmapBg); lightmapContainer.addChild(lightSprite); lightmapContainer.addChild(lightSprite2); //renderTexture.render(lightmapContainer); renderer.render(lightmapContainer,renderTexture); // here is our map, a simple texture for the example var tiledmapSprite = new PIXI.Sprite.fromImage("assets/tileMap.png"); // tada magic - apply our lightmap to our tiledmap tiledmapSprite.filters = [new LightmapFilter(renderTexture)]; // add the tiledmap to stage stage.addChild(tiledmapSprite); document.body.appendChild(renderer.view); // rendering code requestAnimationFrame(animate); function animate() { requestAnimationFrame(animate); // render the stage renderer.render(stage); } }; Now no more error pops up, but the screen stays black. This screen shows the error message This screen shows the error log after my "fix" This last screenshot shows how it just works with pixi v3 Hopefully someone can help Thank you in advance Lathander Quote Link to comment Share on other sites More sharing options...
ivan.popelyshev Posted September 8, 2016 Share Posted September 8, 2016 You want something like this? Quote Link to comment Share on other sites More sharing options...
Lathander Posted September 8, 2016 Author Share Posted September 8, 2016 Yes, this is exactly what I am looking for. Would you be so kind and share the source with me ? Quote Link to comment Share on other sites More sharing options...
ivan.popelyshev Posted September 8, 2016 Share Posted September 8, 2016 I'm working on addon for pixi-display plugin right now. It will be available in two days or so, and it'll be easy to use, no need of knowing all these stuff. Basically, you'll be able to apply any filters and blendmodes on the scene in a bulk. 100 lights? Ok, it will work just fine. Your plugin will be first to use that, then I'll ask guys if its worth to putting into vanilla RPGMV benny! 1 Quote Link to comment Share on other sites More sharing options...
ruslanchek Posted October 19, 2016 Share Posted October 19, 2016 Sounds good! So, why vColor is not available now in PIXI v4? Quote Link to comment Share on other sites More sharing options...
xerver Posted October 19, 2016 Share Posted October 19, 2016 1 hour ago, ruslanchek said: Sounds good! So, why vColor is not available now in PIXI v4? Filters used to use the "texture shader" by default, which was the default shader we used for Sprites. It had vColor because Sprites have tint. The reality is, Filters don't have tint so it doesn't make sense for it to be there. The default vertex shader used for Filters in v4 can be found here: https://github.com/pixijs/pixi.js/blob/3f05bf1284035d25a8f483b278d4dc377b1d23be/src/core/renderers/webgl/filters/Filter.js#L112 Along with the default fragment shader shortly after. Quote Link to comment Share on other sites More sharing options...
xerver Posted October 19, 2016 Share Posted October 19, 2016 Since there was so much interest in this thread, I went ahead and updated this example for v4.1.0: https://jsfiddle.net/4kpqd3mt/1/ Note that the light's border artifacts are just because of the image used and not the shader. The image itself actually has hard edges for the light. labrat.mobi 1 Quote Link to comment Share on other sites More sharing options...
GBear Posted October 20, 2016 Share Posted October 20, 2016 i wonder how fast with shader in pixi.to make game with mobile. i'm saving using shader.. if function that create by shader, can make with image or hard working, i will do now.. but sometimes i concern which one is good to use between performance(optimization) and easy or good expression can you give me answer? how fast with shader specially on mobile like ios,android(pc is not becuase it's as fast as we make game) thx..! Quote Link to comment Share on other sites More sharing options...
xerver Posted October 20, 2016 Share Posted October 20, 2016 I'm not sure what you are asking, but I wouldn't working about performance issues until you actually have a performance issue. Quote Link to comment Share on other sites More sharing options...
ruslanchek Posted October 22, 2016 Share Posted October 22, 2016 On 10/19/2016 at 6:36 PM, xerver said: Filters used to use the "texture shader" by default, which was the default shader we used for Sprites. It had vColor because Sprites have tint. The reality is, Filters don't have tint so it doesn't make sense for it to be there. The default vertex shader used for Filters in v4 can be found here: https://github.com/pixijs/pixi.js/blob/3f05bf1284035d25a8f483b278d4dc377b1d23be/src/core/renderers/webgl/filters/Filter.js#L112 Along with the default fragment shader shortly after. Thank you! I have founded it. Quote Link to comment Share on other sites More sharing options...
vdddslep Posted January 5, 2017 Share Posted January 5, 2017 On 10/19/2016 at 9:34 AM, xerver said: Since there was so much interest in this thread, I went ahead and updated this example for v4.1.0: https://jsfiddle.net/4kpqd3mt/1/ Note that the light's border artifacts are just because of the image used and not the shader. The image itself actually has hard edges for the light. Thank you, you save a week of my work I think Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.