1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Экспорт нормалей в соотвествие с группами сглаживания

Тема в разделе "MAXScript", создана пользователем Phoenics, 8 ноя 2006.

Модераторы: Savin Denis
  1. Phoenics

    Phoenics Пользователь сайта

    С нами с:
    16.12.2005
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    2
    Здравствуйте уважаемые форумчане!

    Пишу экспорт-импорт геометрии. Столкнулся со следующей проблемой, в данный момент скрипт которым я пользуюсь экспортит нормали следующим образом:

    format "normals \n" to:file01
    for j=1 to vnum do
    (
    local p01=[0,0,0]
    p01=GetNormal selection[1].mesh j
    format "% " p01.x to:file01
    format "% " p01.y to:file01
    format "%\n" p01.z to:file01
    )

    Однако он это делает не совсем верно. Все модели выглядят так как будко к ним применена одна группа сглаживания. Например кубик выглядит как подушка.
    К сожалению сейчас у меня есть только старый и до безобразия урезанный 3dmax6 у которого даже хэлпа нет, но то что SDK. Возможно кто-то из уважаемых форумчан знает как правильно экспортнуть нормаль с учётом групп сглаживания, и поделится свои знанием?

    Зарание благодарен.
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Не удивительно ты пытаешся одной нормалью описать угол куба, а там сколько их
    должно быть ?
    Правильно от 3 до 6 ти, столько сколько фейсов соединены с этой точкой

    Правильно будет смотреть по фейсам, у одного фейса есть три угловые точки со своими нормалями:

    meshop.getFaceRNormals <Mesh mesh> <int faceIndex> node:<node=unsupplied>

    Returns a three element array of the render normals for the face’s three vertices. If <mesh> is a node, or if <mesh> is an Editable Mesh or a Mesh value and node is specified, the position is in the current coordinate system context. If <mesh> is an Editable Mesh or a Mesh value and node is not specified, the position is in the mesh’s local coordinate system.

    meshop.getFacesUsingVert <Mesh mesh> <vertlist>

    Returns a bitarray of size=(#faces in mesh) with bits set for all faces that use the specified vertices.

     
  3. Phoenics

    Phoenics Пользователь сайта

    С нами с:
    16.12.2005
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    2
    Спасибо за ответ. Попробую разобраться
     
Модераторы: Savin Denis

Поделиться этой страницей