惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
A
Arctic Wolf
S
Security Affairs
O
OpenAI News
SecWiki News
SecWiki News
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
T
Threat Research - Cisco Blogs
Hacker News: Ask HN
Hacker News: Ask HN
N
News | PayPal Newsroom
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
The Hacker News
The Hacker News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
T
Tenable Blog
T
The Exploit Database - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Spread Privacy
Spread Privacy
人人都是产品经理
人人都是产品经理
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V2EX - 技术
V2EX - 技术
L
LINUX DO - 最新话题
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
T
The Blog of Author Tim Ferriss
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
The Cloudflare Blog
N
News and Events Feed by Topic
量子位
Google DeepMind News
Google DeepMind News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Attack and Defense Labs
Attack and Defense Labs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hacker News - Newest:
Hacker News - Newest: "LLM"
Apple Machine Learning Research
Apple Machine Learning Research
The Register - Security
The Register - Security
Microsoft Security Blog
Microsoft Security Blog
Know Your Adversary
Know Your Adversary
Webroot Blog
Webroot Blog

UNITY

刚才清理废纸篓的时候发现一封没看的 unity 邮件, 这是以后不让用 Unity 开发国外版本的游戏了? 逼着使用腾讯的 Tuanjie 引擎吗? Tuanjie 打出来的包好像会强加水印啥的. - V2EX 中国区用户的海外 Unity 资源商店的访问权限将于 2026 年 3 月 31 日终止 有哪个头显是能实时连接 Unity 编辑场景的? - V2EX unity 国区账号如何下载 unity 商店资源? - V2EX unity 可以做三维建模 vr 效果吗 - V2EX gaia pro 问题请教 - V2EX Cursor 等一众 AI 编程工具目前和 Unity 游戏开发的结合怎么样了? Unity 游戏开发想用 AI 提高生产率目前都有什么比较好的方案或者工具? - V2EX Unity 股价只剩三年前的 10%了(200USD=>20USD)会不会被哪个大公司收购? - V2EX Unity 6 现在国区不让下载了 - V2EX Unity 答疑,任何问题都可以 - V2EX 当我用 Unity 开发游戏的时候有什么场景下要使用“栈”操作? - V2EX 为什么 Unity 自带的资源加密功能是中国版特供的? - V2EX Unity 远程开发岗位,感兴趣小伙伴看过来 - V2EX unity 2D 像素精灵的生成有推荐的方法吗? - V2EX 远程 Unity 开发工程师(英国) - V2EX 求推荐点 Unity 入门教程 - V2EX 请教个语音听写的问题 - V2EX Unity 打包后出现 "trial version" - V2EX 有没老哥用 m2 开发 unity 的 - V2EX 如何看待 Unity 新出的每次安装收费? - V2EX 为什么 Unity 的定价策略增加了对安装量的限制? - V2EX unity 将于 2024 年 1 月调整收费模式 - V2EX [Unity 离奇 Bug] 游戏在编辑器内运行 ok,构建出的 exe 却不能在本机正常运行 - V2EX 3 维空间中,求过原点的直线的方向向量? - V2EX 求推荐资源 - 俯瞰视角场景设计相关 - V2EX 震惊,有个框架竟然能快速让 Unity 新手制作可热更游戏!竟然可以让老项目快速对接具备热更性质! - V2EX 大佬们 学习 Unity 遇到的两个问题求助 - V2EX 有人对 unity 的 photon 组件熟悉的嘛,想有偿咨询几个问题 - V2EX 用 Unity3d 来做跨平台开发是不是很好? - V2EX 对于 U3D Stopwatch ElapsedTick 的疑惑 - V2EX 有偿提供 unity 虚拟面试~ - V2EX 问一下各位大哥关于买网络授课是否有必要的问题 - V2EX 请问通过 unity WebGL 能播放 rtmp,可以实现吗? - V2EX [UnityTips] 一种仿 Minecraft 物品合成的思路 - V2EX ShaderLab 入门实践 - V2EX Unity 热更新 之 如何使用 AST 转换 C# -> Lua - V2EX 按需渲染如何改善移动端性能? - V2EX 怎么通过 Unity 使用 Vulkan API & 移动端 Vulkan GPU 大 PK - V2EX Unity3D 实用技巧 - 快速学会模型合理导入 Unity3D 引擎 - V2EX Unity3D 实用技巧 - 从实践中总结经验(1) - V2EX [HDRP] PBR Lit shader(一.基础用法篇) - V2EX 如何将 Unity 以库形式集成到原生 iOS 和 Android 应用 - V2EX 如何在 Timeline 中创建自定义轨道? - V2EX 写给 Unity 开发者的 iOS 内存调试指南 - V2EX Unity3D 常用插件汇总 - V2EX 在 Unity 实现游戏命令模式 - V2EX Unity ECS(一)了解 ECS 与 DOTS - V2EX 使用 Unity 制作游戏 AI - V2EX 如何实现存储和加载游戏数据 - V2EX
零基础入门 Unity Shader(二) - V2EX
unn · 2020-01-14 · via UNITY

