-
Notifications
You must be signed in to change notification settings - Fork 0
Voxy.json
An array of strings of the names of uniforms you wish to use in your patch, such as gbufferModelView, frameCounter, etc. This includes custom uniforms, these are automatically added/injected into your patch so YOU MUST NOT DEFINE THE UNIFORMS IN YOUR PATCH DATA
An array of integers describing the buffers you want to write to in each phase NOTE ALL CURRENT VOXY VERSIONS (currently 0.2.5 as of writing) TRANSLUCENT BUFFER IS WRITTEN IMMEDIATLY AFTER VOXY OPAQUE BEFORE ANY OTHER IRIS STAGE IS CALLED this means currently the flip ordering may not be correct. the rendering order is. vanilla opaque/cuttout terrain -> voxy opaue -> voxy translucent -> rest of the vanilla rendering stages after opaque terrain
To compensate for this 4 more colorTex have been added, meaning you can now use 0-19 instead of 0-15
A string-to-string map where the key is the sampler name and the value is the sampler type, e.g.
{
"colortex4": "sampler2D",
"shadowtex3": "sampler2DShadow"
}Note this can also be an array ["colortex4", "shadowtex3"] in which case, everything is assumed to be "sampler2D" except for shadowtex which becomes "sampler2DShadow".
These describe the ssbos and how they are used. it is an int2string map with -1 being special the index -1 think of as a header, it is inserted before any ssbo defines. this allows you to declear struct layouts etc that will be used every other index is the index of the ssbo as you would normally use in iris, follows by the buffer layout e.g.
{
-1: "struct DataThing{vec4 colour; uint data;};",
0: "{DataThing dataArray[];}"
}dataArray is now declared in your patch for you to use.
Describes how the buffers in translucentDrawBuffers are blended. It is an int2string/int2stringarray mapping, with -1 being special.
-1 describes the default blending state of all the buffers.
NOTE: the index that you use, specifies the index in the translucentDrawBuffers array in which to modify
e.g. translucentDrawBuffers [1,2,3]
blending 0:"off" will specify that buffer 1 does not have blending
the way to describe blending is as you would in iris but as a string e.g. "off", "ONE ONE_MINUS_SRC_ALPHA ONE ONE_MINUS_SRC_ALPHA", or as a component array ["ONE", "ONE_MINUS_SRC_ALPHA", "ONE", "ONE_MINUS_SRC_ALPHA"]
Probably the most weird part, it is the body of a glsl function which returns a vec2, which specifies a pixel shift. This function as of v1 only has access to the uniforms described in uniforms.
e.g. {return taa_offset;} if you have a vec2 uniform taa_offset.
This is meant to be a very lightweight and cheap function, and must be uniform constant over all invocations in a given frame (it must be the same value for the entire frame).
It may alternatively be specified in the program file voxy_taa.glsl.
A boolean value which is false by default. When this is false, the depth value of the lods that are rendered get transformed into and blitted onto the vanilla depth buffer for the opaque render pass. When true this does not happen. This is enabled by default as it fixes some issues related to entities, particles, block-entities rendering in front of lods even when they are not meant to.
A 1 or 2 element float array which specifies a render scaling factor, this is a pure scaling factor, meaning that the viewport and depth buffers itself get shrunk by that scaling factor.
A boolean which is false by default. is generally used in combination with renderScale. It specifies that the input viewport shape (the framebuffer taken from vanilla) is the size of the viewport used by Voxy. That is, if you had a renderScale of [0.5] and useViewportDims set to true. The input viewport would be 0.5 smaller then default. this is used if your terrain is e.g. rendered with TAAU and only occupies the corner of the viewport. However if you wish for only lod terrain to be rendered at a smaller viewport while normal terrain is not, then useViewportDims should be false.