Скажем, у меня есть следующие:Могу ли я шейдеру связывать одну и ту же функцию HLSL дважды с различными привязками ресурсов?
Texture2D texture : register(t0);
SamplerState sampler : register(s0);
export float4 Sample(float2 uv) { return texture.Sample(sampler, uv); }
export float4 Multiply(float4 lhs, float4 rhs) { return lhs * rhs; }
Могу ли я использовать такую библиотеку шейдеров и шейдерного связывания для реализации Multiply(Sample_0(uv), Sample_1(uv))
, где Sample_n
является экземпляром метода Sample
переназначен использовать текстуру и пробоотборник регистр n
(так каждый вызов образцы собственной текстуры)?
Вопрос заключается в том, что API предоставляет ресурс переназначение на ID3D11ModuleInstance
, но функция ID3D11FunctionLinkingGraph::CallFunction
принимает ID3D11Module
в качестве параметра, так что я не вижу, как две различные вызовы могут быть связаны с двумя различными экземплярами модулей одного и того же модуля, но с различными перенаправлениями.
Отлично, это имеет большой смысл, спасибо! – Trillian