Сейчас объясню.
Для начала расскажу, что ты сделал. Ты намоделил в Максе фургончик, сохранил его как 3дс и открыл в Милке. Либо сразу сделал в Милке и назначил одну группу сглаживания для всей модели. Это неправильно.
Во вложенном файле рисунок. На нем зелеными точками показаны вероятные местоположения вершин. Вершина, обведенная красным и есть проблемная. Вернее они там считай все проблемные. Объясню подробнее.
Аппаратное ускорение прорисовки трехмерной векторной графики основано на вершинах и треугольниках. Вершины задаются вершинными буферами, треугольники - индексными. В вершинном буфере хранятся данные обо всех вершинах, а каждая вершина обладает координатами по всем трем осям, координатами текстур, единичными векторами нормалей, возможно, цветом и ссылкой на текстуру, которой покрыт объект. Индексный буфер содержит номера вершин из вершинного буфера для рисования треугольников. Логично, что количество индексов в индексном дуфере должно быть кратно 3-м, т.к. треугольник состоит из трех вершин.
Нас интересует направление единичного вектора нормалей для каждой вершины. И проблема тут вот в чем. Для математической реализации затенения по методу Гуро, которое скрывается под названием Smooth Shadding практически во всех трехмерных редакторах и реализуется во всех играх, необходимо оперировать нормалями (т.е. перпендикулярами) к треугольникам. НО! В аппаратной реализации этого метода затенения нормали задаются для каждой вершины! Как же быть с таким несоответствием? А все просто! Для правильного затенения, например, плоского четырехугольника, нужно чтобы нормали всех вершин совпадали по направлению с нормалью к треугольникам. Но мы опять упираемся в проблему. Что если одна вершина является основанием для нескольких соседних треугольников? Оказывается тут тоже все просто. Нормали в таких точках усредняются. Это значит, что вычисляется вектор, являющийся векторной суммой векторов всех нормалей, которым принадлежит данная вершина. Затем мы полученный вектор нормализуем и используем. Но тут опять проблема!!! А что делать с такими случаями, когда вершина находится на углу, и при этом два соседних с этой вершиной треугольника находятся под прямым или острым углом друг к другу, изображая, например, стенку, или проем в кузове, как у автора? В стандартном случае после усреднения нормаль будет смотреть совсем не туда, куда хотелось бы. И затенение будет неправлильным. Как раз такая неправильная вершина показана красным кружком.
Теперь тоже самое, но чуть нагляднее.
На первой врезке то, как должна выглядеть стенка кунга машины. Синим показаны нормали. На втором показана как раз ситауция автора темы, где нормали усреднены. Делая вывод из всего вышесказанного сообщу, что система сэкономила на количестве растеризуемых вершин, пожертвовав реалистичностью освещения. А если мы не хотим жертовать? Как быть тогда? А очень просто, ведь для этого придумали группы сглаживания. Их всего 32 штуки, и они характеризуют как раз такие места, которые должны отличаться друг от друга по затенению. В частности, так должны отличаться друг от друга две поверхности кубика, или стены, находящиеся под углом в 90 градусов друг относительно друга. Они должны принадлежать к РАЗНЫМ ГРУППАМ СГЛАЖИВАНИЯ.
Вот мы и пришли к решению проблемы. На третьей врезке есть полигоны, показанные красным. Их надо назначить на одну группу сглаживания (например, первую), а оставшиеся полигоны, желтые, на другую группу (например, вторую). И тогда система поймет, что для этих групп сглаживания нужно выделить свои вершины со своими нормалями, усредненными только с треугольниками своих групп сглаживания. И все станет на свои места.
Удачи!
З.Ы. Такую длинную тираду я изверг не потому что люблю лекции читать, а потому что те, кто моделит, должны понимать механизмы рендеринга того, что они моделят, иначе будут вот такие вот глупые вопросы возникать. Не поленитесь и перечитайте, если не прочитали или не поняли. Потому как при возникновении вопроса по группам сглаживания, или касаущиеся групп сглаживания, буду посылать далеко, т.е. сюда. А вообще хорошо бы вам почитать SDK DirectX. Тогда поймете, откуда у трехмерной графики растут ноги.