我一直在尝试让硬件实例化在XNA 4中工作。我一直在遵循微软的一个示例代码,直到最后几行代码才一切正常。
我遇到的问题是effect.Techniques只有基本的效果。当我编译和运行他们的源代码时,它有硬件实例化选项,只是不在我复制的内容中。这可能与他们的项目拥有的InstancedModelPipeline有关,但我找不到它是如何与项目联系在一起的。他们的InstancedModelPipeline会拉入一个包含HardwareInstancing的InstancedModel.fx。
Effect effect = meshPart.Effect;
effect.CurrentTechnique = effect.Techniques["HardwareInstancing"];
effect.Parameters["World"].SetValue(modelBones[mesh.ParentBone.Index]);
effect.Parameters["View"].SetValue(Camera.ViewMatrix);
effect.Parameters["Projection"].SetValue(projection);SampleCode Site
发布于 2012-08-13 16:28:22
InstancedModelPipeline是一个内容管道扩展。要使用它,您必须右键单击您的内容项目,单击“添加引用”,然后选择InstancedModelPipeline项目。

(注意:不要引用游戏项目中的内容管道扩展。)
InstancedModelPipeline项目为模型提供了一个新的内容处理器,称为InstancedModelProcessor。您必须在内容项目中选择您的模型,转到Properties面板(F4),并将您的模型设置为使用此处理器。

默认的XNA模型处理器将在模型( ModelMeshPart.Effect属性)中构建BasicEffect。此内容处理器将内置InstancedModel.fx,其中包含您正在寻找的HardwareInstancing效果。
https://stackoverflow.com/questions/11927463
复制相似问题