shader 就是 GPU 编程 控制渲染过程
OpenGL 图形接口程序
DirectX 微软 多媒体编程接口 给软件提供服务
unity 使用的Cg语言
OpenGL GLSL
Direct3D HLSL
最主要用的就是Cg
shader 就是 GPU 编程 控制渲染过程
OpenGL 图形接口程序
DirectX 微软 多媒体编程接口 给软件提供服务
unity 使用的Cg语言
OpenGL GLSL
Direct3D HLSL
最主要用的就是Cg
顶点进行插值 产生片元 纹理坐标 片元盖上了之后
片元,像素点,经过一系列测试,决定最终呈现
片元理解为像素点
就是三角形设置 三角形遍历 根据屏幕位置生成像素点,点包含颜色信息,
几何化 光栅化 主体都是GPU
着色器都是可编程的
着色器 走点线面的过程 不要的裁剪掉, 进行屏幕映射,将三角形显示 绘制 成像
渲染状态 用了什么东西,或者说由什么组成
CPU是甲方 GPU是乙方
静态合批 同样的mesh 同样的材质球 一次处理
动态合批 顶点数小于800 相同的合成一个新的
GPU instance 也是合成一个 降低draw call
渲染流程
光栅化就是根据数据显示图像
应用 相当于在Unity编辑器下
几何 将顶点坐标转换成屏幕空间
光栅 将数据进行图像显示
RAM 主内存
显存 显卡的存储器
draw call 绘制命令 CPU 向GPU 发送的指令 越少越好
准备开始啦,加油
算错了 -35
18
渲染流水线三大阶段:
1.应用阶段:Cpu负责(绝对控制权)(1)准备场景数据(2).不可见剔除(3).设置渲染状态
分三步:1.把数据加载到显存中。2.设置渲染状态3.调用Draw Call。
2.几何阶段:
GPU负责。首要任务是把顶点坐标变换到屏幕空间中,再交给光栅器进行处理。
3.光栅化阶段:GPU负责。使用上个阶段传递的数据来产生屏幕上像素并最终渲染出图像
1.opengl es针对yi'dong'duan
在推导
你是谁
漫反射
(本节介绍了,漫反射与点乘的关系,有必要学一下)
(讲解为什么法线向量与入射光线的点乘为COS角度)
当光线垂直射入物体后,反射的光线是最强的。
当光线几乎平行于表面,反射的光线是最弱的。
C (diffuse) = C (光) . m (物体) . max(0,(n向量 . l 向量))
自发光与环境光
(本节介绍 自发光 和 环境光 的概念,没必要听)
光照的介绍
(本节就是了解概念)
反色率 = 入射角 / 折射角
BRDF : 光照模型
(次世代渲染技术)
sss材质 : 次表面散射
Shader Target
unity 支持的Shader Target
#pragma target 2.0 - 5.0
Shader Model 1 、2、3、.... 可以理解为是C#语言的不同版本。
矩阵的简单介绍
矩阵分 行 和 列
例如:
3 X 4 阶矩阵
3 是 行
4 是 列
向量点乘
向量点乘的几何意义
a(向量) * b(向量) > 0
向量夹角 < 90° cos 为 正 [ -90 , 90 ]
a(向量) * b(向量) = 0
向量垂直 cos 为 0 ( -90 , 90 ,270 ,... )
a(向量) * b(向量) < 0
向量夹角 > 90° cos 为 负 [ -90 , -270 ]
向量的点乘 有 2 个公式
( 这2个公式求得的最后结果都是一样的,一个标量 )
公式1:
OA(向量) * OB(向量) = ( x1 * x2 ) + ( y1 * y2 )
公式2:
OA(向量) * OB(向量) = OA(向量的模) * OB(向量的模) * COS(向量夹角)
(1、灵活运用这2个公式可以求的俩个向量的点乘
2、也可以求的俩个向量的夹角
3、一个向量在另一个向量上的投影。)
俩个向量之间的点乘相当于,A 向量在 B 向量上的投影 * B 向量的模长
三维向量叉乘
I a(向量) x b(向量) I = I a(向量) I I b(向量) I sin角度
叉乘得到的最终向量的方面,按照所遵循的左手和右手定则 而不同。
叉乘的意义:
判断三角面的朝向。
叉乘的值