【问题标题】:SharpDX instancing with D3D11SharpDX 使用 D3D11 实例化
【发布时间】:2014-06-13 05:44:15
【问题描述】:

谁能提供一个使用 SharpDX 和 D3D11 的工作代码,实例化并使用 SharpDX 的内容管道?我有几个问题。我开始明白,应该使用 SharpDX.Direct3D11.InputLayout 来描述顶点着色器的输入。那里我已经有问题了。我使用 SharpDX 的内容管道,所以着色器是在编译时而不是在运行时编译的。那么我在哪里得到着色器的字节码呢?它不应该那么难,但它似乎无法从效果对象中访问。我的另一个问题是,如何在当前 DrawIndexedInstanced 调用之前设置创建的 SharpDX.Direct3D11.InputLayout?

【问题讨论】:

  • 很高兴知道我应该如何创建实例缓冲区。
  • 就像穆阿德说的。您可以为实例使用常量/结构化缓冲区,而不是选择 2 个顶点缓冲区。这种方式对 InputLayout 没有影响

标签: sharpdx


【解决方案1】:

已经解决了,有一些不错的陷阱,应该避免:

  • 要获取着色器的字节码,必须重新编译着色器。
  • 要设置输入布局,应该将设备转换为 SharpDX.Direct3D11.Device 并使用它的直接上下文。请注意,现有的顶点缓冲区布局可用于创建输入布局的开头。
  • 还必须在直接上下文本身上调用 DrawIndexedInstanced 方法。在 SharpDX.Toolkit.Graphics.GraphicsDevice 上调用此方法将导致错误的参数异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2014-02-08
    • 2017-12-29
    相关资源
    最近更新 更多