Unity的Shader学习笔记(01)[20/12/15_周二][01-04]

目录

课时01:Shader和渲染管线

课时02:三大主流编程语言(HLSL,GLSL,CG)

课时03:图形硬件简史和可编程管线

课时04:Unity Shader的组织形式


抽空系统学习一下Shader吧,不然看都看不动,更别说按我需要的改动了。

个人习惯,喜欢先看一下视频教程,入门简单,难度低,b站上找了个中文教程,Unity Shader编程教程(https://www.bilibili.com/video/BV1YK41157AC?from=search&seid=14947592965382815044

有78节课,40小时左右。今天是2020/12/15 计划一天学习2个视频,能练习最好,没时间也过一遍。那大概要40天啊,太久了,一天4个视频的话大概20天吧,差不多。关键是具体任务的进度不能落下啊。但是有个学习的理论,刚刚学英语时看到的,学习过程应该时长实际段,每次学习时间不用太长,这样学习的效果,比短期集中学习效果好,虽然总的投入时间时一样的。那一天2-4个视频,看情况吧,20-40天学习完毕。考虑上其他工作,还有练习,工作,60天吧,2个月系统把Shader的基础学习一下。关键是不只这个教程,还有其他的也要结合。3dmax之前刚入门就断了,这个希望能坚持下来,所以记录一下。

人啊,越学习知识,越想学习知识;越看小说越想继续看其他小说;越看漫画越想看其他漫画;看动漫小说的欲望本身是压抑不住的,只有在学习知识时,就会感受到之前的“娱乐”是在浪费时间和生命。不断在“娱乐”和“学习”间切换,一个腻了,一个累了,就切换到另一个,不自主的。

我学习知识的态度是“没吃过猪肉也要至少见过猪跑”不然碰到猪时认都认不出来,需要再深入查资料就好,前提是有个概念该查什么。

吐槽一下,以前公司有个同事就是不学习新知识,喜欢自己重复造轮子,连ORM是什么都不知道,还不让我引入EF(虽然EF挺坑的,总比自己写个不三不四的ORM好)。

============================ 12/15 ============================

课时01:Shader和渲染管线

什么是shader,什么是渲染管线,Shader和材质、贴图的关系

汇编语言->高级语言(??)->可视化编辑界面

硬件->可编写

Vertex->Fragment(最终像素)

Vertext->Pixel->Frame 

FrameBuffer(帧缓冲)

Transform:模型空间变换,顶点的空间几何变换。

TexGen:纹理坐标生成,顶点取得纹理坐标,转换UV取值。

Lighting:光照

硬件固定->可编程

Culling:裁剪,剔除看不见的面,提高速度。

DepthTest:深度测试,远近,剔除超过范围的。

---------------

Texturing:纹理采样

Fog:雾化处理,远处朦胧化

--------------

AlphaTest:半透明

Blending:混合最终图像。

Unity的FrameDebugger:

对应于那些阶段呢?

--------------------------------

CPU->GPU,CPU收集数据,通过API调用GPU。

优化:减少DrawCall,减少调度GPU的过程,减少分界的调用。

Shader是程序算法,Material是Shader和参数、贴图、颜色等的打包

好了,23分钟的视频,看来30分钟,速度是1.25倍,要记笔记,打字还是太慢了,截图。

干活了,还是得积累知识,不然一天天过去,其实工作中大部分时间是Try-And-Error,积累不了多少知识的。

----------------------------------------------------------------------------------------------

课时02:三大主流编程语言(HLSL,GLSL,CG)

居然有三个!

读了2大段的文字.....

讲了18分钟,总之推荐使用Cg了。反正Cg/HLSL在移动端能交叉编译(cross-compile)成GLSL

--------------------------------------------------------------------------------------------

课时03:图形硬件简史和可编程管线

T&L,Transform Lighting,

GPU允许应用程序指定一个序列的指令进行顶点操作控制。

1998第一代,1999第二代,2001第三代。

2003年,我大概初三/高一吧....

但是3dmax的渲染,默认是用CPU渲染的....

流式并行计算

可以把汇编语言的程序看看嘛

GPGPU,GPGP,GP2

挖矿?

又是读书的一节课

------------------------------------------------------------------------------------------------------

课时04:Unity Shader的组织形式

https://docs.unity3d.com/Manual/SL-Reference.html

fixed function shader:保守,硬件支持?

surface shader是对vertext&fragment的封装

To learn about shader basics and fixed function shaders, consult the ShaderLab syntax section. For other supported shader types, see either Writing Surface Shaders or Writing vertex and fragment shaders. You can also use post-processing effects with shaders to create full-screen filters and other interesting effects.

ShaderLab->SurfaceShader->Vertex&FragmentShader

SubShader:一次显卡渲染只能使用一个SubShader,硬件能否支持SubShader,从上往下简化,硬件好就使用前面的好的Shader。

一个SubShader都不支持的化 Fallback,系统的比较简单的能被大多数支持的Shader

Properties:https://docs.unity3d.com/Manual/SL-Properties.html

https://docs.unity3d.com/Manual/SL-SubShader.html

https://docs.unity3d.com/Manual/SL-Pass.html

https://docs.unity3d.com/Manual/SL-Fallback.html

https://docs.unity3d.com/Manual/SL-CustomEditor.html

https://docs.unity3d.com/Manual/SL-CustomShaderGUI.html

Pass的内容没讲,就讲了Property,SubShader,Fallback

内置Shader:

Unlit:UI

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值