在Hololens上使用像素着色器内部的纹理的正确技巧是什么? (Windows 10)

时间:2016-10-26 16:06:54

标签: c# directx hololens

我从默认的Hololens模板(https://developer.microsoft.com/en-us/windows/holographic/creating_a_holographic_directx_project)开始,我想修改多维数据集,这样它的面上没有内插的彩虹,而是有纹理。

我是否提到我不了解C#或DirectX(虽然我确实了解Java,Python,WebGL和Java的OpenGL)?所以我对Windows API的过时版本似乎有多少源代码示例感到困惑。

无论如何,我能够使用SharpDX 3.0.2 D3D11 - How to load texture from file and make it to work in shader?中的代码创建Texture2D对象。 (虽然我可以肯定的是它没有崩溃或使彩虹立方体失效)。

我还在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)

是否有示例代码显示如何使用HLSL着色器在C#应用程序中使用纹理,并且实际上使用Hololens支持的简化API?

不要告诉我使用Unity。我们已经将Unity和Unreal踢到了路边,因为他们还没有我们需要的功能。

1 个答案:

答案 0 :(得分:1)

显然

new ShaderResoruceView(device,texture)

构造函数确实存在,而且我在VisualStudio中输入它的方式错误并触发了错误,我误解了提到IntPtr构造函数的弹出窗口是唯一可用的而不是几个中的一个选项。