Войти
Уголок tool-программФорум

Нюансы при экспорте из 3DS MAX (комментарии)

Страницы: 1 2 3 Следующая »
#0
14:31, 23 апр. 2006

Нюансы при экспорте из 3DS MAX (комментарии)

Это сообщение сгенерировано автоматически.


#1
13:09, 25 апр. 2006

Hax
Может вопрос не совсем по теме, но я уже не знаю где ещё спросить:( Как ты компилировал плагин, так что работает и в 6ом и 7ом максе? У меня получается следующая штука, плагин работает только с той версией макса от которой был сдк. В остальных случаях он либо просто не грузится, либо все падает при экспорте.
В плагине используется IGame, возможно дело в этом?

#2
14:48, 25 апр. 2006

Мы не используем IGame. Плагин, откомпилированный с любым 3ds max 5.0-7.0 sdk работает с 3ds max 5.0-8.0. Ничего специального для этого я не делал.

#3
22:38, 26 апр. 2006

спасибо, приятно читать было

#4
14:21, 28 апр. 2006

DROnik
В solution'е делаешь несколько проектов ( для каждой версии Макса ), настраиваешь пути и при внесении добавления в код перекомпилируешь версии плагина для нужных версий Макса. Справедливости ради отмечу, что в последнее время от этого отказались и используется одна версия Макса по указанию лид-дизайнера.

Hax
Красные вершины можно использовать, но при анимации их приходиться сохранять отдельно, как морфинг. Хотя в подавляющем большинстве анимаций разницы между мягкой и "красной" привязками не видно, наши аниматоры за красную привязку встали горой.

За статью спасибо.

#5
14:38, 28 апр. 2006

Вы сохраняете 4000 кадров, на каждом 3000 красных вершин, как позиции вершин?

#6
23:01, 3 мая 2006

>>3DS MAX предоставляет доступ к позициям вершин и треугольникам, но не к нормалям вершин.

  Mesh mTriangles=Info->mTriObject->GetMesh();
  mTriangles.checkNormals(true);

  Face *Faces=mTriangles.faces;      
      ...
      Point3 rNrm=mTriangles.getNormal(Faces[f].v[i]);
      RVertex *cVertex=&mTriangles.getRVert(Faces[f].v[i]);
      if(cVertex->ern)
      {
                for(uinteger n=0; n<(cVertex->rFlags&NORCT_MASK); n++)
          if(cVertex->ern[n].getSmGroup()==Faces[f].smGroup)
          {
            rNrm=cVertex->ern[n].getNormal();
            break;
          };
      };

      Point3 cNrm=Matr.VectorTransform(rNrm);
      cGroupe->cStream.Normal[cV[i]].v[0]=cNrm.x;
      cGroupe->cStream.Normal[cV[i]].v[1]=cNrm.z;
      cGroupe->cStream.Normal[cV[i]].v[2]=cNrm.y;
      cGroupe->cStream.Normal[cV[i]].Normalize();
Мало того что макс хранит нормали вершин, дак ещё и не по одной нормали на оную, а для каждой смуф группы.
#7
23:05, 3 мая 2006

А так неплохая статья...

#8
23:32, 3 мая 2006

3DS MAX SDK help:
------- cut ---------
class RNormal

Description:

The 'rendered' normal class. RNormals are stored as unit vectors in object space. An instance of this class is maintained by the RVertex class since the RVertex is what gets rendered (lit), and the lighting methods need to know about the normals. All methods of this class are implemented by the system.

>Note: This class is used internally by 3ds max. Developers who need to compute face and vertex normals for a mesh should >instead refer to the Advanced Topics section Computing Face and Vertex Normals.
------- cut ---------

#9
16:25, 22 мая 2006

Да, статья действительно хорошая.

Мы тут затеяли переработать систему материалов для движка и...

У максовского объекта есть поле User Defined, а у материала такого нет.
Как сделать нечто подобное User Defined для материалов, для задания им дополнительных свойств?

#10
4:06, 17 июня 2006

>У максовского объекта есть поле User Defined, а у материала такого нет.
>Как сделать нечто подобное User Defined для материалов, для задания им дополнительных свойств?

Вот, наткнулся случайно:

http://www.jonseagull.com/downloads.shtml#notes

Прошло более 7 месяцев
#11
20:23, 21 янв. 2007

MO, Hax - я так и не понял, к какому вы выводу пришли по поводу интерфейса RNormals.
Ведь в этом куске написано,
>Note: This class is used internally by 3ds max. Developers who need to compute face and vertex normals for a mesh should instead refer to the Advanced Topics section Computing Face and Vertex Normals.
Т.е. именно этот класс юзает макс для отображений нормалей, и значит чтобы получить картинку 1:1 как в максе нужно именно его и использовать? А разрабу, которому нужно РАСЧИТАТЬ нормали - см такой-то топик.
так или нет?

#12
3:09, 22 янв. 2007

Да, всё правельно. Но использовать расчитанные нормали я смысла не вижу. Художник нарисует одно, а в приложении будет совсем другое, ибо нормаль для расчета освещения это совсем даже не математическая нормаль к поверхности в данной точке. В максе даже есть специальный модификатор который позволяет ручками поправить каждую конкретную нормаль (очень удобно и полезно, особенно для лоу поли). Нормали которые использует 3ds для расчета освещения (точнее их используют классы материалов) какраз находятся в интерфейсе RNormals. Что касается приписочки в документации, то как я понимаю это всеголишь предупреждение о нестабильности интерфейса (т.е. он может менятся и может быть несовместим от версии к версии), плюс ссылка на то как можно расчитывать нормали если очень не хочется использовать RNormals.

#13
13:48, 22 янв. 2007

>Т.е. именно этот класс юзает макс для отображений нормалей, и значит чтобы получить картинку 1:1 как в максе
>нужно именно его и использовать? А разрабу, которому нужно РАСЧИТАТЬ нормали - см такой-то топик.
>так или нет?

Мы используем ATI Normal mapper. Для того, чтобы полученные normal maps работали без артефактов, игра должна использовать  нормали, которые использует Ati normal mapper при рассчете normal maps. Normal mapper при экспорте в NMF нормали пересчитывает, и поэтому мы пересчитываем точно по такому же алгоритму, как и в исходниках normalmapper.
Соответсвенно, наш плагин игнорирует нормали 3DS MAX, и модификаторы для редактирования нормалей.

#14
17:26, 22 янв. 2007

Ага, спасибо, понял. И за статью спасибо :)

Страницы: 1 2 3 Следующая »
Уголок tool-программФорум

Тема в архиве.