shader入门基础知识一

开始编写着色器前我们需要了解的一些基础知识

  1. 什么是渲染管线
    gpu 内部处理图形信号相互独立的并行单元,一个渲染管线(流水线)是一序列可以并行和按照固定顺序进行的阶段。

  2. image

  3. Shader
    通用的 shader 是渲染流水线的某些特定阶段,例如顶点着色器阶段(vertex shader)和片元着色器阶段(fragment shader)
    TODO 渲染流水线

  4. UnityShader
    Unity 为开发者提供的高层级的渲染抽象层,而所有 UnityShader 都是有 ShaderLab 编写的,ShaderLab 是 unity 提供的编写 Unity Shader 的一种说明性语言,
    使用 ShaderLab 后开发者将不需要和许多文件和设置打交道

  5. 着色器语言 ShadingLaguage

    • DirectX 的 HLSL(High Level Shading Language)
    • OpenGL 的 GLSL (OpenGL Shading Language)
    • NVIDIA Cg (C for Graphic)
  6. 选择哪种语言呢?
    首先 GLSL 是跨平台的,但是 GLSL 得跨平台是由于 OpenGL 没有提供着色器编译器,而是由显卡驱动来完成着色器的编译工作,因此 GLSL 是依赖硬件而非操作系统的,对于
    不同的硬件,编译结果会不一致。对于手游或者端游开发,我们依赖的是操作系统级的,而非硬件。
    HLSL 是微软控制着色器编译,对于不同硬件,相同编译器编译结果是相同的
    CG 根据平台不同,会编译成相应的中间语言,而 cg 是和微软合作的产物,因此语法和 HLSL 相像
    在 Unity 中我们可以认为是等价的,因此后续我们使用"Cg/HLSL"来编写我们的着色器

  7. 什么是 DirectX,OpenGL
    DirectX,OpenGL 是图像应用层的编程接口,这些接口用于渲染二维或者三维图像

  8. 什么是 DrawCall,为什么 DrawCall 多了会导致帧率下降
    DrawCall cpu 调用图像编程接口,以命令 Gpu 进行渲染的操作 eg. DirextX 中的 DrawIndexedPrimitive。
    每次调用 DrawCall 前,cpu 需要向 GPU 发送很多内容,包括数据,状态,命令等,在这一阶段 cpu 需要完成很多工作,例如检查渲染状态等。
    完成后 gpu 开始渲染,gpu 渲染能力很强,渲染 200 或者 2000 个三角网格通常花费差不多,真正造成帧率下降的原因是 cpu 在 DrawCall 过多
    之后,会花费大量时间在准备上述工作和提交 DrawCall 上。

image

本资源集提供了针对小型无人机六自由度非线性动力学模型的MATLAB仿真环境,适用于多个版本(如2014a、2019b、2024b)。该模型完整描述了飞行器在三维空间中的六个独立运动状态:绕三个坐标轴的旋转(滚转、俯仰、偏航)与沿三个坐标轴的平移(前后、左右、升降)。建模过程严格依据牛顿-欧拉方程,综合考虑了重力、气动力、推进力及其产生的力矩对机体运动的影响,涉及矢量运算与常微分方程求解等数学方法。 代码采用模块化与参数化设计,使用者可便捷地调整飞行器的结构参数(包括几何尺寸、质量特性、惯性张量等)以匹配不同机型。程序结构清晰,关键步骤配有详细说明,便于理解模型构建逻辑与仿真流程。随附的示例数据集可直接加载运行,用户可通过修改参数观察飞行状态的动态响应,从而深化对无人机非线性动力学特性的认识。 本材料主要面向具备定数学与编程基础的高校学生,尤其适合计算机、电子信息工程、自动化及相关专业人员在课程项目、专题研究或毕业设计中使用。通过该仿真环境,学习者能够将理论知识与数值实践相结合,掌握无人机系统建模、仿真与分析的基本技能,为后续从事飞行器控制、系统仿真等领域的研究或开发工作奠定基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值