本文转自 Unity Connect 博主 taecg

前言

让我们先抛开什么鬼图形学、鬼数学、乱七八糟的鬼东西统统不管,直接在 Unity 中干上我们的 Shader,一步一步去学习了解并深入征服它! Shader 应该由谁来做? 这是个很有趣的话题,Shader 到底应该由谁来做呢?通常情况下有此技能的人员有: 图形程序员 一小部分程序 一小小部分美术 技术美术

一般的项目团队,如果不是自研引擎的话,很少会配置图形程序员,而且图形程序员这么高大上的人做 Shader 似乎又有种浪费的感觉,所以我们先忽略他。

程序呢,每个团队中总有那么一两个有两把刷子的,但是苦于自身美感问题,最后在不断与美术沟通交流的过程中放弃自我。

美术呢,难得碰到个会做 Shader 的,效果也是华丽丽的,但是你敢用吗? 这时我们的主角,技术美术登场了,及程序与美术于一身的美男子。效果华丽丽的,性能也是妥妥的! 所以说如果你是技术美术的话,一定要让美术对效果满意,程序对性能放心,在这其中找到效果与性能的最佳平衡点,这才是我们制作 Shader 的优势,而不仅仅是我们能做!

Shader 模版 现在让我们开始创建我们的第一个 Shader,打开 Unity,然后在 Project 面板点击右键,依次从中选择 Create/Shader/...

然后你会发现几个选项: Standard Surface Shader 标准表面着色器,是一种基于物理的着色系统(使用了 Physically Based Rendering (简称 PBR )技术,即基于物理的渲染技术),以模拟现实真实的方式来模拟材质与灯光之间的关系,可以很轻易的表现出各种金属反光效果,同时此种 Shader 的书写逻辑也更符合人类的思维模式。

Unlit Shader Vertex/Fragment Shader,也就是最基本的顶点片断着色器,不受光照影响的 Shader,多用于特效、UI 上的效果制作。

Image Effect Shader 也是顶点片断着色器,只不过是针对后处理而定制的模版,后处理是什么呢? Bloom (也有人叫 Glow/泛光 /辉光等说法)、调色、景深、模糊等,这些基于最终整个屏幕画面而进行再处理的 Shader 就是后处理。

Compute Shader Compute Shader 是运行在图形显卡上的一段程序,独立于常规渲染管线之外的,它可以直接将 GPU 作为并行处理器加以利用,从而使 GPU 不仅具有 3D 渲染能力,还具有其他的运算能力。

