C++游戏编程易疏忽错误(未完)

这里面碰到的错误都是博主曾经碰到的错误,记录下来只是为了让自己以后不再发生这种错误,可能对你有些帮助,因为博主学习的编程语言有点多,所以经常会把别的语言的特性一不小心就用在了C++里面,这种常见的错误,博主也会慢慢补充,这里的错误记录会在学习中慢慢补充。

1.字符串与数字不能直接用+拼接

  • C++不能像Java那样直接使用+号拼接
  • 1.
  • 通常都是使用格式化函数sprintf_s、 swprintf_s 、 sprintf  进行格式化
  • 2.
  • 还可以使用字符串流进行拼接
  • std::stringstream ss;
  • ss<<“sphere”<<i; i可以为其他类型,只要i的类型存在<<输出运算符就可以
  • ss.str( )将拼接好的字符串取出

2.当需要读取一个模型的数据时,注意存储索引变量类型的范围

  • 模型较大时,索引变量的范围可能没那么大,所以需要先去查询
  • 或者使用索引*数字进行操作,当读取一个点时,
    就可以{i*3+0,i*3+1,i*3+2}去写入,这样也可能越界
  • 有些人可能会像使用auto去自动识别,很抱歉也可能出错
  • auto 越界后,后面的会自动舍弃,比如像这样
auto自动舍弃
选择适合的类型
 

3.Direct X 12中使用深度模板渲染特效

  • DirectX 12中深度测试默认打开
  • DirectX 12中模板测试默认关闭,当需要模板需要写入时,设置好操作和比较方式后一定记得打开模板的写入
  • D3D12_DEPTH_STENCIL_DESC.StencilReadMask = 0xff; 深度模板读取
  • D3D12_DEPTH_STENCIL_DESC.StencilWriteMask = 0xff;深度模板写入

4.Direct X 12中顶点着色器输出来的为齐次裁剪空间的SV_POSITION

  • 齐次剪裁空间内的就是NDC坐标
  • NDC坐标X轴在-1~+1,Y轴在-1~+1,Z轴在0~1之间
  • 中心在屏幕的正中央

未经允许不得转载:他日重逢 » C++游戏编程易疏忽错误(未完)

赞 (2) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

隐藏
变装