最全面、最前沿、最专业的游戏研发实战

提供最全面的游戏研发技能分享,让您在最短时间变成高级游戏工程师

查看:0|回复:3

【文档】哪里有比较完整的shader教程?

 attach_img

1

帖子

1

回复

2

积分
最后登录:
2025-03-24 20:16
注册时间:
2023-10-11 18:36
楼主
  发表于:2025-03-24 22:59:01|查看用户信息
最近想学习shader(工作从事unity开发),我是学OpenGL呢? 还是学CG?还是学unity封装好的shaderLab?哪里有比较完整的教程呢?

4

帖子

2

回复

5

积分
最后登录:
2025-03-24 21:33
注册时间:
2023-03-12 21:55
1 楼
  发表于:2025-03-24 22:59:25|查看用户信息

首先shader需要图形学基础,其次学习OpenGL会带有一些渲染管线的知识,但是远远不够,还得好好学图形学,然后可以搜Learn OpenGL会给你一些shader工作的原理,接着就可以去shadertoy学习人家的例子

4

帖子

4

回复

6

积分
最后登录:
2025-03-24 21:37
注册时间:
2023-05-19 10:16
2 楼
  发表于:2025-03-24 23:01:56|查看用户信息

首先shader需要图形学基础,其次学习OpenGL会带有一些的知识,但是远远不够,还得好好学图形学,然后可以搜Learn OpenGL会给你一些shader工作的原理,接着就可以去shadertoy学习人家的例子

7

帖子

8

回复

14

积分
最后登录:
2025-03-24 19:58
注册时间:
2023-02-26 14:02
3 楼
  发表于:2025-03-24 23:04:24|查看用户信息

详细谈谈如何学习Shader吧

1.首先、作为学习shader的开始,开发工具是非常重要的,我个人推荐sublinme Text, 在srp推出后 ,所有shader源码是非常方便阅读和理解的,现在unity主推hlsl 因此插件装上hlsl的就好。

导入urp或者hdrp后 将工程下的Library/PackageCache/ 下的com.unity.render-pipelines.core和com.unity.render-pipelines.universal 工作空间 ,这样在可以在很方便的查找到使用代码的引用。


2.如果你对图形学没有任何的基础,可以先去看catlikecoding的关于Rendering教程 ,国内的汉化版本也比较多,里面从矩阵开始一直到大部分unity默认的pbr流程,这一步可能比较难走,因为教程难度还是比较大的,需要花费的时间也比较多,由于该教程使用的默认管线,用的语言也是cg,所以目标主要是理解他的原理以及shaderlibrary的语法。


3.在你对shaderlibrary和渲染流程有一定了解之后 , 可以拿起URP中的LitForward.shader源码进行慢慢分析, 如果你第二步做的牢固的话 ,会发现阅读这些代码是非常轻松的, 而且代码注释也是比较详细的


4.然后你可以在shadertoy上慢慢阅读各种实现,顺便在unity中进行实现这些效果(找一个urp下的的后处理框架 (我推荐用custompostprocess)或者自己写一套,并不是很难),积累各种效果实现的基础,这是一个长期持续的过程


5.提高你的C#基础水平, 写渲染需要的东西不仅仅是会写shader的,大部分的渲染需求不仅仅在shader上, 在你想进阶写一些管线文件的时候 ,六成以上的开发时间都在C#上


6.如果你只是美术,特效岗位,尽早使用ase或者sg这种工具来进行开发可以让你免除很多的学习成本,大部分的渲染效果也是能做出来的,毕竟抛出渲染的底层需求,大部分市面上的需求通过逻辑连线就可以实现了 , 以上这些流程其实是非常枯燥乏味的,而且没有什么成就感,如果坚持的话起码要花费半年以上


7.其他一些学习的那些书籍,我也在想学习的阶段时全部购买阅读过,实际上帮助很低,当时断断续续看书学了一年左右水平还是个萌新一样, 但是从srp发布以来通过读源码的方式进步非常神速(也可能是之前的积累有些作用吧哈哈)


共 1/1 页

0

帖子

0

回复

0

积分
最后登录:
1970-01-01 08:00
注册时间:
1970-01-01 08:00
会员必须登录才能发布帖子! 点击登录