加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用顶点着色器的定点算术

发布时间:2020-12-16 07:02:35 所属栏目:百科 来源:网络整理
导读:如果我使用定点(或描述最小游戏单元的1的整数)来描述我的顶点向量,我如何设置OpenGL /本征变换来使用它?如果我在顶点着色器中执行此操作: gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(in_Position,1.0) 如果我将in_Position作为GL_
如果我使用定点(或描述最小游戏单元的1的整数)来描述我的顶点向量,我如何设置OpenGL /本征变换来使用它?如果我在顶点着色器中执行此操作:

gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(in_Position,1.0)

如果我将in_Position作为GL_INT的vec3传入,而我将矩阵作为GL_FLOAT传递给mat4,是否会进行正确的转换?是否有性能成本?

是否有可能将我的转换矩阵准备好定点?

这是通过2D游戏完成的,我认为这比使用3D更可行.我真的更喜欢准确性,因为当事物离原点很远时,大地图上的位置似乎会降低.我意识到我可能只能将对象位置变为整数,而顶点仍被描述为浮点数.但是,我认为我的碰撞方案可以更好地使用定点顶点.一般性能差异是什么?

解决方法

这将意味着一个int to float转换将惩罚你的表现.您应该在CPU到GPU复制时将in_Position转换为vec3.如果使用Matrix对象将它们存储在CPU上,则可以使用以下方法强制转换它们:

MatrixXf data_as_float = data_as_int.cast<float>();

然后使用data_as_float调用glBufferData.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读