2016-10-26 13 views
1

Я начинаю с шаблона Hololens по умолчанию (https://developer.microsoft.com/en-us/windows/holographic/creating_a_holographic_directx_project), и я хотел бы изменить куб так, чтобы вместо того, чтобы иметь интерполированную радугу на его лицах, он имеет текстуры.Какова правильная техника для использования текстуры внутри пиксельного шейдера на Голонах? (windows 10)

Я упоминал, что я не знаю C# или DirectX (хотя я знаю Java, Python, WebGL и java OpenGL)? Поэтому я довольно смущен тем, как много исходных примеров выглядят для устаревших версий API окон.

В любом случае, мне удалось создать объект Texture2D, используя код от SharpDX 3.0.2 D3D11 - How to load texture from file and make it to work in shader?. (хотя все, что я могу быть уверен в том, что это не сбой или не сбивает радужный куб).

Я также нашел пример кода на https://gist.github.com/axefrog/b51b4e149c329608eae6, что приводит меня к мысли, мне нужно

pixelShader.SetShaderResource(0, textureResourceView) 
pixelShader.SetSampler(0, samplerState) 

К сожалению конструктор

textureResourceView = new ShaderResourceView(device, texture); 

не существует в библиотеках, доступных для меня (SharpDX.Direct3D11 ?), и все VisualStudio предлагает мне

ShaderResourceView(IntPtr nativePtr) 

Есть ли пример кода, который показывает, как использовать текстуру в приложении C# с использованием шейдеров HLSL и фактически работает с использованием сокращенных API, поддерживаемых Hololens?

И не говорите мне использовать Единство. Мы уже пнули Unity и Unreal до тротуара, потому что у них еще нет функций, которые нам нужны.

ответ

1

Очевидно конструктор

new ShaderResoruceView(device,texture) 

действительно существует, и что-то о том, как я напечатал его в VisualStudio был неправ и вызвал ошибку, и я неправильно истолковал всплывающее окно, которое упоминается в IntPtr конструктор как только один доступный вместо того, чтобы быть одним из нескольких вариантов.