1

假设我有一个简单的立方体模型。(它比立方体更复杂,但为了讨论的目的,我们将简化。)

所以当我在 Sketchup 中时,立方体是 Xmm × Xmm × Xmm,其中 X 是一个整数。然后我导出一个 Collada 文件,然后将其加载到 threejs 中。

现在,如果我查看几何边界框,这些值是浮点数,而不是整数。

所以现在假设我将立方体彼此相邻放置,并且在 1 像素之间留出一小块空间。因为屏幕不能画半个像素,所以有时看到一个像素,有时看到两个,导致不均匀。

如果我能以某种方式让导入的模型具有整数维度,我想我可以令人满意地解决这个问题。从 Sketchup 开始,我可以完全访问模型的所有部分,因此过程中的任何一点都是公平的。

是否可以?

谢谢。

澄清:我的应用程序将有两个视图。与此相关的视图是使用直视碎片的 OrthographicCamera,因此这实际上是 2D 视图。出于这个问题的目的,在导入模型后,它应该看起来像一个正方形网格,中间有均匀的间距。

更新:除非您能提供实际答案,否则请不要回复。如果我需要帮助找到完成某事的方法,我会发布一个新问题。对于这个问题,我只想知道是否可以将导入的 Collada 模型与全像素对齐,如果可以的话如何。在这一点上,这主要是为了满足我的好奇心并增加我对什么是可能的和不可能的知识。感谢社区的帮助。

4

2 回答 2

0

现在您必须学习有关 3D 编程的知识:数字没有任何意义 :)

在现实世界1mm中,2.13cm100Kg指定可以测量和复制的东西。但是对于绘图库来说,这些数字没有任何意义。

在绘图库中,3D 点始终用 3 个浮点值表示。您将点提交到库,它会将它们转换为 2D 点(它们必须在 2D 表面上查看),最后将这些 2D 点传递给光栅化器它将浮点值转换为整数值(屏幕具有NxM像素分辨率,两者都是整数)NM为实际像素着色。

你的问题根本不是问题。一个立方体1mm真的没有任何意义,因为如果你正在设计一个天文应用程序,那个物体永远不会被看到,但如果它是一个微观物体,它甚至会比屏幕大得多。重要的是点的坐标和整个应用程序的规模

现在回到你的立方体,不要试图插入1px两个相邻的立方体之间。您的立方体是根据 定义的mm,因此请尝试选择mm适合您的世界的距离,并让光栅化器完成其工作并将它们转换为像素。

于 2012-09-23T09:33:56.367 回答
0

两位同事告诉我,我追查到这确实是不可能使用正常手段。

于 2012-09-28T03:17:12.060 回答