vertex_format_add_custom

Add custom values to the vertex format.

Syntax:

vertex_format_add_custom(type, usage);


ArgumentDescription
type The data type that this custom vertex data will hold (see the type constants listed below).
usage The use that the data will get(see the usage constants listed below).


Returns: N/A


Description

Tell GameMaker: Studio to accept a custom value (or values) as part of the new vertex format being created. The available values to use are defined by the data type constant that you choose, listed below:

ConstantDescription
vertex_type_float1A single floating point value
vertex_type_float2Two floating point values
vertex_type_float3Three floating point values
vertex_type_float4Four floating point values
vertex_type_colourFour component values (r, g, b, a)
vertex_type_ubyte4Four component unsigned byte values (from 0 to 255)

The use that these constants will be put too also needs to be defined so that the values can be "bound" properly within the shader being created. This is necessary due to the fact that DX and OpenGL have different requirements so if you don't bind them properly, they won't come through right in the shader. The available usage constants that you can choose are listed below and those you use will depend on the specifics of the shader being created:

ConstantDescription
vertex_usage_positionposition values (x, y, z)
vertex_usage_colourcolour values (r, g, b, a)
vertex_usage_normalvertex normal values (nx, ny, nz)
vertex_usage_textcoordUV coordinates (u, v)
vertex_usage_blendweightthe blendweight of the input matrix (for skeletal animation, for example)
vertex_usage_blendindicesthe indices of the matrices to use (for skeletal animation, for example)
vertex_usage_depthvertex depth buffer value
vertex_usage_tangenttangent values
vertex_usage_binormalbinormal values
vertex_usage_fogfog values
vertex_usage_samplesampler index


Example:

vertex_format_begin();
vertex_format_add_textcoord();
vertex_format_add_custom(vertex_type_float3, vertex_usage_position);
my_format = vertex_format_end();

The above code will create a new vertex format with just texture and 3 custom floating point values for position. It is then stores the format id in the variable "my_format".


Back: Vertex Formats
Next: vertex_format_end

© Copyright YoYo Games Ltd. 2018 All Rights Reserved