jME-CircleShader - Basics
Downloads
|
jME-CircleShader.zip:
|
Download
|
To begin we'll create a simple circle centered in the gui:
Geometry geom = new Geometry("Circle", new Quad(480, 480));
Material mat = new Material(assetManager, "Common/MatDefs/Circle/Circle.j3md");
mat.setColor("Color", new ColorRGBA(1f, 1f, 1f, 1f));
geom.setMaterial(mat);
geom.setLocalTranslation(80, 0, 0);
guiNode.attachChild(geom);

The above code first instantiates a new
Geometry encompasing a
Quad. Following this we create a new
Material using the Circle.j3md shader. As you can see the simplest form of circle only needs to have the
Color property set. With just that one property we create a circle that encompases the whole quad with the set color and an alpha value that fades from the center to the edge of the circle.
Next let's enlarge the center by adding an offset.
mat.setFloat("Offset", 0.5f);

The
Offset property defines the scale of the circle's center as a percentage of the circle's radius from 0.0-1.0 with a default value of 0.0.
Let's make this circle slightly more interesting by adding another color.
mat.setColor("Color2", ColorRGBA.Blue);

Okay, now the circle fade from the center color to
Color2, but it's fully opaque. A circle will automatically fade from the supplied color's alpha value to 0 from the center to the edge of the radius when only one color is used, but when more than one color is used you must set the alpha value yourself with the supplied color.
mat.setColor("Color2", new ColorRGBA(0, 0, 1, 0));

As a side note if you want a fully opaque circle with just one color you can set the
Offset property to 1.0.
You should now have a basic understanding of the circle shader. Be sure to continue on to the
Advanced page for more.
Designed by Adam T. Ryder