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

住房和城乡建设部网站 城市绿地分类dedese网站

住房和城乡建设部网站 城市绿地分类,dedese网站,建设工程敎育那个网站,京东商城网站建设目的版权声明 本文为“优梦创客”原创文章#xff0c;您可以自由转载#xff0c;但必须加入完整的版权声明文章内容不得删减、修改、演绎本文视频版本#xff1a;见文末 引言 大家好#xff0c;我是老雷#xff0c;今天我想从GPU硬件原理出发#xff0c;给大家分享在图形渲…版权声明 本文为“优梦创客”原创文章您可以自由转载但必须加入完整的版权声明文章内容不得删减、修改、演绎本文视频版本见文末 引言 大家好我是老雷今天我想从GPU硬件原理出发给大家分享在图形渲染流水线中光栅化步骤的硬件原理从而帮助大家更好的理解图形学的底层原理以及渲染优化的底层逻辑。 好废话不多说我们先来整体看一下渲染流水线以及光栅化在渲染流水线中的位置和作用。 图形渲染流水线 光栅化英文Rasterization是图形渲染流水线中非常重要的一个步骤它位于顶点计算之后像素着色之前目的就是把顶点构成的三角形映射到屏幕的一个个像素点上。 但是在一个游戏场景中光栅化的压力是很大的。 我们知道游戏场景是由很多游戏元素构成例如玩家、怪物、宠物、道具、地形、植被、树木、房子等等这些模型少则几十、几百个三角面多则几千、上万个三角面每个三角面在经过光栅化以后又会被填充到多个屏幕像素上 因此光栅化的开销很大 但是不用怕我们的GPU就是为大规模计算而生的那么GPU是如何做到快速的光栅化计算的呢 这就需要掌握一些GPU底层的知识了。下面我将带着你一步一步揭开光栅化的底层面纱~ GPU架构 先看这幅图这是我们的GPU它由显存和许多计算单元组成。 显存Global Memory主要指的是在GPU主板上的DRAM类似于CPU的内存特点是容量大但是速度慢CPU和GPU都可以访问。 计算单元通常是指SMStream Multiprocessor流多处理器这些SM在不同的显卡上组织方式还不太一样。作为执行计算的单元其内部还有自己的控制模块、寄存器、缓存、指令流水线等部件。 GPC GPU包含若干个GPC它是Graphics Processing Cluster图形处理簇的缩写 不同架构的GPU包含的GPC数量不一样。以Maxwell架构为例它是由4个GPC组成 SM Maxwell的1个GPC有4个SM 不过这不是我们本次分享的重点大家要重点关注的是GPC里连接各个SM计算单元的光栅化引擎Raster Engine。另外连接每个GPC靠的是Crossbar例如某一个GPC计算完的数据需要另外GPC来处理这个分配就是靠的Crossbar。 光栅化跟GPU硬件的关系 再回到我们的问题那么光栅化跟上面的硬件有什么具体关系呢 首先为了平衡光栅化的负载压力Crossbar会根据一定策略将屏幕划分成多个区域块并重新分配给每一个GPC。这是Crossbar为屏幕划分区域块的示意图。 这里GPC接收到分配的区域后就交给光栅化引擎来负责这些三角形像素信息的生成。同时还会处理其他的一些渲染流水线步骤包括三角形裁剪、背面剔除以及Early-Z相关知识可以参考我的TA全栈项目。 GPU架构和渲染管线 接下来光栅化引擎将将Vertex Shader计算后存放在L1和L2缓存里面的数据加载出来 将插值好的数据转交给PolyMorph Engine的Attribute Setup模块 经过插值的数据填充到Pixel Shader的寄存器里供SM的运算核心做像素计算的时候使用 上面提到Crossbar会根据一定策略划分区域块实际上的划分可能比上图更加复杂我们来看一个实验 实验渲染SM_ID 那么问题来了 如果给每个SM分配一个[0,SM_COUNT-1]的WARP_ID 并将每个像素根据SM_ID渲染为不同亮度的红色SM_ID / (SM_COUNT-1) 你认为会得到什么渲染结果呢图中的绿色暂时忽略 这里我们以Geforce1080为例它有20个SM如果我们用不同亮度的红色表示不同的线程ID并且渲染由两个三角形构成的四边形面片就会得到这样的像素块效果。 在这里有几点值得注意 第一图中有20个亮度色阶说明有20个不同编号的SM 第二像素颜色不是连续变化的说明SM的划分并不是按编号顺序简单地依次划分而是由Crossbar重组后被光栅化器调度执行的 第三同一个色块内的像素如果分属不同三角形就会分给不同的SM进行处理。如果三角形越细碎分配SM的次数就会越多调度开销越大。 第四这里一个色块是8×8也就说明一个SM里运行了256个线程束 那么什么是线程束呢 什么是线程束 线程束英文WARP为了和线程数加以区分在容易产生歧义的地方我们统一用英文WARP而不用中文术语线程束 那么光栅化以后的像素是如何被并行计算也就是逐像素渲染的呢 在逻辑上一个线程执行一个Pixel Shader的核心函数也就是一个线程处理一个像素。 GPU将屏幕分成一个一个的2×2的像素块因为逻辑上一个Warp包含了32个线程也就是说一个Warp处理的是8个像素块这就解释了为什么上面我们看到的色块是8*8的。 思考如果渲染WARP_ID… 同理我们再以WARP_ID渲染为例你认为如果将每个像素根据SM_ID渲染为不同亮度的红色会得到什么结果 大家可以思考一下 思考题答案以及代码片段请回复“光栅化”获取 我是优梦创客的老雷一个14年经验的游戏公司主程和引擎架构师同时也是一位爱分享的游戏开发技术UP主 我会保持更新每月不少于2集、每年不少于26小时的干货视频 也欢迎你保持关注以获取我的最新更新 当然我也准备了几百个小时的技术美术教程分享欢迎了解 小结 最后我们对今天的分享做一个小结。今天我们 了解了光栅化在图形渲染流水线中的地位和作用知道了GPU、GPC、SM的关系也知道了SM、Warp、Thread的关系并且通过实践理解了光栅化在GPU中是如何被调度的 进阶 这里还有一些可以进阶学习的知识点在这里列出供同学们参考 GPU如何处理像素运算 在输出到渲染目标前GPU还会做哪些事情 移动平台的GPU跟桌面端有哪些不同 如何针对移动端GPU做优化 CPU和GPU在计算上有什么本质区别 如何编写高效能Shader代码
http://www.w-s-a.com/news/211122/

