Это в вычислительном шейдере, но я думаю, что это общая вещь hlsl. Вот отрывок:Texture2D как параметр функции
Texture2D<float> Ground : register(t1);
Texture2D<float> Water : register(t2);
SamplerState LinearSampler
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
};
float4 Get(Texture2D source, float x, float y)
{
return source.SampleLevel(LinearSampler, float2(x * dimension.z, y * dimension.w), 0);
}
[numthreads(32, 32, 1)]
void main(uint3 threadID : SV_DispatchThreadID, uint3 groupThreadID : SV_GroupThreadID, uint3 blockID : SV_GroupID)
{
float4 g = GetGround(Ground, 0, 0);
Output[threadID.xy] = g.z;
}
Любые вызовы на Получ дать мне:
ошибка X3017: «Получить»: не может неявно преобразовать из «сопзЬ Texture2D» к «Texture2D»
Просто быстро догадались, что вы попробовали 'float4 Get (const Texture2D source, float x, float y)'? – Gnietschow
Как вы называете 'Get()'? С какими типами параметров? – Drop
Где вы назвали эту функцию? без вызывающего кода трудно определить основную причину. – zdd