- 博客(238)
- 收藏
- 关注
原创 3.1 DrawCall
DrawCall表示 "CPU准备渲染指令, 让GPU进行渲染的过程"1).配置"渲染状态"(告诉GPU渲染规则)CPU会把当前渲染需要的"规则"整理成数据, 发给GPU的渲染管线:a.深度测试/模板测试规则b.混合模式c.裁剪模式这些都是小量的状态标识/数值(比如用1/0表示开启/关闭深度测试), 不是"拷贝数据", 而是"设置GPU的寄存器/状态位"2).绑定"GPU资源句柄"(告诉GPU用哪个显存资源)
2026-01-07 15:45:00
119
原创 09. CPU, GPU, 内存, 显存, 硬盘传递数据
a.硬盘: 永久保存游戏字体(模型, 纹理, Shader, 场景), 相当于公司仓库b.内存: 缓存硬盘加载的资源, 供CPU/GPU快速访问, 相当于办公桌(放当前工作文件)c.CPU: 调度任务, 准备数据, 逻辑计算, 相当于办公人员d.GPU: 渲染画面, 并行计算, 相当于专业工作室(配专属工作台)e.显存: 存储GPU正在使用的定点数据, 纹理, Shader代码, 相当于工作室专属工作台。
2026-01-07 14:49:42
134
原创 08. DMA
DMA(Direct Memory Access, 直接内存访问)是计算机体系中核心的"解放CPU"技术 ——它允许外设(如 GPU、硬盘、网卡、音频设备)不经过CPU中转, 直接读写系统内存, 从而让CPU从繁琐的数据拷贝工作中解脱, 专注于游戏逻辑、AI 计算、物理模拟等核心任务没有DMA时, 外设与内存的通信必须经过CPU, 就像:- CPU是游戏公司的CEO(负责核心逻辑: AI、物理、剧情触发)- 内存是文件柜(存储纹理、模型、音频等资源)
2025-12-31 14:09:44
196
原创 3.2 空间变换
T : V → W , 存在一个变换将向量空间V中的向量变换到向量空间W中a.V是定义域, W是值域b.Kernel(T)简称Ker(T), 表示V中经过变换T后, 会被映射到W的零向量的向量集合c.Range(T): V是变换的定义域, 里面的所有向量经过T后, 会"投射"到W中的某些点;W中这些被T投射到的所有点(向量)的集合, 就是Range(T) —— 它是W的一个子空间(相当于W里被T"覆盖到的区域")
2025-12-29 14:25:09
97
原创 3.1 线性变换简介
Ax = b可以看为A的列向量的线性组合, 从另一个角度看Ax = b, 矩阵A将x从一个向量空间转换到另一个向量空间(b)a.b不等于0, 将x从R^n空间变换为A的列空间(R^m)b.b等于0, 将x从A的零空间变换为0矩阵A将x从一个向量空间转换到另一个向量空间称为变换 , 变换类似于函数 , 输入一个向量 , 得出另一个向量;若满足下面的条件称为线性变换。
2025-12-27 12:36:25
180
原创 05. CPU从内存中读取数据的流程
CPU从内存中读取数据的核心是通过"地址总线, 数据总线, 控制总线"的协同配合, 结合CPU多级缓存的优化, 完成地址寻址-> 指令传输 -> 数据读取 -> 缓存存储的全过程用一个通俗的类比理解: 把CPU比作工厂的加工车间, 内存比作仓库, 数据比作零件, 总线就是连接车间和仓库的运输管道。
2025-12-26 13:36:24
225
原创 2.8 预渲染
在游戏运行前或加载时, 提前将需要渲染的资源(如模型、纹理、着色器等)上传到GPU, 从而避免在游戏运行时首次使用该资源时出现卡顿1).问题来源:a.当游戏运行时, 一个模型(包括网格、纹理、材质等)第一次被渲染时, CPU需要准备数据并上传到GPU;这个过程包括:- 将网格数据(顶点、索引等)上传到GPU的顶点缓冲区和索引缓冲区- 将纹理数据上传到GPU的纹理资源- 编译着色器(如果之前没有编译过)并创建GPU上的着色器资源- 设置常量缓冲区等。
2025-12-25 10:46:39
161
原创 2.4 本机到托管的桥接
1).本机到托管的桥接简介本机到托管的桥接表示"unity引擎底层代码(通常是c/c++)与托管代码(c#)之间的交互机制"a.本地代码(Native Code)- 主要是用c++编写的- 包括unity引擎的核心部分: 渲染引擎, 物理引擎, 音频系统等- 直接编译成机器码, 运行效率高- 与操作系统和硬件直接交互b.托管代码(Managed Code)- 主要是开发者编写的c#脚本- Unity IL2CPP模式下的C# 运行在 .net虚拟机(mono或il2cpp)
2025-12-23 13:10:57
255
原创 1.16 PLINQ
PLINQ是LINQ的并行扩展, 核心是通过AsParallel()启用并行查询, 自动将查询任务分发到多线程池, 利用多核CPU提升效率a.PLINQ依赖System.Linq命名空间, 支持内存集合(如List<T>、IEnumerable<T>),不支持LINQ to SQL/EF 等数据库查询b.启用并行(AsParallel), 调用后LINQ查询从"串行"转为"并行"执行// 数据源:1~10000 的整数集合// 【普通 LINQ(串行)】筛选偶数并乘以 2。
2025-12-18 16:28:49
130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