Shader Variant Collection Shader 变体收集器,在上面创建的时候,你会发现 Shader Variant Collection 与以上四个是被隔开的,就是因为这个与它们不一样,它不是制作 Shader 的模版,而只是对 Shader 变体进行打包用的容器。 注:以上的 Standard Surface Shader、Unlit Shader、Image Effect Shader 仅仅只是 Unity 为了方便我们书写而内置的几个模版,你完全可以建一个 Unlit Shader,然后将其改成 Surface Shader,同样也可以将一个 Standard Surface Shader 改成顶点片断着色器,所以这一点一定要明白,它们只是内容格式不一样的模版本而已,我们完全可以自由修改成任意我们想要的一种着色器类型,当然我们也可以通过一些手段来定制出我们自己的模版,这在后续章节中我们再进行详细介绍。

所以呢,我们接下来从最简单也是最基础的 Unlit Shader 开始我们的学习。 材质与 Shader 的关系 OK,继续上面,从 Shader 子菜单中选择"Unlit Shader"。创建完成后提示让我们输入新的名称,先不管它,默认即可。

由于在 Unity 中 Shader 就是运行在图形显卡上的一段包含指令的代码,所以我们需要再创建一个材质来关联它,这样才能把材质赋给场景中的物体来实现我们想要的效果。 再创建一个材质( Material 或者经常被叫做材质球),由于材质也是一个资源,所以我们还是在 Project 面板中点击右键,从中选择 Create/Material,如下图所示:

然后现在我们有了一个 Shader 和一个材质球,此时如果选中材质球在 Inspector 面板中就可以看到它的相关参数,比如这个材质所引用的是哪个 Shader,以及具体暴露出来的参数是哪些等等。

我们先重点关注下其中的 Shader 这个参数。 它代表的是当前这个材质球是与哪个 Shader 绑定关联的,我们可以点击它的下拉列表框从中进行选择,前提是我们知道我们想关联的那个 Shader 的名字路径是哪个,这一点我们在后面会具体说明。

现在我们采用拖动的方式进行关联,在 Project 面板下直接拖动 Shader 到材质球上,然后你会发现材质球的 Inspector 面板中的 Shader 参数就已经被指定为刚才那个 Shader 了。

小技巧:在创建材质球的时候,如果我们选中某个 Shader,然后在它上面点击右键来创建材质的话,那么这个材质会自动与此 Shader 进行关联,无需再单独指定。

让我们来总结一下 Shader 与材质的关系:

一个 Shader 可以与无数个材质关联。 一个材质同一时刻只能关联于一个 Shader。(为什么说是同一时刻,因为我们可以通过代码去动态改变材质所关联的 Shader )

材质可以赋与模型,但是 Shader 不行。 材质就像是 Shader 的实例,每个材质都可以参数不一样呈现不同的效果,但是当 Shader 改变时,关联它的所有材质都会相应的改变。

举个例子:比如游戏中的怪物,我们只需做一个 Shader,然后每个怪物给它一个材质球,材质球上赋与不同的贴图与参数来表现不同的怪物。

自学 Shader 步骤建议 给想自学 Shader 的同学先列出个学习步骤,可以按如下的顺序进行循序渐进的学习: Unlit Shader,这是最基本也是最简单的模版,通过学习它了解顶点片断着色器的基本构成,以及对 Shader 有初步的认识。

利用顶点片断着色器做一些简单案例,比如一些游戏内常用的效果,与此同时深入学习 Shader 语法,以及用到的相关数学运算符。

尝试优化你的 Shader,提升美术效果,减少变体数,减少运算量。 读一读渲染管线的书,加深对 Shader 理解的宽度与高度。 开始接触光照模型,了解 Surface Shader。 各种光照算法研究一通。。。。顺便复习下数学。。。 屏幕后处理 Shader Compute Shader 各种实例制作,不断强化美感、图形学以及数学。

原文链接: https://connect.unity.com/p/ling-ji-chu-ru-men-unity-shader-er?app=true 更多干货,戳上方链接下载 Unity 官方 app,在线互动答疑技术社区,学习交友两不误!