一些shader学习中的笔记

模型渲染成像分为几大阶段;应用:几何;光栅化

应用阶段在cpu中进行,来准备三维空间中模型的信息(顶点,法线,贴图..)传递给下一阶段

几何;光栅化阶段在gpu上运行,

1:顶点着色器(vertex)来接收应用阶段传递过来的数据,并进行处理(顶点动画)

      其中最重要的就是坐标空间位置的转换,模型上的一个顶点,先从自身的模型空间下位置,转换到世界空间,再转换到摄像机空间,

2:裁剪(cull),进入到摄像机空间后,这一步将摄像机近裁面以及远裁面间之外的数据剔除

3:投射(projection):通过这一步将摄像机空间内的点全部投射成为二维平面

4:三角形遍历:将模型上的三角形经过遍历生成片元(像素)

5:片元着色器(frag)来接受顶点着色器传递过来的数据,并进行处理输出片元颜色(计算光照等)

6:合并:最终进行深度测试以及进行混合输出到屏幕上

在shader中:我们只可以对顶点着色器和片元着色器进行计算

1:声明属性
2:引用cg数据库;声明标签,渲染队列等
3:定义用来传递属性的结构体(appdata,v2f)
4:顶点着色器中进行最基本的空间转换(mvp矩阵)
5;片元着色器进行光照计算,纹理颜色等;
6:return


ShaderLab使用两种语义,CG和HLSL

着色器语言都是为了方便人员使用,进行了封装,用最少的操作最大的控制结果(世界是属于懒人的)

navmesh与collider
寻路烘焙可以控制行走范围,同样能提供给ai进行处理(仅限地面层次)
碰撞则是在三维空间下的物理检测
二者搭配使用

模型方面:贴图要在albeo通道上表现出立体层次感(亮面暗面),不同材质对应反射不同,玻璃的反射多,金属的高光对比强


卡通渲染(toon):顶点着色器:将模型顶点沿法线外扩,并且剔除正面,生成黑色描边,外扩距离等于描边粗细
                                  
                                片元着色器:色阶:lambert光照模型:dot(N,L)  ,通过step函数来减弱色阶
                                                      高光:dot(V,R)
                                                      边缘光:dot(N,V)=== fresnel effect

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值