gpt4 book ai didi

xna - 在 HLSL 中更改纹理

转载 作者:行者123 更新时间:2023-12-02 05:15:55 25 4
gpt4 key购买 nike

float4x4 WVP;
texture cubeTexture;

sampler TextureSampler = sampler_state
{
texture = <cubeTexture>;
MipFilter = Point;
MagFilter = Point;
MinFilter = Point;
AddressU = Wrap;
AddressV = Wrap;
MaxAnisotropy = 16;
};

所以如果我没记错的话,这会告诉采样器状态我正在使用什么纹理。我为许多 Sprite 使用一个效果文件,因此这允许我使用一个纹理(图集)。我可以将我所有的纹理图集组合成一个祖父图集,但我担心会出现并发症。

有没有办法通过参数告诉像素着色器使用某个纹理?我是 HLSL 的新手,它让我很困惑。

最佳答案

如果你给你的着色器一个语义来引用一个寄存器,就像这样

// HLSL
sampler TextureSampler : register(s1);

然后您可以使用游戏代码中的 GraphicsDevice.Textures 属性在代码中分配纹理

// C#
Texture2D texture2D = Content.Load<Texture2D>("contentfile");
graphicsDevice.Textures[1] = texture2D;

我使用寄存器 1 而不是寄存器 0,因为 Spritebatch.Draw() 中的纹理参数使用寄存器 0。如果您不使用 spritebatching,请随意使用寄存器 0;

关于xna - 在 HLSL 中更改纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14637608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com