Articles of 浮点

我如何查看R32G32B32纹理?

我有一个纹理与R32G32B32浮游物。 我使用DXGI_FORMAT_R32G32B32_FLOAT在D3D11中在程序中创建了这个纹理。 现在我需要查看纹理数据以进行debugging,但不会保存到除dds以外的任何内容 ,在debugging输出中显示错误:“找不到匹配的WIC格式,请将此文件保存到DDS”。 所以,我把它写到DDS,但我现在不能打开它! DirectX纹理工具显示“尝试打开该文件时发生错误”。 我知道纹理正在工作,因为我可以在GPU中读取它,并且颜色看起来正确。 如何在图像查看器中查看R32G32B32纹理?

JavaScript中的确定性计算

我想用HTML / JavaScript创建一个多人游戏,只在玩家之间发送用户input。 我阅读了C ++的一些文章,说我不能期望浮点在不同的二进制文件/机器上获得相同的结果。 我期望在JavaScript中情况不会好转。 我需要使用固定点吗? 假设定点是方法,我可以使用通过JavaScript公开的浮点函数来计算例如(估计倒数)平方根,然后应用类似于四舍五入的方法来获得决定论吗?

如何在遥远的相机处理浮点错误?

每当摄像机“远”(它的位置是一些“大”vector)时,在渲染物体时会产生麻烦:这是从减去2个浮点数之后经典的精度损失。 我知道这些方法: 使用双打进行投影/观看转换(在移动设备上可能不可行/可能), 在CPU上执行减法 (使用双精度或整数),并将对象的(相对)位置上传到着色器中。 然后将该位置vector添加到要在顶点着色器中变换的vector, 调整相机视图matrix或模型matrix 。 这些matrix然后在CPU上合并并上传。 这些方法如何比较? 我错过了其他一些方法吗?

如何在无限亚军游戏中重置世界,以防止溢出浮动?

我遵循Mike Geig的2D无限跑步者教程 。 但是,我看到一个潜在的溢出浮动问题 我怎样才能重新把所有的物体和相机重新回到原点? 我正在寻找的方法是类似的建议由大卫Debnar在这个问题上: http ://answers.unity3d.com/questions/491411/best-practices-for-endless-runner-type-games.html 绝对的球员。 这很容易,但为了防止浮动溢出,你应该把每一千个单位的数千个单位弹回来

将数字从单精度浮点表示转换为半精度浮点

希望这里有关。 我有一个代码,我必须在半精度浮点表示数字上工作。 为了达到这个目的,我创建了自己的C ++类fp16,所有与这种types相关的运算符(算术逻辑,关系)与我的自定义函数重载,同时使用具有半精度浮点数的单精度浮点数 。 半精度浮点= 1符号位,5个指数位,10个有效位= 16位 单精度浮点= 1符号位,8个指数位,23个有效位= 32位 那么我怎么做从单精度浮点数转换为半精度浮点数: 对于有效位 – 我使用截断,即从32位松散13位获得10位有效数字半精度浮点数。 我该怎么处理指数位。 我如何从8个指数位到5个指数位? 任何好的阅读材料都会有帮助。

在执行锁步时如何避免浮点不确定性?

我正在使用Java开发多人RTS游戏。 它使用锁步进行networking连接,这要求两台计算机都可以确定性地进行。 这些是我可以想到的最接近或者更可行的方法,但都有问题: 首先是使用int和long来表示所有玩家的位置和东西,并且完全不使用游戏模型中的浮点math。 我喜欢这个概念,但问题是当我需要一个平方根或余弦时会发生什么? 我将不得不基本上做一个完整的math库! 我还发现,我可以使用strictfp修饰符和StrictMath类与双打确定性math…我可以看到使用这个在我的游戏模型中创建确定性math。 这很容易出错,因为不小心超出了“严格”​​的范围。 另外我似乎无法弄清楚,如果序列化一个浮点数或double导致它失去其确定性。 我现在正在使用Kryo / Kryonet,但我似乎无法find任何信息,如果它是确定性与浮动或不(似乎无法find任何信息内置的Java序列化,或任何其他序列化库) 有没有人有任何建议,我可以如何解决这个问题?

很长的浮点数是个问题吗?

非常简单的问题,但很重要:我在C ++中使用浮点数('float')来处理移动速度,并且突然发疯了。 事实certificate,速度增加非常快,259614846795304004193338175520768.0。 这是一个典型(非双)浮点数的33位数字。 这怎么可能,并且会导致我的程序的其他部分出轨? 或者将这个数字简单地减less到浮点数通常具有的23位有效数字? (编辑:这不是一个寻找错误的问题,我只是想了解一个浮点数是如何保持如此庞大的精度(这不是一个指数,因为这只会在几个有效数字后留下零)。我不在我的代码中寻找缺陷,只是更好地理解浮点数的工作方式,以及如何发生这种情况) 编辑:解决scheme似乎是几个答案的位混合,所以我不知道谁分配为正确的答案。 浮点值显然是由指数分配的,这意味着某些数字可以非常大而不会失去精度,只要它们精确地指数为2即可。 我的。 我认为这个大小限制在23比特。 一旦我开始使用不是2的精确指数的variables,一切都变得疯狂了。 对于收音机的沉默感到抱歉,一旦我从各种答案中了解到浮点数,我不得不通过实验来弄清楚这一切。 我似乎无法closures这个问题。 有合适的通关人员可以closures吗? 感谢大家的帮助,现在我对浮点数更加开明了!

为什么不远离相机的物体会遇到浮点问题?

在Kerbal Space Program中,使用Unity,Floating origin技术制作的太空探索游戏可以解决浮点精度问题。 在地图视图中,每一帧都会在摄像机周围重新显示世界(缩小的天体缩小的空间),因此在观察遥远的行星时不会出现毛刺。 但是,如果从“不安全的距离”观察到这样的行星(缩放空间超过10 000个单位),它们仍然是正常的。 为什么不出现浮点问题?

什么是我可以使用浮动最大的“相对”水平?

就像地牢围攻和KSP这样的游戏一样,足够大的水平会因为浮点运算而开始出现小故障。 您不能添加1e-20到1e20不失准确性。 如果我select限制级别的大小,我该如何计算我的对象可以移动的最小速度,直到它开始波涛汹涌?

我如何将Bresenham的线algorithm推广到浮点端点?

我试图把两件事结合起来 我正在写一个游戏,我需要确定与浮点端点一致的网格。 此外,我需要它包括所有接触到的网格(即不只是Bresenham的线,而是蓝色的)。 有人可以告诉我如何做到这一点? 显而易见的解决scheme是使用天真线路algorithm,但有什么更优化(更快)?