Sep 06, 2016 22:20
В принципе-то, решение уже было. Я постил чей-то видос с ним. Но руки дошли только сейчас.
01. Берем LP (LowPoly то есть), накатываем SmoothShading (в T-панели) и AutoSmooth (в ObjectData).
02. Отмечаем острые грани (Ctrl+E -> Mark Sharp) Сразу видим насколько лучше стал шейдинг.
03. Делаем развертку (не знаю надо ли еще соблюдать требование, что бы линии развертки шли по SharpEdges, но на всякий случай соблюдаем. Тем более что они не обязательно по всем Sharp Edges должны идти. Когда, и если, возникнет проблема с этим, можно поэкспериментировать)
04. Дублируем модель (можно в объектом режиме, можно в режиме редактирования - не суть), обзываем HP (HighPoly то есть) и назначаем Edge Crease = 1 всем формообразующим острым граням. (Фактически, тем же, которые мы пометили как Sharp Edges)
05. Накатываем на HP сколько надо SubSurf'а и видим, что Edge Crease не дает сабсурфу ее деформировать. Но все же, в некоторых местах SubSurf, едва заметно, но меняет геометрию. Поэтому если совсем хочется абсолютной идентичности, накатываем на LP перед экспортом ShrinkWrap c включенной галочкой KeepAboveSurface
06. Загружаем обе модели в xNormal и отмечаем галочку MatchUV. И, в принципе, все - можно запекать. Нормали получаются ровненькие, "Как бык посцал" (с)
07. Все.
P.S. Эх, мне бы эти знания лет пять назад. Когда я бился лбом об эти нормали, шейдинг, автосмуз, шарп эджес, хард эджес и прочие ужасно сложные и непонятные тогда понятия.
P.P.S Кстати, да, - есть мнение, что не все движки способны понимать Sharp Edges. Поэтому реализовать их можно еще одним способом, ("физическим",а не виртуальным) - просто разбить острые грани на две. То есть, сделать части сетки разделенные острой гранью изолированными друг от друга.
Это делается либо модификатором Edge Split (никогда его не использовал - хз как он работает) либо руками. Эффект будет почти такой же. Проблема только в том, что это приведет к Coincident Vertiсes. Но, с другой стороны, на дворе 2K16 год, а ваш движок, блять, пучит и корячит от совпадающих вертексов. Идите в жопу и в этой жопе засуньте ваш движок уже в свою жопу. Рекурсивно епт.
xnormal,
blender3d,
cg