Shader学习资料

1.learnopengl中文教程

opengl和d3d基本是相似的,选一个学习即可。
这个过程的重要是要**各种缓冲类型、各种贴图、冯氏光照模型、光源类型,几种坐标空间变换过程、几种片段测试原理、裁剪、剔除、混合和阴影原理,**后面高级应用也很有用处最好是理解一下,理解不了的地方不要死钻,之后可以再慢慢补回来。
这之中可能需要借助其它的知识来源来帮助理解,推荐一些常用的链接,按使用频繁度排序,google就不说了必备的。学完之后才能开始下一步学习。

  1. 维基百科OpenGL Wiki
    两个权威wiki,搜索概念用的,质量有保证。
  2. OpenGL函数API
    官方手册,用来查看函数用途及原理。
  3. songho的opengl系列教程
    这个教程的坐标空间转换章节和FBO章节写得非常详细。
  4. 微软的开发人员技术文章分享
    关于阴影的这一篇文章对优化原理写的很到位。
  5. glm源代码
    查看矩阵源码,用来辅助理解变换的原理。
  6. understanding-the-view-matrix
    关于view matrix的所有细节都有讲到。
  7. glfw官方函数手册
  8. Anton的opengl教程

2.《unityshader入门精要》中文书籍

这本书唯一的问题就在于已经被Unity的脚步甩远了,目前还能用,内置渲染管线淘汰的时候就不好说了。整本书基于内置管线编写,Unity在2019.3发布的通用渲染管线(URP)性能上碾压它太多,可能也就美术写个测试demo会用它了。另一问题是cg语言的淘汰,内置管线库由cg编写,尽管cg与hlsl语法几乎一致,但SRP、URP和HDRP核心库还是用hlsl重写了一遍,等于说需要重新熟悉一遍,不过这个问题倒不大。

知识原理大多在learnopengl中学过的,主要是Unity用shaderlab和cginclude函数封装了跨平台操作和API,所以一方面是要理解ShaderLab、API在Unity中的封装,熟悉cginclude函数库,另一方面是了解书上常见渲染效果的实现,有机会的话最好再看看渲染路径和几种批处理技术,同样的推荐一些Unity资源。

  1. Unity官方手册Unity官方函数API
    官方文档。
  2. UntiyCGInclude函数源码
    这个在Unity安装目录Editor\Data\CGIncludes下。
  3. Cg语言标准库
  4. Unity官方论坛
    这里有不少Unity用户和Unity官方技术人员回答问题。
  5. HLSL语义文档
    cg和hlsl没什么区别,所以资料不用太区分。
  6. Unity官方Github开源项目Unity官方Github(Japan)开源项目
    后期学习用,这些开源项目都是非常棒的学习资料。
  7. wikibooks
    有许多shader案例。

3.catlike srp系列教程

可编程渲染管线是非常重要的一环知识,在学习URP之前必须先学SRP,共计12篇文章,不少内容和前面重叠,其实看完前几篇文章掌握概念和使用方法后就可以去看URP官方的示例项目以及源码了。SRP有几个难懂的核心概念CommandBuffer、SRP Batch,教程中没有讲太明白,依然需要其它资料。

  1. srp包官方文档
  2. srp官方文档
  3. srp核心库
    这个在项目目录Library/PackageCache/com.unity.render-pipeline.core/ShaderLibrary下,创建srp项目或者导入srp包之后就有了。
  4. 知乎CommandBuffer一个理解

4.UniversalRenderPipeline(URP)源码

知识体系成型后,看源码就是最直接最合适的学习道路。示例项目在2019.3之后创建时可选URP模板,自动包含源码。

URP源码中真正要关注的核心就是渲染循环和ForwardRenderer,理解URP之后项目上的大部分需求就不会完全不懂了。

  1. URP包官方文档
  2. How the Universal Render Pipeline unlocks games for you
    官方对URP的视频介绍以及网上大佬的翻译
  3. 官方URP开源项目-BoatAttack

5.UnityChanToonShader(UTS)

UnityJapan在github的卡通渲染开源项目,UTS基本上就是业界最新的卡通渲染实现方案了。最近花了不少时间基于UTS做了一个URP版本的移植,删改了很多代码基本重新从头写了一遍,增加了不少认识。

之后打算的学习选项

PBR:Unity的Standard材质
GPU架构
NPR
NIVIDIA GPU Gems1-3
叶大的书单

知识框架

整理了这张思维导图,就是纯目录图梳理用的。图中还有些不完善的地方,特别是“光照与阴影”和“后处理”的部分,这两部分细分的话完全可以打开新世界,这里暂且够用,以后再去逐步探索下去。
知识体系目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值