假设我有一个网格。并希望使用以下内容将其放置在3D模式中:
holygrail : {
rating: pg,
regal : {times : 1, 3, 5},
amc : {times : 2, 4, 6}
}
这些数字是多少?我确定x不是5像素。例如:
mesh.position.set(5, 5, 5);
确实会返回5,但这是棘手的地方。
我正在使用光线投射器,以便使用以下命令了解鼠标在哪个位置(归一化坐标系或像素):
mesh.position.x
但是我怎么说5等于这个像素数呢?在这方面的任何帮助将不胜感激。
答案 0 :(得分:0)
使用A B C X Y Z
A X 1 1 NA NA
A Y 3 NA 3 NA
A Z 3 NA NA 3
A Z 2 NA NA 2
时,必须使用归一化的坐标,因此,从Raycaster.setFromCamera()
开始,它似乎已经转换为坐标。 3D世界的度量单位无关紧要,射线将计算它是否与您的对象相交。尝试关注this example in the docs。
要回答您的原始问题,Three.js和WebGL本身就是“无单元的”。您可以假装以英寸,米为单位,无论您想要的是什么。单位重要的唯一实例是[-1, 1]
,其中单位是像素和无单位的混合,因为您要处理HTML元素。