当前位置: 首页 > news >正文

在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 SourceAlpha 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

http://www.dtcms.com/a/394841.html

相关文章:

  • OneSignal PHP SDK v2 官方资源
  • 如何透过批次模拟加速3D模型建立
  • PDF清晰度提升工具,让模糊文档变清晰
  • 设计模式六大原则
  • QML 多路 RTSP 视频流实时预览实现
  • glTF/glb:现在和未来
  • 构建以ERP为核心的智能制造运营中心(MOM)
  • Java:toArray(new String[0])
  • Trilium Notes+cpolar:打造随身个人知识库的智能中枢
  • 无人机图传技术详解:为何云望图传信号传输能力远超WiFi?,无人机wifi图传是什么意思
  • 水题记录2.1
  • 企业智能工作流的无界解决方案由CherryStudio+cpolar解决
  • Nginx高级用法案例汇总
  • Python开发:使用FastAPI创建后端服务
  • Nginx配置中location和proxy_pass指令尾部是否带斜杠的区别
  • Nginx核心配置
  • 医院不良事件管理系统:提升医疗安全的智能化解决方案
  • 【$.post回调函数未被执行的原因分析】,第048篇
  • 远程连接服务器的远程重启办法shutdown -r -t 0
  • 【js】关于JWT的前端存储新思路
  • Unity官方Dots范例工程学习——Jobs101
  • 如何在SQLite中实现事务处理?
  • 广东省省考备考(第一百零四天9.22)——判断推理(强化训练)
  • k8s 常用命令
  • windows远程桌面服务安全加固的配置指南
  • datawhale玩转通义四大新模型 202509 第4次作业
  • MySQL 表约束实战指南:从概念到落地,守护数据完整性
  • 64位整型变量错误使用int类型对应的格式化符%d导致软件崩溃问题的排查与分析(借助deepseek辅助分析)
  • 【Linux操作系统】简学深悟启示录:Ext系列文件系统
  • 第8节-PostgreSQL数据类型-UUID