Unity Shader

 什么是Shader

        

图像渲染管线【流水线】(如何把3D的渲染图片呈现在2D图片上)

        渲染流水线

                生活中的流水线

                        

                 应用阶段【CPU】

                        1、准备场景数据

                        2、粗颗粒剔除

                        3、设置模型的渲染状态

                        输出渲染图元

                                点、线、三角面...

                        CPU ➡ GPU(CPU向GPU发送渲染命令)

数据加载到显存

                硬盘HDD

                内存RAM

                显存VRAM

设置渲染状态

                纹理设置

                混合设置

                透明设置

                顶点着色器设置

                片元着色器设置...

调用DrawCall

CPU向GPU发送一条渲染指令,就称之为一次DrawCall
CPU向GPU发送一条渲染命令

                几何阶段【GPU】

                        GPU绘制

                        输出屏幕空间的顶点信息

                        CPU流水线

                                输入:顶点数据

顶点着色器可编程的

 空间变换【三维模型变成一个二维图片】

顶点着色

                         曲面细分着色器

可选着色器
细分图元

                        几何着色器

可选着色器
逐图元着色or产生更多图元

                        裁剪

裁剪看不到的图元

                        屏幕映射

图元转换到屏幕坐标系

                光栅化阶段【GPU】

                        生成像素

                        渲染最终图像

GPU流水线三角形设置【画上三角形】

三角形遍历【填充像素】

片元着色器

可编程的
逐片元的着色操作
逐片元操作不可变成,但可配置
修改颜色
深度缓冲
混合操作
输出:屏幕图像

        渲染绘图管线整理

                目的

                        输入:3D模型

                        输出:2D图片

                渲染绘图管理流程

渲染绘图管理流程
顶点处理本地坐标系

中心:模型中心

方位:模型xyz

世界坐标系

中心:世界坐标系的中心

方位:世界坐标系的xyz

观察坐标系

中心:摄像机的位置

方位:摄像机的xyz

裁剪坐标系
投影坐标系(2D)
面处理面的组装————面截取、面剔除
光栅化向量        ➡        点阵像素
像素处理输入:像素的位置、深度、贴图、坐标、法线、切线、颜色等
输出:每个像素的颜色、透明度
即对每个像素着色过程

DX和OpenGL

        

 GPU编程语言

GLSL【英伟达开发跨平台
依赖硬件而非操作系统
HLSL【微软开发只支持微软平台
依赖操作系统,不依赖硬件
CG【C for graphic真正意义的跨平台【不依赖操作系统也不依赖硬件
与HLSL语法很像【针对于图形学的C语言】

 ShaderLab【UnityShader的服务语言

        

UnityShader类型

固定管线着色器【Shader 1.0】

应用于旧设备,不支持可编程Shader的

简单

灵活度低

用到ShaderLab语法,无CG语言

表面着色器

【Unity自主封装】

省去烦人细节设置

用到CG

顶点片元着色器【Shader 2.0】

复杂

灵活度高

用到CG

固定管线着色器

Surface(表面着色器)

顶点片元着色器Vertex&Fragment

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值