在unity urp项目中 通过图片创建材质(透明光晕)
1.导入并且设置纹理
Texture Type: Defalut
sRGB (Color Texture): ✔️ 勾选(因为这是颜色纹理,需要伽马校正)。
Alpha Source:
Input Texture Alpha
(确保它使用您图片自带的Alpha通道)。Alpha Is Transparency: ✔️ 勾选(这是实现透明的关键!)。
Wrap Mode:
Clamp
(防止光晕边缘重复出现)。Filter Mode:
Bilinear
(使光晕平滑)。
2.创建正确的材质
在 Project 窗口中右键点击 -> Create -> Material,命名为
HaloMaterial
。选中新创建的材质,在 Inspector 中为其选择正确的Shader:
找到 Shader 下拉菜单,选择
Universal Render Pipeline/Unlit
。为什么用Unlit?因为光晕是自发光效果,不应被场景中的灯光照亮。
配置材质参数:
Surface Type: 从
Opaque
改为 Transparent
。Blending Mode: 保持
Alpha
即可。将您在第一步中设置好的“光晕”纹理从Project窗口拖拽到
Base Map
的插槽中。您可以调整
Tint
的颜色来改变光晕的色彩(例如,改成橙色或蓝色)
3.将材质应用到3d物体上。结束。
解释:
一.对于纹理
1. Texture Type
纹理类型: Default
为什么这样设? 您要将此纹理用于3D物体的材质,
Default
类型是最通用和正确的选择。Sprite (2D and UI)
是专门为2D精灵系统设计的,用于3D材质会导致非预期行为。其他选项何时用?
Normal map
:当图片是法线贴图时使用。Sprite (2D and UI)
:专门用于2D游戏或UI元素的精灵。Cursor
:用于自定义鼠标光标。Cookie
:用于灯光的光罩纹理。Lightmap
:用于光照贴图。
2. sRGB (Color Texture)
为什么勾选? 您的“光晕”纹理是一张颜色图,不是用于存储数据(如金属度、光滑度)的遮罩图。勾选此选项,Unity 在采样纹理时会进行伽马校正,确保颜色在线性空间下正确显示,避免颜色发灰或不准确。对于几乎所有颜色纹理,都应勾选。
何时不勾选? 当纹理是非颜色信息时,例如:法线贴图、金属度贴图、光滑度贴图、遮罩贴图等。这些纹理存储的是数据,而不是最终颜色。
3. Alpha Source
& Alpha Is Transparency
Alpha Source: Input Texture Alpha
:这告诉 Unity 使用您图片自带的 Alpha 通道(透明信息)。这是正确的。
Alpha Is Transparency
:这是实现透明的关键! 勾选后,Unity 会在处理纹理时考虑其 Alpha 通道,并在最终渲染时进行混合计算。对于您的光晕这种需要边缘柔和的透明效果,必须勾选。
4. Generate Mip Maps
(在 Advanced 下拉菜单下)
是什么? 生成一系列逐渐缩小的纹理副本。当物体离相机很远时,GPU 会自动使用更小的副本来进行采样,这样可以减少闪烁(摩尔纹)并提升性能。
为什么勾选? 您的光晕物体可能会离相机变远(比如飞机飞走),开启 Mipmaps 可以保证它在远处不会出现采样瑕疵。
何时关闭? 主要用于GUI、UI元素或永远贴近相机的粒子特效,因为这些物体不需要因为距离而切换纹理精度。
5. Wrap Mode
环绕模式: Clamp
为什么选
Clamp
? 您的光晕纹理是一个自成一体的图案。当UV坐标超出0-1的范围时,Clamp
模式会拉伸纹理边缘的像素。这可以防止光晕在边缘处重复贴图(Repeat
模式)而产生不自然的接缝。对于这类效果纹理,Clamp
是最佳选择。
Repeat
何时用? 用于需要无缝平铺的纹理,如地板、墙壁、布料等。
二、对于材质
1.shader选择Unlit