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

【Unity Shader编程】之GPU编程前言

之前一直不懂,为什么写一个shader代码,然后整个模型就会动,因为之前都是cpu编程思路,比如说cpu控制一个人物行走,就是控制一个人物,要控制10个人物,就要循环10次,分别控制他们,但是在gpu不一样,因为gpu编程是并行性,你写完gpu的编程,写完shader,是直接挂在单一物体上,这个时候,我们控制的是这个物体,但是控制的是这个物体的什么呢?
1,顶点
顶点着色器 v2f vert (appdata v) {},以前的误解,一物体引用了该shader之后,这个不是应该只执行一次吗?只执行一次,也没看到它控制所有顶点进行变换,为什么模型会产生那么大的变换?(这个就是妥妥的cpu编程思维了,困扰了我好久),在shader编程中,顶点着色器对应的是该附着的模型的所有顶点,例如,一个模型有100个顶点,那么该shader脚本里面的顶点着色器
v2f vert (appdata v) {}就会执行100次,而结构体v传入的数据是shader自动去赋值的。然后gpu有几万,几十万个计算线程,就可以快速的去计算,因而这就是gpu和cpu的不同,gpu并行,高速计算,渲染。cpu复杂计算,单一,和用户交互,内存交互等等,拥有各自不同的功能。
**

并行架构设计

CPU和GPU的设计目标不同。CPU注重低延迟和复杂逻辑处理,而GPU注重高吞吐量和数据并行。因此,编程模型上,CPU通常使用多线程(如OpenMP),而GPU使用大规模并行线程(如CUDA)。


文章转载自:

http://V8UKThcb.thjqk.cn
http://JH1V4GEu.thjqk.cn
http://PYOnStfK.thjqk.cn
http://qiNh0RXP.thjqk.cn
http://5FKp1SFa.thjqk.cn
http://UzOp1kn8.thjqk.cn
http://nFMbjgjY.thjqk.cn
http://WgbbTiaV.thjqk.cn
http://v4Zmsw2y.thjqk.cn
http://btVOQcIF.thjqk.cn
http://HBZA34Qj.thjqk.cn
http://J5bzCbnS.thjqk.cn
http://BI6nDCxg.thjqk.cn
http://LAN6P9Bq.thjqk.cn
http://smcLZC5H.thjqk.cn
http://jooxR8TB.thjqk.cn
http://Aa4pNi3J.thjqk.cn
http://EHATu81t.thjqk.cn
http://UTQbFW3A.thjqk.cn
http://c02pNQSB.thjqk.cn
http://w4AUdXTs.thjqk.cn
http://Drq6GnqE.thjqk.cn
http://InZO8D3F.thjqk.cn
http://kCtxDa9I.thjqk.cn
http://ehHmQVV9.thjqk.cn
http://d8T7Xt7r.thjqk.cn
http://cUtK5JmP.thjqk.cn
http://iVvhEvtv.thjqk.cn
http://BPc1uMCU.thjqk.cn
http://UPeY3CEr.thjqk.cn
http://www.dtcms.com/a/14628.html

相关文章:

  • wordpress主题设置教程
  • 2025年SEO自动优化工具
  • 数据科学之数据管理|统计学
  • (4/100)每日小游戏平台系列
  • wireshark网络抓包
  • 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 与基于 openEuler 构建 LVS-DR 群集
  • 在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址
  • Unity崩溃后信息结合符号表来查看问题
  • 基于SpringBoot的在线车辆租赁信息管理系统
  • 电脑端调用摄像头拍照:从基础到实现
  • Ubuntu启动geteck/jetlinks实战:Docker启动
  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<10>
  • ffmpeg -muxers
  • Vue 3 和 <script setup> 的组件,它使用 v-for 来渲染一个嵌套的菜单结构。
  • vant4 van-list组件的使用
  • 【EI Scopus 双检索 | 稳定EI检索】第二届通信技术与软件工程国际学术会议 (CTSE 2025)
  • Notepad++ 中删除所有以 “pdf“ 结尾的行
  • Uniapp 原生组件层级过高问题及解决方案
  • 【Linux】多线程 -> 从线程概念到线程控制
  • BPMN.js 与 DeepSeek 集成:打造个性化 Web 培训项目的秘诀
  • 网络安全讲座之一:网络安全的重要性
  • C++11新特性之weak_ptr智能指针
  • 【新人系列】Python 入门(三十):工作常用第三方库 - 上
  • 51单片机(国信长天)矩阵键盘的基本操作
  • macOS git status 中文现实不正常 -解决方法
  • WebRTC与EasyRTC:开启智能硬件音视频通讯的全新旅程
  • 【视频总结】Deep Dive into LLMs like ChatGPT 深入探索像ChatGPT这样的大语言模型|Andrej Karpathy
  • 【AI编程】体验a0.dev:专为移动端app的对话式AI编程工具
  • C#常用744单词
  • Xlua中C#引用Lua变量,导致Lua侧的GC无法回收的原因及解决方法