Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用高量程位置提高DirectX的精度? 我在C++中用DirectX 9创建了一个随机创建的小游戏,当玩家离3D起源很远(0,0,0)3D渲染变得非常不精确时,会产生一个问题,导致视觉问题。 我认为这是因为发送到着色器的值是浮点值,并且浮点值在增加时变得不那么精确。 我曾考虑过一个解决方案,移动所有模型,而不是移动相机,但这会增加计算量,我担心性能可能会下降_C++_Algorithm_Directx_Shader - Fatal编程技术网

使用高量程位置提高DirectX的精度? 我在C++中用DirectX 9创建了一个随机创建的小游戏,当玩家离3D起源很远(0,0,0)3D渲染变得非常不精确时,会产生一个问题,导致视觉问题。 我认为这是因为发送到着色器的值是浮点值,并且浮点值在增加时变得不那么精确。 我曾考虑过一个解决方案,移动所有模型,而不是移动相机,但这会增加计算量,我担心性能可能会下降

使用高量程位置提高DirectX的精度? 我在C++中用DirectX 9创建了一个随机创建的小游戏,当玩家离3D起源很远(0,0,0)3D渲染变得非常不精确时,会产生一个问题,导致视觉问题。 我认为这是因为发送到着色器的值是浮点值,并且浮点值在增加时变得不那么精确。 我曾考虑过一个解决方案,移动所有模型,而不是移动相机,但这会增加计算量,我担心性能可能会下降,c++,algorithm,directx,shader,C++,Algorithm,Directx,Shader,有办法解决这个问题吗 谢谢这是视频游戏行业中一个非常常见的问题 可以将生成的点钳制到固定网格,以防止舍入问题。然后,您可以调整网格的密度,以在精度不足和视觉故障之间获得适当的平衡 将原点放在地图的中心也很好。看看。问题可能是您达到了单精度浮点数的精度限制。有许多方法可以避免这些问题,这取决于您的设置和您遇到的特定问题;您可能会找到一个不需要严重性能影响的 根据你的问题,我怀疑你已经建立了一个具有任意原点的大世界,它被渲染为单个网格。如果它与您的安装兼容,您可能会考虑将您的世界分割成一组瓦片,每个

有办法解决这个问题吗


谢谢

这是视频游戏行业中一个非常常见的问题

可以将生成的点钳制到固定网格,以防止舍入问题。然后,您可以调整网格的密度,以在精度不足和视觉故障之间获得适当的平衡


将原点放在地图的中心也很好。

看看。

问题可能是您达到了单精度浮点数的精度限制。有许多方法可以避免这些问题,这取决于您的设置和您遇到的特定问题;您可能会找到一个不需要严重性能影响的

根据你的问题,我怀疑你已经建立了一个具有任意原点的大世界,它被渲染为单个网格。如果它与您的安装兼容,您可能会考虑将您的世界分割成一组瓦片,每个都有它自己的原点。这将把精度问题从点转移到矩阵上;因为附近的瓷砖和对象中的所有东西都离原点不远,这本身就可以解决问题

如果您仍然存在精度问题,那么使用双精度为每个瓷砖/对象生成一个矩阵要比为景观中的每个点调整坐标便宜得多


请注意,这确实会在从一个磁贴移动到另一个磁贴时引发切换原点的问题。这是不幸和恼人的,但如果你想要一个比你的浮点数还大的世界,那么这类事情可能是不可避免的

是的,这就是问题所在,但即使是有自己原点的小对象,我也会有这个问题,然后我会给相机和对象添加一个偏移量,使其保持在合理的范围内。哦,很好。我想知道确切的视觉问题是什么,事实上——更多的细节往往允许更多有用的建议!您链接的文章是关于深度模糊的。错误链接?如果真的有关联,请解释原因。@Suma对此表示抱歉。。。链接是错误的。。。我正在阅读链接的内容!是什么意思让人觉得这样的表情。。。也许这会有帮助!