游戏引擎中顶点着色&像素着色

一.GPU渲染管线

GPU在接收到游戏端提交的Mesh,Shader数据后,渲染管线开始工作,将数据进行处理投射为2D屏幕中光栅图像.

GPU硬件中着色单元有两类,分别为顶点着色器和像素着色器.

二.顶点着色器

完成Mesh网格中顶点(3D)到屏幕(2D)计算

vertex_fvf(灵活顶点格式) = 3D坐标 + 法向 + UV + 颜色(布料,摇曳等特殊效果) + 自定义

复制代码
struct Vetex_Fvf
{
   float x, y, z; //3D坐标数据
   float n_x, n_y, n_z; //坐标法向数据
   int r, g, b, a; //顶点颜色数据 R, G, B, A四种颜色通道
   float u, v //为像素着色器设计,可映射至2D纹理图片
   int flag; //自定义数据
}

三.像素着色器

完成2D屏幕中顶点映射坐标转化为像素颜色的计算

material = 漫反射纹理 + 法向纹理 + 高光纹理 + 自定义参数

相关推荐
探求虚无6 小时前
用 AI 在 Unity 里做一款 RTS:最难的不是生成代码,而是证明它真的能玩
人工智能·unity·游戏引擎
寂寞的船2 天前
【Unity知识速递】第10期 Unity GC 零分配实战:从 UnityEngine.Pool 到手动 GC 控制的全链路优化
jvm·unity·c#·游戏引擎·lucene
Martina_03213 天前
AI生成3D场景的霓虹灯一开就糊成光团?用6步检查Emissive、Bloom与曝光
人工智能·3d·ai·自然语言处理·游戏引擎·材质·贴图
寂寞的船4 天前
【Unity知识速递】第8期 IL2CPP 托管堆内存碎片与原生堆交互机制深度解析
unity·游戏引擎·交互
淡海水5 天前
09-04-内存-Unity原生对象生命周期
unity·c#·游戏引擎·gc
寂寞的船5 天前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜
unity·c#·游戏引擎·bug
tealcwu8 天前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎
淡海水8 天前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
小小数媒成员8 天前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
暴走约伯8 天前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程