图形学
【opengl渲染流程】
CPU: FBX-->Meshrender
FBX obj: 模型文件 里面包含了 uv 顶点位置,法线 切线 等 渲染所需要的信息。
Meshrender: 将这些信息传递到GPU。skin mesh render / mesh render meh filter
skin mesh render : 带蒙皮的骨骼
mesh render :主要是将 顶点等信息传递到GPU
mesh filter: 将哪个模型传递到GPU
GPU:
渲染管线:
顶点着色器 --》 光栅化 --》 片段着色器 --》
alpha测试 --》模板测试 --》 深度测试 --》Blend --》Gbuffer --> frontBuffer --> frameBuffer --> 显示器
顶点着色器:
1,计算顶点颜色
2,将物体坐标系 转换到 相机坐标系
光栅化:
将顶点 转换成 像素
插值
顶点 4 个 到了 片段着色器 100*100
结论:
顶点着色器 会运行 4 次 ,片段着色器会运行 10000 次
顶点着色器 和 片段着色器 运算次数不是一个量级
能把运算放在顶点着色器就放在顶点着色器
片段着色器:
1,已经是 像素点。
纹理采样。从纹理像素 赋给 像素
像素 跟灯光计算
像素:RGBA 4通道组成。RGBA 8888 表示每个通道占8bit,4个通道占32位
屏幕:720*1280 横 有 720个像素
竖 有 1280个像素
float[720*1280]
alpha测试:挑选合格的alpha 像素显示
模板测试:像素 还可以携带模板信息。达到条件的模板值与Gbuffer值计算
深度测试:符合条件的就通过,不合格就丢弃
blend:将当前要渲染的像素与之前已经渲染的像素进行混合运算
GBuffer:RGBA 模板值 深度值等。。。
FrontBuffer:float[720*1280]
framebuffer:float[720*1280]
【shader结构】
1,shader语言
opengl:SGI公司开发 跨平台
GLSL:opengl shader langurage
dx:微软开发,对显卡的性能开发的非常好,非跨平台
HLSL: high level shader langurage
CG:微软和英伟达公司联合开发。跨平台,C语言开发,性能好
2,unity shader语言
支持以上三种语言 opengl dx cg
CG和HLSL包括在CGPROGRAM...ENDCG 语法块内
GLSL包括在GLSLPROGRAM...ENDGLSL语法块内
自己是语言。shader lab
3,unity shader分类
fixed shader: shader 1.0 主要是开关式
顶点 片段着色器: shader2.0 功能里面的公式可以自己定义
Surface shader: 是对前两种的一种封装
【属性定义p4】
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号