Shaders[]
The active shaders should be located in the contents/files/shaders folder. There are four shaders that can be used. The outputs of the base shaders are sent to the final shaders in the form of textures.
Structures[]
lightSource[]
struct lightSource { int itemId; float magnitude; vec4 specular; };
Attributes[]
vec4 mc_Entity[]
mc_Entity.x[]
The x component of mc_Entity is the entity id. Currently this is only set for blocks. In future updates it will be set for items and mobs. It will have a value of -1.0 for unknown entities.
mc_Entity.y[]
The y component of mc_Entity contains information regarding lighting. It is currently calculated as lightValue * 16 + brightness. In future updates other additions may be made to this (such as the sides exposed to the sky).
In the shaders, lightValue can be obtained by mod(floor(mc_Entity.y / 16.0), 16.0). brightness can be obtained by mod(mc_Entity.y, 16.0).
mc_Entity.z[]
Reserved
mc_Entity.w[]
Reserved
Uniforms[]
There are several uniforms available to the shaders.
Global Uniforms[]
float displayWidth[]
The width of the display.
float displayHeight[]
The height of the display.
float aspectRatio[]
The aspect ratio of the display (displayWidth / displayHeight).
float near[]
The near viewing plane.
float far[]
The far viewing plane.
int fogMode[]
The current fog mode. The possible values are as follows:
const int GL_LINEAR = 9729; const int GL_EXP = 2048;
float sunVector[]
The position of the sun in eye coordinates.
float moonVector[]
The position of the moon in eye coordinates.
int worldTime[]
The world time of day (ranges from 0 to 23999).
lightSource heldLight[]
The properties of the item currently being held.
Base Unforms[]
sampler2D sampler0[]
The texture of the current element.
sampler2D sampler1[]
The normals and height-map for the current texture (loaded from XXXXX_nh.png). At the moment this is only accurate when renderType is equal to RENDER_TYPE_TERRAIN.
int renderType
Type of rendering: renderType is equal to 0 for items, entities, signs, water, ice etc., renderType is equal to 1 for blocks.
Final Uniforms[]
Hacked[]
sampler2D sampler1[]
The depth of the rendered scene, excluding the player's arm.
sampler2D sampler2[]
The depth of the player's arm.
Tips[]
Anti-Aliasing[]
To avoid anti-aliasing on polygon edges, texture coordinates should be declared as centroid in the base vertex and fragment shaders. AA form is in FXAA 2x 4x & 8x.
☀Fast Approximate Anti-Aliasing
This AA method analyzes the pixel on the screen and ignores polygons and lines in a pre buffered frame..