Processing 局部轴旋转OBJ导入处理

Processing 局部轴旋转OBJ导入处理,processing,Processing,我正在尝试从maya绕maya中的轴旋转OBJ。它在球体上工作得很好,但在我自己的物体上——它在沿着轨道运行。也许我不了解形状(参数) 对象如下:取出这行代码: shapeMode(CENTER); 出于某种原因,这行代码导致了您看到的偏移量。我不确定这到底是为什么会导致偏移,但摆脱它似乎可以解决您的问题 在Processing editor附带的示例中,有一个加载和显示3d形状的简单示例。只需转到File>Examples,然后转到Basics>Shape>LoadDisplayOBJ凯文是

我正在尝试从maya绕maya中的轴旋转OBJ。它在球体上工作得很好,但在我自己的物体上——它在沿着轨道运行。也许我不了解形状(参数)


对象如下:

取出这行代码:

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();
}