Class VertexHelper
An helper class for manipulating vertex buffers on CPU (Generate new vertex attributes...etc.)
public static class VertexHelper
- Inheritance
-
objectVertexHelper
Methods
GenerateMultiTextureCoordinates(VertexDeclaration, byte[], int, int)
Generates multi texture coordinates for an existing vertex buffer. See remarks.
public static VertexHelper.VertexTransformResult GenerateMultiTextureCoordinates(VertexDeclaration vertexDeclaration, byte[] vertexBufferData, int vertexStride = 0, int maxTexcoord = 9)
Parameters
vertexDeclarationVertexDeclarationThe vertex declaration.
vertexBufferDatabyte[]The vertex buffer data.
vertexStrideintThe vertex stride.
maxTexcoordintThe maximum texcoord.
Returns
- VertexHelper.VertexTransformResult
A new vertex buffer with additional texture coordinates.
Remarks
The original vertex buffer must contain at least a TEXCOORD[0-9] attribute in order for this method to work. This method will copy the value of the first existing TEXCOORD found in the vertex buffer to the newly created TEXCOORDS.
Exceptions
- ArgumentNullException
vertexDeclaration or vertexBufferData
GenerateMultiTextureCoordinates(VertexDeclaration, nint, int, int, int, int)
Generates multi texture coordinates for an existing vertex buffer. See remarks.
public static VertexHelper.VertexTransformResult GenerateMultiTextureCoordinates(VertexDeclaration vertexDeclaration, nint vertexBufferData, int vertexCount, int vertexOffset, int vertexStride, int maxTexcoord = 9)
Parameters
vertexDeclarationVertexDeclarationThe vertex declaration.
vertexBufferDatanintThe vertex buffer data.
vertexCountintThe vertex count.
vertexOffsetintThe vertex offset.
vertexStrideintThe vertex stride.
maxTexcoordintThe maximum texcoord.
Returns
- VertexHelper.VertexTransformResult
A new vertex buffer with additional texture coordinates.
Remarks
The original vertex buffer must contain at least a TEXCOORD[0-9] attribute in order for this method to work. This method will copy the value of the first existing TEXCOORD found in the vertex buffer to the newly created TEXCOORDS.
Exceptions
- ArgumentNullException
vertexDeclaration or vertexBufferData
- ArgumentOutOfRangeException
vertexCount;vertexCount must be > 0 or vertexStride;vertexStride must be >= 0 or maxTexcoord;maxTexcoord must be >= 0
- InvalidOperationException
The vertex buffer must contain at least the TEXCOORD
GenerateMultiTextureCoordinates(VertexTransformResult, int, int)
Generates multi texture coordinates for an existing vertex buffer. See remarks.
public static VertexHelper.VertexTransformResult GenerateMultiTextureCoordinates(VertexHelper.VertexTransformResult transform, int vertexStride = 0, int maxTexcoord = 9)
Parameters
transformVertexHelper.VertexTransformResultThe result of a previous transform.
vertexStrideintThe vertex stride.
maxTexcoordintThe maximum texcoord.
Returns
- VertexHelper.VertexTransformResult
A new vertex buffer with additional texture coordinates.
Remarks
The original vertex buffer must contain at least a TEXCOORD[0-9] attribute in order for this method to work. This method will copy the value of the first existing TEXCOORD found in the vertex buffer to the newly created TEXCOORDS.
GenerateMultiTextureCoordinates<T>(VertexDeclaration, T[], int)
Generates multi texture coordinates for an existing vertex buffer. See remarks.
public static VertexHelper.VertexTransformResult GenerateMultiTextureCoordinates<T>(VertexDeclaration vertexDeclaration, T[] vertexBufferData, int maxTexcoord = 9) where T : unmanaged
Parameters
vertexDeclarationVertexDeclarationThe vertex declaration.
vertexBufferDataT[]The vertex buffer data.
maxTexcoordintThe maximum texcoord.
Returns
- VertexHelper.VertexTransformResult
A new vertex buffer with additional texture coordinates.
Type Parameters
T
Remarks
The original vertex buffer must contain at least a TEXCOORD[0-9] attribute in order for this method to work. This method will copy the value of the first existing TEXCOORD found in the vertex buffer to the newly created TEXCOORDS.
Exceptions
- ArgumentNullException
vertexDeclaration or vertexBufferData
GenerateTangentBinormal(VertexDeclaration, nint, int, int, int, nint, bool, int)
Generate Tangent BiNormal from an existing vertex/index buffer.
public static VertexHelper.VertexTransformResult GenerateTangentBinormal(VertexDeclaration vertexDeclaration, nint vertexBufferData, int vertexCount, int vertexOffset, int vertexStride, nint indexData, bool is32BitIndex, int indexCountArg)
Parameters
vertexDeclarationVertexDeclarationThe vertex declaration of the vertex buffer passed by parameters.
vertexBufferDatanintThe vertex buffer.
vertexCountintThe vertex count.
vertexOffsetintThe vertex offset.
vertexStrideintThe vertex stride. If 0, It takes the stride from the vertex declaration
indexDatanintThe index data.
is32BitIndexboolif set to
true[is32 bit index].indexCountArgintThe index count argument.
Returns
- VertexHelper.VertexTransformResult
A new vertex buffer with its new layout.
GenerateTangentBinormal<T>(VertexDeclaration, T[], int[])
Generates the tangent binormal for an existing vertex buffer.
public static VertexHelper.VertexTransformResult GenerateTangentBinormal<T>(VertexDeclaration vertexDeclaration, T[] vertexBufferData, int[] indexBuffer) where T : unmanaged
Parameters
vertexDeclarationVertexDeclarationThe vertex declaration.
vertexBufferDataT[]The vertex buffer data.
indexBufferint[]The index buffer.
Returns
- VertexHelper.VertexTransformResult
A new vertex buffer with its new layout.
Type Parameters
T