人气 321

[综合技术] UnityShader学习笔记(四) [复制链接]

九艺网 2019-9-5 21:43:56

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

emm...兄弟盟我回来了。两个星期没更了,是不是觉得我放弃了,还是失踪了?undefined前段时间因为跳槽换公司,熟悉新环境,并且加班也比较多,所以就偷懒,没写博客。现在缓过来了,继续我们的shader入门到放弃。加油!!!

上一篇我们讲的是渲染流水线的三个阶段,分别是应用阶段,几何阶段,光栅化阶段。同时简单的列举了这三个阶段所做的事情。如果忘记了就回去看看UnityShader学习笔记(三)。本篇我们继续讲上一篇的内容,更深入的了解一下。


应用阶段:


上一篇应用阶段我们列举了三项:场景数据、剔除Culling、设置渲染状态。场景数据和剔除比较容易理解我们就不再讨论了,兄弟盟想要更熟悉的话可以自行查阅。这里我们就再简单介绍一下设置渲染状态其实是在做什么。

设置渲染状态:渲染状态通俗的解释是,这些状态定义了场景中的网格是怎样被渲染的。例如,使用哪个顶点着色器/片元着色器、光源属性、材质等。如果我们没有更改渲染状态,那么所有的网格都将使用同一种渲染状态,如下图显示了当使用同一种渲染状态时,渲染3个不同网格的内容。

223444ykxk0a3ku3m9axbk.jpg.thumb.jpg



再此之后CPU就会“通知”GPU开始干活,这里的“通知”其实就是DrawCall。关于DrawCall我打算后面单独写一篇来介绍一下。


几何阶段:

几何阶段我们在上一篇分为了五项:模型视图转换、顶点着色、投影、裁剪、屏幕映射。这里我们逐个分析。

模型视图转换:其实就坐标转换,在顶点着色器中进行。坐标转换,对顶点(既位置)进行某种变化。首先我们需要了解几个坐标类型:Object space(模型坐标空间)、World space (世界坐标空间)、Eye spac(观察坐标空间)、Clip space(裁剪坐标空间)、Clip and Project spac(屏幕坐标空间。如果不清楚这五种坐标空间可以先去了解一下。那这里的坐标转换就是将三维的坐标数据绘制到二维屏幕上。例如,由模型空间转换为世界空间,再由世界空间转换为观察空间,之后再由观察空间转换为裁剪空间

232031f33dbsqdccw1qghv.jpg.thumb.jpg



顶点着色:就是确定模型上顶点处材质的光照效果。emmm...

投影:投影分为正交投影和透视投影。正交投影:正交投影的可视体通常是一个矩形,正交投影可以把这个视体变换为单位立方体。正交投影的主要特性是平行线在变换之后彼此之间仍然保持平行,这种变换是平移与缩放的组合。透视投影:相比之下,透视投影比正交投影复杂一些。在这种投影中,越远离摄像机的物体,它在投影后看起来越小。更进一步来说,平行线将在地平线处会聚。透视投影的变换其实就是模拟人类感知物体的方式。

裁剪:一个图元和摄像机视野的关系有3种:完全在视野内、部分在视野内、完全在视野外。完全在视野内的图元就继续传递给下一个流水线阶段,完全在视野外的图元不会继续向下传递,因为它们不需要被渲染。而那些部分在视野内的图元需要进行一个处理,这就是裁剪。例如,一条线段的一个顶点在视野内,而另一个顶点不在视野内,那么在视野外部的顶点应该使用一个新的顶来代替,这个新的顶点位于这条线段和视野边界的交点处。

这里再讲一下裁剪和应用阶段中的剔除的区别,剔除:在应用程序阶段,能够判断物体不在视锥体内并且与视锥体的6个面没有交叉,那么就把物体剔除,不再发给几何阶段;裁剪:物体与视锥体的6个面有交叉,意味着物体的一部分在视锥体内,一部分在视锥体外,那么在几何处理阶段完成投影后,就得把视锥体外的物体裁剪,不再发给屏幕映射。

233515vpjc76s3x36o03sb.png.thumb.jpg







屏幕映射:这一步输入的坐标仍然是三维坐标系下的坐标(范围在单位立方体内)。屏幕映的任务是把每个图元的x和y坐标转换到屏幕坐标下。屏幕坐标系是一个二维坐标系,它与我们用于显示画面的分辨率有很大关系。

233840mhhht4iu8fvd48mu.png.thumb.jpg



本篇就先写到这吧。光栅化就留到下一篇啦。因为留下一点没写完,这样会更有动力让我继续写,哈哈哈。(借口)

本篇参考文献:

《UnityShader入门精要》-- 冯乐乐,人民邮电出版社,2018年3月第11次印刷。请支持正版!

《Real-Time Rendering 3rd》提炼总结 -- https://blog.csdn.net/poem_qianmo/article/details/70544201


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-4-25 00:39 , Processed in 0.152984 second(s), 26 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.