~~NOTOC~~ ====== God Rays ====== ---- dataentry extension ---- author_mail : daniel@gamua.com Daniel Sperl description : Atmospheric lighting, like the typical effects you see underwater or in a forest. compatible : v2.2 tags : light, god ray, sun ray homepage_url : https://gist.github.com/PrimaryFeather/e05a738e60c4253564d8a0f7866c5384 ---- ===== Overview ===== A quad that efficiently draws a 2D light ray effect on its surface. That's useful for adding atmospheric effects, like the typical effects you see underwater or in a forest. ([[https://gist.github.com/PrimaryFeather/03de478dabd456e1985b411b8b0e22e5|Demo Source]].) {{ :extensions:godrays.mp4?756x316 |}} Play around with the different settings to make it suit the style you want. In addition to the class-specific properties, you can also assign an overall color or different colors per vertex. Add it to a juggler or call ''advanceTime'' so that the effect becomes animated. var godRays:GodRayPlane = new GodRayPlane(320, 200); godRays.color = 0xff8000; godRays.speed = 0.1; // animation speed godRays.size = 0.1; // number of rays ~= 1 / size godRays.skew = 0; // angle of rays godRays.shear = 0; // spread of angle godRays.fade = 1; // rays fade out towards the bottom godRays.contrast = 1; // distinctiveness and brightness of the rays addChild(godRays); Starling.juggler.add(godRays); Internally, the class creates a [[wp>Perlin noise]] texture. Each frame, only one pixel row of this texture is displayed -- stretched from top to bottom. The displayed row changes over time: this is what causes the rays to twinkle. By adjusting the texture coordinates, the angle and spread of rays can be determined. Since most of the work is done in a shader, this effect is very lightweight and renders really fast. A ''MeshStyle'', together with a ''MeshEffect'', does the heavy lifting. ===== Changelog ===== * //2017/10/10//: First public version * //2021/01/15//: Exposed 'textureOffset' property. Thanks to //aureliendc// for the pull request! ===== User Comments ===== //Feel free to edit this part of the page if you want to add information that's lacking in the above description.\\ Questions are better asked in the [[http://forum.starling-framework.org|forum]], though.//