2014-09-07 2 views
3

У меня есть проект C#, в котором используется SharpDX 2.5.0, и все работает нормально. Я перешел на новую стабильную версию SharpDX, 2.6.2. Мой проект компилируется отлично, но не выполняется во время выполнения, потому что он не может скомпилировать шейдеры. Я не буду использовать эту строку кода:Невозможно скомпилировать hlsl-шейдеры после обновления до Sharpdx 2.6.2

var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "Base_VS", "vs_4_0"); 

Независимо от того, что фактическое содержание файла шейдерного, он не со следующей ошибкой:

path/to/my/shader.hlsl(1,1): error X3000: Illegal character in shader file 

Я думал, что это было связано с UTF -8, но попытка различной кодировки не решила проблему. Кто-нибудь еще сталкивался с подобной проблемой или имеет предложение?

ответ

3

Я, наконец, нашел решение. В случае, если кто-то сталкивается с той же ситуации, вот обходной путь я нашел:

  • Это действительно проблема кодирования. По какой-то причине формат моих шейдерных файлов больше несовместим, и по какой-то причине простое изменение кодировки в Visual studio не решило проблему. Кажется, что в начале файла появился невидимый персонаж (возможно, спецификация?).
  • Работа над созданием файла с нуля (из блокнота).
4

Это старый, но я все равно отвечаю: Кодировка новых текстовых текстовых текстовых файлов по умолчанию - UTF-8 с спецификацией. Это означает, что первые 3 символа файла являются ï »¿
Эти символы являются„незаконными“

Источник:
http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8