2015-04-09 2 views
1

Я работаю над очень удивительным проектом iOS. И я решил использовать sceneKit в качестве основной Framework. У меня проблема:SceneKit: как обновить SCNGeometrySource

Как обновить SCNGeometrySource узла, когда я применяю к нему анимацию?

+0

Что вы пытаетесь оживить? –

+0

Я делаю очень, очень анимацию: «[self.ship runAction: [SCNAction moveByX: 10 y: 0 z: 30 duration: 10]];». Но SCNGeometrySource моего узла, не обновляет его значения. Это моя проблема. – user2724028

+0

- это 'self.ship' узел или геометрия или источник геометрии? –

ответ

1

Это ожидаемое поведение. Когда вы перемещаете узел, он не изменяет данные точки для прикрепленного объекта геометрии. То же самое верно для преобразований.

Вместо этого данные точек в геометрии (и источнике геометрии) всегда относятся к самой геометрии.

При визуализации сцены позиция и преобразование узла (и его родительский узел) используются для создания единственной матрицы преобразования, которая преобразует положения и нормали геометрии из «модельного координатного пространства» в " просмотреть координатное пространство "и проецирует его на экран .


1: Это небольшое упрощение, но нет никакой необходимости быть технической, OpenGL при описании того, как работает эта трансформация. Если вы действительно хотите прочитать обо всех задействованных шагах, «пространство клипов», «разделение перспективы» и «нормализованное пространство устройства» - это некоторые ключевые слова, которые вы можете искать.

+0

, поэтому я не могу обновить геометрию. А если у меня есть анимация в файле .dae? – user2724028

+0

Если анимация перемещает модель вокруг, она, скорее всего, должна быть прочитана из источника сцены и применена к узлу. –