相关文章:

  • destoon 网站搬家中国企业500强都有哪些企业
  • 商城网站前端更新商品天天做吗哈尔滨做网站优化
  • 新乡网站开发wordpress 产品分类侧边栏
  • 网站自己做自己的品牌好做互联网企业分类
  • 项目网站建设方案石家庄网站快速排名
  • 网站开发大作业报告做电商网站的参考书
  • Apache局域网网站制作wordpress外链自动保存
  • 网站备案号要怎么查询千锋教育培训机构地址
  • 门户网站建设要求几款免费流程图制作软件
  • 花生壳域名可以做网站域名吗wordpress内链工具
  • 猎头公司网站模板网站伪静态作用
  • 工程建设教育网站html成品网页模板下载
  • 同一ip 网站 权重wordpress 菜单 小图标
  • 网站没有icp备案wordpress d8主题 4.1
  • 手机网站建设推荐企业宣传页模板
  • 杭州市富阳区建设局网站动态域名做网站
  • 网站如何免费做SEO优化靖安县城乡规划建设局网站
  • 室内设计网站平台学新媒体运营最好的培训学校
  • 招聘网站建设工作总结湘潭seo
  • 台山网站设计哈尔滨网站建设外包公司
  • 常州城投建设招标网站网页设计入门教学视频
  • 石家庄教育平台网站建设wordpress 访问量统计
  • 为什么买的网站模版不好用ftp网站建设
  • 做网站办公照片crm系统视频
  • 网站建设 招标文件南昌做网络推广的
  • 增城电子商务网站建设浙江省住房和城乡建设部网站
  • 企业网站宽度给多少手机软件开发公司排名
  • 装修设计网站哪个平台最好免费自助建站工具
  • 网站建设规划结构网站服务费怎么做分录
  • 哪里有做网站的公司微商怎么开店步骤