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

【C++游戏引擎开发】第19篇:Compute Shader实现Tile划分

一、Tile划分的数学基础

1.1 Tile尺寸的几何分析

1.1.1 屏幕空间离散化原理

设屏幕分辨率为 W × H W \times H W×H,Tile尺寸为 T w × T h T_w \times T_h Tw×Th,则Tile总数为:
N t i l e s = ⌈ W T w ⌉ × ⌈ H T h ⌉ N_{tiles} = \lceil \frac{W}{T_w} \rceil \times \lceil \frac{H}{T_h} \rceil Ntiles=TwW×ThH
当选择 T w = T h = 32 T_w=T_h=32 Tw=Th=32时,在1080p分辨率下将产生:
N t i l e s = ⌈ 1920 32 ⌉ × ⌈ 1080 32 ⌉ = 60 × 34 = 2040  tiles N_{tiles} = \lceil \frac{1920}{32} \rceil \times \lceil \frac{1080}{32} \rceil = 60 \times 34 = 2040 \text{ tiles} Ntiles=321920×321080=60×34=2040 tiles

1.1.2 局部工作组尺寸优化

Compute Shader的local_size配置需满足:

T w × T h = local_size_x × local_size_y × K T_w \times T_h = \text{local\_size\_x} \times \text{local\_size\_y} \times K Tw×Th=local_size_x×local_size_y×K

其中 K K K为执行批次系数,现代GPU建议取16的倍数

1.2 视锥体插值算法

1.2.1 透视投影参数化

定义Tile在NDC空间的边界:
{ x m i n = − 1 + 2 i N c o l s x m a x = − 1 + 2 ( i + 1 ) N c o l s y m i n = − 1 + 2 j N r o w s y m a x = − 1 + 2 ( j + 1 ) N r o w s \begin{cases} x_{min} = -1 + \frac{2i}{N_{cols}} \\ x_{max} = -1 + \frac{2(i+1)}{N_{cols}} \\ y_{min} = -1 + \frac{2j}{N_{rows}} \\ y_{max} = -1 + \frac{2(j+1)}{N_{rows}} \end{cases} xmin=1+Ncols2ixmax=1+Ncols2(i+1)ymin=1+Nrows2jymax=1+N

相关文章:

  • Cursor可视化大屏搭建__0420
  • 软件功能测试和非功能测试有什么区别和联系?
  • 【同济】高等数学6.7.8版答案
  • 1+X: Python程序开发职业技能等级要求(初级)练习资料分享
  • 软件工程师中级考试-上午知识点总结(下)
  • 基于OKR的企业管理数字化实践——以围棋教育机构流程优化为例
  • 【数字图像处理】图像纹理分析
  • 基于STM32的HX711货物称重系统
  • QT文件和文件夹拷贝操作
  • NetApp ONTAP 9 故障磁盘更换操作指南
  • 《零基础入门学习Python》
  • OpenGL shader开发实战学习笔记:第十二章 深入光照
  • Linux指令合集
  • C++ STL:从零开始模拟实现 list 容器
  • ACWing——算法基础课
  • 棉花糖实验新解
  • Linux-scp命令
  • 3DMAX 常用渲染器对比及渲染 101 云平台优势
  • (EtherNet/IP 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 存储器综合:内存条
  • 全总:五一拟表彰全国劳模先进工作者2426名,盛李豪入选
  • 周继红当选中国泳协主席,曾为国摘得首枚奥运跳水金牌
  • 著名电化学家、我国工业电化学奠基人之一郭鹤桐逝世
  • 国务院国资委:推动央企强化资金统筹,确保及时付款
  • 在历史上遭到起诉的杀人动物记录中,为什么猪如此普遍?
  • 杜甫、韦应物背后的世家大族,在这个展览上一览传奇