vertex_format_add_custom(type, usage);
Argument | Description |
---|---|
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
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:
Constant | Description |
---|---|
vertex_type_float1 | A single floating point value |
vertex_type_float2 | Two floating point values |
vertex_type_float3 | Three floating point values |
vertex_type_float4 | Four floating point values |
vertex_type_colour | Four component values (r, g, b, a) |
vertex_type_ubyte4 | Four 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:
Constant | Description |
---|---|
vertex_usage_position | position values (x, y, z) |
vertex_usage_colour | colour values (r, g, b, a) |
vertex_usage_normal | vertex normal values (nx, ny, nz) |
vertex_usage_textcoord | UV coordinates (u, v) |
vertex_usage_blendweight | the blendweight of the input matrix (for skeletal animation, for example) |
vertex_usage_blendindices | the indices of the matrices to use (for skeletal animation, for example) |
vertex_usage_depth | vertex depth buffer value |
vertex_usage_tangent | tangent values |
vertex_usage_binormal | binormal values |
vertex_usage_fog | fog values |
vertex_usage_sample | sampler index |
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".