Processing 局部轴旋转OBJ导入处理
我正在尝试从maya绕maya中的轴旋转OBJ。它在球体上工作得很好,但在我自己的物体上——它在沿着轨道运行。也许我不了解形状(参数)Processing 局部轴旋转OBJ导入处理,processing,Processing,我正在尝试从maya绕maya中的轴旋转OBJ。它在球体上工作得很好,但在我自己的物体上——它在沿着轨道运行。也许我不了解形状(参数) 对象如下:取出这行代码: shapeMode(CENTER); 出于某种原因,这行代码导致了您看到的偏移量。我不确定这到底是为什么会导致偏移,但摆脱它似乎可以解决您的问题 在Processing editor附带的示例中,有一个加载和显示3d形状的简单示例。只需转到File>Examples,然后转到Basics>Shape>LoadDisplayOBJ凯文是
对象如下:取出这行代码:
shapeMode(CENTER);
出于某种原因,这行代码导致了您看到的偏移量。我不确定这到底是为什么会导致偏移,但摆脱它似乎可以解决您的问题
在Processing editor附带的示例中,有一个加载和显示3d形状的简单示例。只需转到
File>Examples
,然后转到Basics>Shape>LoadDisplayOBJ
凯文是对的,部分问题是shapeMode(中间)。
此外,您可能需要再次检查网格是否在编辑器中居中。
我已经在Blender中导入了您的网格,虽然在比例上存在差异,但几何体的原点不是0,0,0
这里有一个调整版的你的。和。手动平移网格使其更靠近中心后从Blender导出:
PShape s;
float theta = 0;
void setup() {
size(500, 500, P3D);
s = loadShape("coral.obj");
}
void draw() {
background(32);
lights();
float z = 0;
pushMatrix();
translate(width * .5,height* .5);
rotateY(theta);
theta += .01;
scale(50.0);
shape(s, 0,0);
popMatrix();
}
此外,您可以手动计算网格边界框和质心以围绕该位置动态观察,或者查看提供此功能的库
PShape s;
float theta = 0;
void setup() {
size(500, 500, P3D);
s = loadShape("coral.obj");
}
void draw() {
background(32);
lights();
float z = 0;
pushMatrix();
translate(width * .5,height* .5);
rotateY(theta);
theta += .01;
scale(50.0);
shape(s, 0,0);
popMatrix();
}