当前位置: 首页 > news >正文

OpenGL学习笔记-05-着色器-数据类型/输入输出/uniform

数据类型

  • 基本类型:向量

  • 怎么写:

    • vecn: n为一个整数,通常表示有n个float分量的向量
  • 示例:

    • vec3 Vec(0.1, 0.2, 0.3); 表示这是一个有3个float分量的向量,向量名称为Vec

    • Vec.x、Vec.y、Vec.z,分别表示第一个、第二个、第三个向量

      • Vec.x = 0.1
      • Vec.y = 0.2
      • Vec.z = 0.3
    • Vec4 Vec2 = (Vec, 0.0); 这种写法,表示建立一个4维的Vec2分量,其中前三个分量,使用Vec进行赋值

      • Vec2.x = 0.1
      • Vec2.y = 0.2
      • Vec2.z = 0.3
      • Vec2.w = 0.0

输入与输出

  • 本质:

    • 输入:数据进入着色器的入口
    • 输出:数据离开着色器,传给下一阶段的出口
  • 基本通道

    • 暂时无法在飞书文档外展示此内容

Uniform

  • 本质:就是从CPU 发送到 GPU 的全局只读变量,在整个绘制过程中,所有顶点和像素看到的都是同一个值。
  • 作用:减少CPU和GPU之间的数据吞吐量,你只用传递一次,着色器里所有需要使用的地方都能用
  • 类比:工厂的“大屏幕公告”,工厂里所有人都能看到
  • 简单示例:
//cpu层伪代码,仅展示关键步骤//cpu中,获取uniform位置glUseProgram(shaderProgram);intcolorLoc=glGetUniformLocation(shaderProgram,"uColor");//给uniform传值glUniform3f(colorLoc,r,g,b);
//片段着色器伪代码out vec4 FragColor;uniform vec3 uColor;//最终FragColor使用的,就是cpu传来的unifor值voidmain(){FragColor=vec4(uColor,1.0);}
http://www.cnnetsun.cn/news/3075993.html

相关文章:

  • 基于OpenCV与YOLO的实时目标检测系统搭建指南
  • Docker部署PostgreSQL
  • Playwright混沌工程实战:构建AI增强的韧性Web自动化测试体系
  • 【LeetCode】反转字符串
  • 京东开源实时视频视觉语言交互模型:全栈方案解析与落地实践
  • 智能体颠覆安全-360图龙锋如何用蜂群路线打造中国版Mythos
  • Java 26 发布了, 我人麻了。。
  • 玩三角洲要高配?2026年这5款旗舰游戏本让你杀穿新赛季
  • AI模型门控发布机制解析:原理、实践与行业应用
  • 2026全球EMBA客观测评:科学选型与优质项目解析
  • 工程师转型AI:从跑通Demo到收藏实战秘籍,拒绝高数劝退!
  • 微信聊天记录备份终极指南:如何安全保护你的数字记忆
  • UMDF驱动开发入门:二 详解INF文件与设备类选择
  • 软件测试——黑盒测试
  • AI Agent 三种记忆的工程落地
  • 网络安全事件报告——伪CAPTCHA诱骗用户运行危险的PowerShell脚本
  • 小白可懂的保姆级 Redis 教程
  • ponytail爆火:专治AI编程过度造轮子,代码直接砍半
  • 解密 MCP:开启 AI 与数据交互的新标准
  • 新课标下,小学数学最需要的能力不是“算得快“,而是“想得通“
  • 深入认识ClassLoader - 一次投产失败的复盘
  • DeepSeek美化-为 DeepSeek 网页版引入 Obsidian Border 主题视觉风格
  • RAG基础
  • 做智驾十年,为何Momenta上市换锚?
  • 企业DLP选型指南:从入门到决策,一篇讲透
  • PEAK框架:自然语言驱动的GPU内核优化技术解析
  • Lyra框架:RISC-V处理器验证的异构加速与语义生成技术
  • 郑州翻译公司 俄语保险翻译清单
  • 模板题这道模板题非常全面,相比应用李超线段树的时候实现的东西要多的多:
  • 基于STM32单片机的颜色识别 TCS3200 RGB 检测系统2(设计源文件+万字报告+讲解)(支持资料、图片参考_降重降ai)