public static VertexInputDataEncoded EncodeData(VertexInputData data)
		{
			var obj = new VertexInputDataEncoded();

			obj.normal = data.position1;
			obj.vertex = data.position2;
			obj.tangent = new Vector4(data.position3.x, data.position3.y, data.position3.z, 0);
			obj.texcoord0 = new Vector4(data.uv.x, data.uv.y, 0,0);
			obj.texcoord1 = new Vector4(data.vertexId, data.strokeWidth1, data.strokeWidth2, data.strokeWidth3);
			obj.color = data.color2;

			return obj;
		}
		public static VertexInputData DecodeData(VertexInputDataEncoded encodedData)
		{
			var obj = new VertexInputData();

			obj.position1 = encodedData.normal;
			obj.position2 = encodedData.vertex;
			obj.position3 = (Vector3) encodedData.tangent;
			obj.strokeWidth1 = encodedData.texcoord1.y;
			obj.strokeWidth2 = encodedData.texcoord1.z;
			obj.strokeWidth3 = encodedData.texcoord1.w;
			obj.uv = new Vector2(encodedData.texcoord0.x, encodedData.texcoord0.y);
			obj.color2 = encodedData.color;
			obj.vertexId = Mathf.RoundToInt(encodedData.texcoord1.x);

			return obj;
		}