Akavir Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 (изменено) Столкнулся с проблемой игрового движка Морроувинда, когда при прозрачности частей меши виден нижний слой меши, очень давно. Отчасти её смог решить, а от части нет. Это называю по-разному: проблема альфа-блендинга или альфа-канала, перекрывающиеся альфа-каналы, накладывающиеся альфа-каналы. Но суть одна и та же. Когда-то давно Gagatek пыталась объяснить мне суть ршения, но потом внезапно исчезла. Я остался наедине с проблемой. В ходе многочисленных опытов я нашёл более-менее действенные способы, благодаря которым лишь немногая часть причёсок появилась на свет, поверьте их было больше, гораздо больше. И даже те, которые пявились имеют многочисленные глюки в плане альфа-канала. Вот что мне удалось узнать от kakashisensei2000. Его моды, где он отучил три причёски от тестирования альфы. http://www.tesnexus.com/downloads/file.php?id=26644http://www.tesnexus.com/downloads/file.php?id=26116http://www.tesnexus.com/downloads/file.php?id=18573 Each case is slightly different. The tools I use are nifskope and 3ds max + nif import/export plugin. First, import nif to 3ds max, then export nif, toggle generate strips option. Another way to do this is stripify in nifskope. The results can sometimes be the same or different. You will most likely experience buggy polygons with this. This is usually a problem when there are two overlapping hair elements that are exactly the same. You need to delete the element that is causing the problem. What I do in 3ds max is move 1 element so they don't overlap and then save it. I check in nifskope which one is causing the problem. Then I go back and delete that element But this does not work all the time. It is very complicated case by case. The correct sequence is sometimes needed. В кратце, он использует отчасти метод, который использую и я, подгонка частей модели, чтобы альфы просто не перекрывались. Определённого универсального способа нет, поэтому танцуем... Но меня это не устроило, ведь Gagatek сделала причёску без глючных альфа-каналов при этом не удалив не одной части и не изменив геометрии модели. Я разрыл старую переписку: my model has all the parts merged in one niTrishape..., но следующие сообщение перед её исчезновением было такое: Do you know about overlapping alphas? If not i can tell you how to fix more/less them. I mean - the "texture problem" you mentioned loong time ago on your vampi wig - in fact it was overlapping alpha problem. It's common with wigs. как вы поняли, секрета я так и не узнал. Но я нашёл её пост на www.psychodogstudios.com где Growlf обсуждал свои физические волосы http://www.psychodogstudios.com/forums/showthread.php?t=4988 и там она решив помочь отчасти описала способ: I'm not sure if it'll be of much help to you... but this is little something I've just discovered with mesh exported for Morrowind: Wig with overlapping alphas: http://img267.imageshack.us/img267/445/11a9ym3.th.jpg and the same wig, in which I flipped the normals on the overlapping part only: Maybe there's a chance that if normals (all, inner and outer) will be flipped on the overlapping part, the invisibility will be fixed! Actually the overlapping layer was double-sided! What I'm trying to say: on the first screenie you have two layers of drawn hair (or more, but only two are overlapping). Each of these layers has faces - and normals - on both sides, like this: <=||=>. All I did was flipping normals on one layer from <=||=> to >=||=< - and it helped! I have no idea why, but I tried it with two more parts of the above wig, and even with a piece that had also normals (and faces) on both sides, and was outstanding from the wig at the 90 degrees angle. Before flipping it was overlapping on the right side, after - on the left. Like the normals were different on one side than on another. Хочу добавить, что проблема будет решена и для Oblivion и FAllout 3Всё то хорошо, конечно, но я суть метода не понял, объясните? то, что в конце жирным шрифтом. Изменено 23 августа, 2009 пользователем Akavir Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 Всё то хорошо, конечно, но я суть метода не понял, объясните? то, что в конце жирным шрифтом.Хм. Насколько я понял, надо отразить нормали на одном из перекрывающихся участков. То есть в максе выбираем полигон, и где Surface Properties нажимаем Flip.Хмм... Надо будет попробовать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 (изменено) Хм. Насколько я понял, надо отразить нормали на одном из перекрывающихся участков. То есть в максе выбираем полигон, и где Surface Properties нажимаем Flip.Хмм... Надо будет попробовать. А по подробнее. Попробуешь, напишишь здесь подробнее описание и со скринами, пожалуйста, вопрос жизни и смерти. Вообще хочется узнать теорию этого способа и практику, я так давно ждал этого, приду вечером за комп и сам попробую. Но у меня не такой большой опыт. Ещё и Майк бы подключился, вообще классно было бы. Изменено 23 августа, 2009 пользователем Akavir Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 елыпалы<=||=> to >=||=< это оригинально Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 (изменено) елыпалы<=||=> to >=||=< это оригинально Может кто-нибудь мне объяснит!!! Майк! Я понял, что каждый из слоёв причёски имеет грани и нормали с двух сторон, то есть <=||=>. Всё что надо сделать нажать flip, выбрав полигон и так как у полигона есть только одна сторона, то полигон поменяется сторонами на >=||=<, то есть отразим карты нормали? То есть выворачиваем слой наизнанку. Изменено 23 августа, 2009 пользователем Akavir Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 да, но это ничего не меняет Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 (изменено) да, но это ничего не меняет В каком смысле? Это не работает? Но как не могу понять, у меня в теме две причёски, где она всё объединила в один нитришейп и воспользовалась эти методом, там дофига слоёв было и ни одного перекрывания теперь. Это Allura hair и Veronica hair вроде бы Изменено 23 августа, 2009 пользователем Akavir Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 (изменено) вот именно, ни с копией меша на том же расстоянии, ни со сдвигом на 0,01 но я все целиком фигачу, а не по одному полигону >_< Изменено 23 августа, 2009 пользователем Майк Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 вот именно, ни с копией меша на том же расстоянии, ни со сдвигом на 0,01 но я все целиком фигачу, а не по одному полигону >_< Ну да, сдвиг и копия для NiZBuffer нужны, а морику он противопоказан в активном состоянии. Ну и что ты хочешь сказать этим, надо сначала разделённые части отразить, а потом уже их аттачить навсегда друг к другу? Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 не, не для з-буфера копия нужна, чтоб изнанка была нужно копию с инвертом нормалей сделать или через стенсил рисовать обе стороны Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 хыhttp://s58.radikal.ru/i160/0908/23/32718c8ed1f7t.jpghttp://i050.radikal.ru/0908/79/ad6707edbdb8t.jpghttp://i030.radikal.ru/0908/15/996dadeee6bbt.jpghttp://s11.radikal.ru/i183/0908/07/b6ea902d48b7t.jpghttp://s60.radikal.ru/i169/0908/6c/567c4130365ct.jpg ёпты, шаманство нафиг, короче твои иностранные источники были правы, что надо флипать полигоны в модели, это аналог моей идеи что надо резать сетку на полупрозрачные и не полупрозрачные части, ну короче в ЛС помнишь наверно, и на страничке по Ф3 что не опубликована собственно экпортируешь модель, и спотришь, обычно с одной стороны (левой если на модель спереди смотреть) будет все нормально с блендингом, со второй стороны будет альфа-баг, там где это дело произошло надо эти полигоны флипнуть, но только их, и сетку не разрезать, ну а дальше скрины, хотя кой-какие баги я уверен останутся, это же не з-буфер... фпрочем надо смотреть на более сложной модели типа твоих Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 *Не усидел на стуле, убежал проверять* Спасибо Майк! А главное, для Fallout 3 работать будет? Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 23 августа, 2009 Жалоба Поделиться Опубликовано 23 августа, 2009 теоретически да, стенсил там работает Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 23 августа, 2009 Автор Жалоба Поделиться Опубликовано 23 августа, 2009 работает с геометрией любой сложности!!! Майк спасибо!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 25 августа, 2009 Автор Жалоба Поделиться Опубликовано 25 августа, 2009 (изменено) Не всё так просто оказалось. Да это работает со сложной геометрией, но не со всей одинаково хорошо. 1. Вообще работает, как с моделью, где все части объединены в один нитришейпп, так и со множеством нитришейпов, у каждого из которых отражены нормали 2. Бывает нужно взять только конфликтующие части, и их нормали отразить, а не аттачить всё подряд, включая уши, и уже потом отражать. 3. Иногда бывает хуже чем, если даже ничего не далать. Во всяком случае, этот способ решил проблему, которую не мог решить не один из других моих способов. Завтра финалный тест возможностей и будет приведёнпример с картинками, если всё получится. Изменено 25 августа, 2009 пользователем Akavir Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 28 августа, 2009 Жалоба Поделиться Опубликовано 28 августа, 2009 (изменено) ждем и надеемсо слух, а попробуй потом на объект Edit Normals повесить и на границе, где полики инвертнуты нормалям сделать Break, тогда теоретически не будет той серой хни, что потом триангуляцией правится Изменено 28 августа, 2009 пользователем Майк Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 30 августа, 2009 Автор Жалоба Поделиться Опубликовано 30 августа, 2009 После долгих испытаний могу сказать, что с двумя-тремя накладывающимися альфами я справится вполне могу, но с 4четырьмя и более будет тем сложнее, чем больше альфа каналов. Я, наверное выбрал не самый лучший пример. Эти волосы для испытаний оказались очень сложны с просто невероятной для меня геометрией - длинные непростые волосы со множеством накладывающихся на друг друга альф, а в игре с безумной анимацией из мигающих альфа-каналов. Я решил проблему с перекрытием альфы в уже цельной модели, которая ещё до моих ручек была целой, но с перекрывающейся альфой, следующим образом. Я решил делить геометрию причёски на элементарные части и каждую из них уже отражать по средством модификатора normal. C двумя-тремя каналами, я повторюсь, всё работает прекрасно, но я не могу предусмотреть перекрытие остальных слоёв, например модель из 6-7, может вполне конфликтовать первый и последний. Но явно хорош способ, которым я теперь и пользуюсь, отражение по средством преобразования части модели в EditPoly и нажатия уже там непосредственно flip, нужно знать, что надо обеспечить просвет всем слоям, то есть первый отразили, который идёт ниже отразили, затем ещё нижний, но самый нижний отражать не надо. Дойдя до не него, преобразовывайте его в Editmesh, жмите на вершины, затем attach, и выберайте по очери от нижнего к верхнему. Потом экспортировать. Именно этим способом сделана причёска на скриншотах. Но обязательно надо проверять всё в нифоскопе, потому что иногда альфа возьмёт и перекроется! Ссылка на комментарий Поделиться на другие сайты Поделиться
Seatroll Опубликовано 30 августа, 2009 Жалоба Поделиться Опубликовано 30 августа, 2009 Ты их выкладывал, вроде они не так уж и плохо смотрятся в игре :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 30 августа, 2009 Автор Жалоба Поделиться Опубликовано 30 августа, 2009 Ты их выкладывал, вроде они не так уж и плохо смотрятся в игре :) Там я много танцевал с NiZBuffer и тестирование альфы, а эти как надо, то есть никаких двадцати с лишним кусков модели и анимации из альфа-каналов в игре. Ссылка на комментарий Поделиться на другие сайты Поделиться
Майк Опубликовано 31 августа, 2009 Жалоба Поделиться Опубликовано 31 августа, 2009 анимации из альфа-каналов в игречего-чего О_о Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 31 августа, 2009 Автор Жалоба Поделиться Опубликовано 31 августа, 2009 (изменено) чего-чего О_о Это я так перекрытие называю, когда видна то нижняя часть модели, то верхняя Изменено 31 августа, 2009 пользователем Akavir Ссылка на комментарий Поделиться на другие сайты Поделиться
GKalian Опубликовано 27 сентября, 2009 Жалоба Поделиться Опубликовано 27 сентября, 2009 хы<..>А для Морровинда это работает? Я пробовал..но что-то не вышло. Может не так делал.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 28 сентября, 2009 Автор Жалоба Поделиться Опубликовано 28 сентября, 2009 А для Морровинда это работает? Я пробовал..но что-то не вышло. Может не так делал.. Да, работает вроде, вот прича по этой технологии сделана http://planetelderscrolls.gamespy.com/View...ail&id=7902, там очень много перекрывающихся альф было Ссылка на комментарий Поделиться на другие сайты Поделиться
GKalian Опубликовано 28 сентября, 2009 Жалоба Поделиться Опубликовано 28 сентября, 2009 Это я понял.. ладно, буду пробовать, разбирать твою модель на части. Спасибо. Там я много танцевал с NiZBuffer и тестирование альфыНапример? Настройки не сообщишь? Ссылка на комментарий Поделиться на другие сайты Поделиться
Akavir Опубликовано 28 сентября, 2009 Автор Жалоба Поделиться Опубликовано 28 сентября, 2009 Например? Настройки не сообщишь? NiZBuffer на двигле морика может быть только активен или неактивен, вот в Oblivion его можно настраивать. Но в твоих причёсках нельзя использовать низбуфер, они у тебя идут как цельная модель, а тут он безполезен. Он может помочь, когда причёска состоит из множества кусочков, как в моих старых причёсках, там я активно использовал низбуфер.А про альфа-тестирование ты всё прекрасно знаешь и сам думаю, я видел у тебя причёски тестируются в плане альфы. Разборка моей модели на кусочки тебе не поможет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти