2

我是图形编程的初学者。我遇到了一个案例,其中“ResourceView”是用纹理创建的,然后这个资源视图被设置为 VS Resource。总结一下:

CreateTexture2D( D3D10_TEXTURE2D_DESC{ 640, 512, .... **ID3D10Texture2D_0c2c0f30** )
CreateShaderResourceView( **ID3D10Texture2D_0c2c0f30**, ..., **ID3D10ShaderResourceView_01742c80** )
VSSetShaderResources( 0, 1, [**0x01742c80**])

我们何时以及在什么情况下在顶点着色器中使用纹理??任何人都可以帮忙吗?

谢谢。

4

1 回答 1

3

这完全取决于您要达到的效果。

如果要单独为顶点着色,通常会使用顶点颜色组件。但是没有什么能阻止你从纹理中采样颜色。(除了它可能更慢。)

另外,不要让这个名字欺骗你。纹理不仅仅可以用于着色。它们基本上是预先计算的函数。例如,您可以使用 aTextue1D提交波函数来为衣服或摇曳的草/树叶设置动画。由于它是一种纹理,因此您可以为绘制的每个对象使用不同的波浪,而无需切换着色器。

Direct3D 开发人员只想为您提供最大的灵活性。这包括在所有着色器阶段使用纹理资源。

于 2013-04-10T08:49:46.903 回答