Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- Direct12优化


第一章:向量代数
1、向量计算的时候,使用XMVECTOR(可以利用SIMD优点);类成员变量使用XMFLOAT2 (2D),XMFLOAT3 (3D),和XMFLOAT4 (4D) 。
2、向函数传递参数的时候(XMVECTOR可以直接传递到SSE/SSE2)前三个参数类型要定义为FXMVECTOR; 第四个要定义为GXMVECTOR; 第五个和第六个要定义为HXMVECTOR; 其他参数要定义为CXMVECTOR。


第二章:矩阵代数
1、用以计算的时候使用XMMATRIX类型;类的成员变量使用XMFLOAT4X4;
2、向函数传递参数时,规则和XMVECTOR一样;
3、上述规则对于构造函数是例外,构造函数一直使用CXMMATRIX,并且不要添加XM_CALLCONV。


第三章:变换
1、正交矩阵的逆矩阵和它的转置矩阵相等,所以计算起来更高效;
2、根据矩阵的乘法结合律,我们可以将多个变换矩阵合成为一个变化矩阵。


第四章:Direct 3D初始化
1、为了优化全屏模式下的性能,准确匹配显示模式就很重要,比如刷新频率。


第五章:渲染流水线
1、类成员变量XMCOLOR,计算时使用XMVECTOR;
2、128位颜色用来进行高精度的计算,这样算法上的错误积累就少很多;最终颜色一般保存为32位(在back buffer中也通常是32位),当前的物理显示设备无法体现128位颜色的好处;


第六章:在Direct3D中绘制
1、如果PS上裁切像素,尽可能早clip掉,因为这样像素不会进行后面的PS计算;
2、对于硬件优化,一个像素片段是有可能直接跳过像素着色器,比如(early-z rejection),但是在有些情况

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值