我目前正在尝试制作自定义顶点声明。
其中位置、颜色和整数被传递到效果中。我遇到了问题,无法确定传递整数时应使用哪个 VertexElementUsage 枚举,并且在声明 VertexElements 时如何确定偏移量?
public readonly static VertexDeclaration VertexDeclaration = new VertexDeclaration
{
new VertexElement(0, VertexElementFormat.Vector3, VertexElementUsage.Position, 0),
new VertexElement(12, VertexElementFormat.Color, VertexElementUsage.Color, 0),
new VertexElement(?, VertexElementFormat.Byte4, ?, 0)
};
(请注意最后一个VertexElement中的?)
sizeof()
与 Vector3 完美地配合使用,正如 OP 接受答案所示(它有效)。其次,请注意此线程已有两个月之久。Marshal.SizeOf()
是一个不错的 .NET 解决方案,但速度较慢。如果sizeof()
最终出现问题,或者 OP 表示sizeof()
存在问题,我会建议使用Marshal.SizeOf()
。在大多数情况下,sizeof()
的使用是可以接受的,速度更快,而且经过时间的考验。sizeof()
在 C 中就已经存在,并且仍然以类似的方式工作。它只是计算每个 Vector3 组件的大小,以获取该对象的大小。 - user1241335