shader 入门精要笔记)(1)

时间:2021-08-10
本文章向大家介绍shader 入门精要笔记)(1),主要包括shader 入门精要笔记)(1)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

shader只是渲染流水线的一个环节,真正要写shader绕不开堆渲染流水线的整个了解.首先渲染流水线是类似工场流水线的形式提高效率,使多个物体和场景的顶点,纹理,转换成屏幕图像,由CPU和GPU共同处理。《Real_Time Readering,Third Editor》将渲染流程分为三个阶段:1.应用阶段,2.几何阶段,3.光栅化阶段。(只是概念阶段,实际其每个阶段也是一个流水线系统,即包涵子流水线阶段)

应用阶段:开发者对此有绝对控制权,由CPU负责实现。为何这样说呢?实际上开发者在此可以控制模型顶点数量,场景的模型摆放,摄像机位置,光源的控制,提高渲染性能必须要有取舍,对于不可见的物体进行粗粒度剔除(culling),由此不必使下一个阶段处理几何信息和图形采样,最后设置渲染状态(漫反射颜色,高光反射颜色,贴图纹理,使用的shader类型)渲染图元(点,线,三角面)传入给下一个几何阶段。应用阶段结束。

几何阶段: 这一阶段在GPU上进行。几何阶段负责和每个渲染图元打交道,逐顶点,逐多边形操作,重要的是把顶点坐标变换到屏幕空间中,再交给光栅器处理,通过对输入的图元处理后,将输出的屏幕空间二维顶点坐标,每个顶点的深度值(模型顶点不可能十分规则,通常物体的形状分布是由三维软件中对物体顶点挤压变形最终形成的视觉上规整的形状,顶点深度值就是对此的计算)着色(通常由美术在对shander颜色面板操作后对RGB颜色的调整)等相关信息,交给下一个阶段。几何阶段结束

光栅化阶段:使用上一阶段(几何阶段)传递的数据产生屏幕上的像素,渲染出最后的图像。此阶段也在GPU上进行,光栅化任务是决定每个渲染图元中的哪些像素应该被绘制在屏幕上,它需要对上一阶段得到的逐顶点数据(纹理坐标,顶点颜色)进行插值,然后逐像素处理,光栅化阶段和几何阶段类似,也可以分成更小的流水线阶段。

总结:以美术生的视角来看:shader的整个流程类似我们要画出的画面,在应用阶段是我们对画面要画什么,哪些位置画什么,用什么颜色来画,对于不重要的东西少画或者不画。在几何阶段我们大脑中有这些想法后传给我们的手,把脑子里的画面先进行一个模拟对画面最终效果进行预测,对具体的调色和画面进行更一步规整。光栅化阶段:两次想法验证就需通过手了,通过手对画面进行具体的调整,先画整体,再画细节,对色彩进行调整哪些灰一些,哪些冷一些,哪些亮一些,明暗更加突出,亮面,高光,明暗交界线,反光突出。总之计算机就像一个上帝画家一样,它可以准确画到一切你告诉他的信息,它不会出错(除非你告诉他的是错误信息),但是不必要的信息就不要告诉他了,他也会累的,让他画特别多的东西且在几秒内,这也是不切实际的(暗指剔除,节省性能)

原文地址:https://www.cnblogs.com/rw61/p/15123253.html