在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.创建正确的材质

  1. 在 Project 窗口中右键点击 -> ​Create -> Material ,命名为 HaloMaterial

  2. 选中新创建的材质,在 Inspector 中为其选择正确的Shader:

    • 找到 ​Shader ​ 下拉菜单,选择 ​**Universal Render Pipeline/Unlit**。

      • *为什么用Unlit?*因为光晕是自发光效果,不应被场景中的灯光照亮。
  3. 配置材质参数:

    • 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

相关推荐
王维志7 小时前
在Unity中使用SQLite(Sqlite-net-pcl)
unity·sqlite·c#·.net
我命由我123457 小时前
Photoshop - Photoshop 分享作品和设计
学习·ui·adobe·媒体·设计·photoshop·美工
SmalBox1 天前
【光照】[高光反射specular]以UnityURP为例
unity·渲染
SmalBox5 天前
【光照】[漫反射]UnityURP兰伯特能量守恒吗?
unity·渲染
SmalBox6 天前
【光照】[漫反射diffuse]以UnityURP为例
unity·渲染
SmalBox7 天前
【光照】[自发光Emission]以UnityURP为例
unity·渲染
SmalBox8 天前
【光照】Unity中的[经验模型]
unity·渲染
萘柰奈8 天前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
Yasin Chen8 天前
Unity UI坐标说明
ui·unity