【问题标题】:MonoGame 3.6: Direct3D Shader/Effect works on Windows 7 but not Windows 10MonoGame 3.6:Direct3D 着色器/效果适用于 Windows 7 但不适用于 Windows 10
【发布时间】:2018-02-02 23:22:44
【问题描述】:

我有一个使用 MonoGame 3.6 Direct3D 着色器/效果的小型测试程序,它显示了一个地球模型,其中大陆用昼/夜纹理着色(城市灯光显示在黑暗的一面)。

https://github.com/davidsummers/mgtest

它在 Windows 7 上运行良好,但在 Windows 10 Pro 上却不行。在 Windows 10 Pro 上,它不会给出任何错误,只是显示一个黑球。

上周我一直在尝试找出可能导致它在 Windows 7 上正常工作但在 Windows 10 Pro 上无法正常工作的原因。

我还在 https://github.com/MonoGame/MonoGame/issues/6171 打开了一个错误报告,到目前为止只有 1 个回复,有人验证它也只是为他们显示一个黑球。

我的理解是,应该在 Windows 7 和 Windows 10 Direct3D 之间没有会阻止 Direct3D 工作的差异。是这种情况还是我应该做些什么来更新代码以使其在 Windows 7 和 Windows 10 上都可以运行?

我在着色器/效果方面相当新,所以可能有一些对其他人来说很明显但我还不了解的东西。

我在带有 Nvidia Quadro K3000M 卡和 Windows 10 Pro 的 Dell Precision M6700 上运行此程序,该卡以前运行 Windows 7 Pro 并毫无问题地显示地球/大陆/夜间着色器/效果。

该程序在另一个装有 Windows 7 Pro 的机器上仍然可以正常运行。

关于这个问题的主要问题是:在 Windows 7 上与 Direct3D 9 一起工作的 MonoGame 3.6 自定义效果/着色器是否应该在 Windows 10 上工作而不做任何更改?

如果没有,需要进行哪些更改才能使其正常工作?

如果它应该工作,为什么不工作?

如果需要更多信息,请告诉我。

【问题讨论】:

    标签: windows shader monogame direct3d effect


    【解决方案1】:

    我已经解决了这个问题。 GitHub 上的一位好心用户向我展示了我有两个本应相同但不一样的数据结构。

    我删除了其中一个并将其中一个着色器子例程更改为使用另一个数据结构。

    我还发现着色器中的一些(附加)光照变量没有被初始化。

    一旦我做了这两件事,那么程序似乎在所有平台上都能正常工作。

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多