forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как наложить текстуру на полигон (http://forum.boolean.name/showthread.php?t=5534)

BlackDragon 09.01.2008 20:23

Как наложить текстуру на полигон
 
У меня есть объект, состоящий из множества полигонов, на один из полигонов (или группу смежных полигонов) мне надо нанести текстуру, я немогу придумать как это реализовать.
И второй вариант вопроса: не просто нанести, а еще сблендить ее с основной текстурой объекта.

Halk-DS 14.01.2008 04:22

Ответ: Как наложить текстуру на полигон
 
Попробуй в 3д максе виделить нужные тебе полигони и приминить команду Detach с параметром "As objekt" Потом кликни Мап модифер и експортируй ети обьекты как два разных меша! Если б точнее описал ситуацыю, можно былоб сказать поточнее!

Черный крыс 14.01.2008 09:01

Ответ: Как наложить текстуру на полигон
 
Вопрос надо задавать конкретнее...ибо неясна поставленная задача.
Возможные ответы - в 3д максе - если нада затекстурить например террайн.
- в Блитце - если нада динамично текстурить обьект, например крепить декали.
если нужны подробности - описывай проблемму полностью, ибо телепаты как всегда отдыхают на канарах....

BlackDragon 14.01.2008 23:32

Ответ: Как наложить текстуру на полигон
 
в Блитце нада динамично текстурить обьект, т.е. у меня есть объект, я знаю конкретный полигон, на который хочу наложить текстуру.

moka 14.01.2008 23:38

Ответ: Как наложить текстуру на полигон
 
BlackDragon, смотри в справке по работе с сюрфейсами. Будет относительно создания вершины.
В общем есть 3 текстурные координаты, но третья всегда нуль, поэтому координат 2 ;) UV.
Далее, чтобы правильно наложить (на плоский полигон), нужно вычеслить нормаль и разложить модель на плоскость, тебе помогут функции VertexNX и т.п. :) Дерзай ;)
Да и в полном наборе примеров под блиц, был пример с наложением.

tormoz 15.01.2008 00:40

Ответ: Как наложить текстуру на полигон
 
Мока, не усложняй простые вещи :)

1 вариант
Отделить полигон в отдельный объект. Наложить на него текстуру в максе и настроить текстурные координаты.
В Блитце найти объект финдчилд-ом по имени и текстурить когда нужно
2 вариант
Наложить на выделенный полигон (группу полигонов) отдельный материал с текстурой и настроить текстурн. координаты.
В блитце найти этот сурфейс по имени тектуры (наложенной в максе) и текстурить

Arton 30.10.2014 04:22

Ответ: Как наложить текстуру на полигон
 
Вложений: 2
Пишу здесь что бы не создавать новую тему.

Хотел сделать накладывание текстуры на нужные сюрфейсы, находя имя текстуры на самих поверхностях меша.
Сделал, но работает странно, находятся только 2 первые текстуры, понять что не так не смог :(

В максе (2008-й) 3-й и 4-й брашь помечены красным (именно они и не находятся), это что означает?
Вложение 21093

Код поиска:


"StripPath$" — функция которая обрезает путь.

PHP код:

Function Texturing_Surface(mesh)


    
ContSurf CountSurfaces (mesh)

        For 
i=1 To ContSurf
            Surf 
GetSurface (meshi)

                            
SurfBrush GetSurfaceBrush (Surf)
                            
BrushTex GetBrushTexture (SurfBrush)
                            
TexName$ = StripPath$( (TextureName$ (BrushTex)) )

                            
DebugLog "Texture name = " TexName$

                            
Tex LoadBrush ("Texture\"+TexName$)
                            BrushFX Tex,16
                            PaintSurface Surf,Tex
                            FreeBrush Tex

        Next


End Function 



Исходники — Вложение 21094, тут 3 варианта модели, по умолчанию стоит плоскость, для наглядности, и её .max-файл.

ABTOMAT 30.10.2014 10:11

Ответ: Как наложить текстуру на полигон
 
К сожалению, нет возможности запустить исходник.

Если загрузить модель в Блице то на ней все 4 сурфейса отображаются так, как задумано?

Дебаг-лог в студию.

Arton 30.10.2014 13:41

Ответ: Как наложить текстуру на полигон
 
Вложений: 4
Цитата:

Сообщение от ABTOMAT (Сообщение 288758)
К сожалению, нет возможности запустить исходник.

Вложение 21098

Цитата:

Если загрузить модель в Блице то на ней все 4 сурфейса отображаются так, как задумано?
Конечно, всё работает.
Вложение 21095

А после функции становиться таким, нашлись только 2:
Вложение 21096

Цитата:

Дебаг-лог в студию.
Какой лог, я не использую Хорс :)
Разве что так:
Вложение 21097

ABTOMAT 30.10.2014 14:21

Ответ: Как наложить текстуру на полигон
 
Вывел contsurf в дебаг и заметил одну вещь:

Если я положил в папку с моделью текстуры, то находит 4 сурфа.
А если текстур рядом с ней нет, то два.

Видимо, блиц, если не находит текстур рядом с мешем, стремится объединять сурфы. Сурф с корой не объединился, видимо, потому что ему другие флаги были в Максе выставлены, не такие как веткам.

Так что таки да, если текстур рядом не лежит, то будет два сурфейса. Вот такие пироги.

Arton 30.10.2014 16:02

Ответ: Как наложить текстуру на полигон
 
Вложений: 1
Цитата:

Сообщение от ABTOMAT (Сообщение 288770)
Сурф с корой не объединился, видимо, потому что ему другие флаги были в Максе выставлены, не такие как веткам.

Зашибись! Действительно зависит от настроек кисти.

Вот от всех этих настроек включая флаги и бленды:
Поправка, зависит от любых настроек кисти:
Вложение 21099
Получается на один меш могу заюзать максимум 21-у кисть, в общем-то более чем достаточно, но настраивать целый уровень в максе проблематично.
Проблем нет :-)

ABTOMAT 30.10.2014 16:11

Ответ: Как наложить текстуру на полигон
 
Похоже, блиц смотрит, что все параметры двух брашей совпадают, и поэтому их объединяет. Если текстуры загрузить невозможно, то факт, что они разные, игнорируется.
Вообще, не скорее всего, а так и есть. Но я не читал исходник в этом месте, поэтому слово "точно" не употребляю.

Эх, старичок Блиц умишко свой куцый показывает. Ему в файле 4 сурфейса дали, он самовольно сделал 2. Умнее автора себя считает. Не люблю это в движках и вообще в ПО.

Arton 30.10.2014 16:17

Ответ: Как наложить текстуру на полигон
 
Цитата:

Сообщение от ABTOMAT (Сообщение 288774)
Похоже, блиц смотрит, что все параметры двух брашей совпадают, и поэтому их объединяет. Если текстуры загрузить невозможно, то факт, что текстуры разные, игнорируется.

Бредово.
Спасает количество кистей — 16777439 вариантов.

ABTOMAT 30.10.2014 16:22

Ответ: Как наложить текстуру на полигон
 
Цитата:

Сообщение от Arton (Сообщение 288775)
Бредово.
Спасает количество кистей — 16777439 вариантов.

Ну не бредово, но неприятно.
Например, какой-нибудь нуб наделал в Максе кучу раздельных объектов, скажем, тысяч пять, и удивляется, почему тормозит. Чтоб такого не было, видимо, и сделано объединение, чтобы хотя бы в части случаев исключить идиотство юзера. Это, наверное, даже оправданно, учитывая, сколько всякого разного говна и с каких помоек скармливали бедняге Блицу за всю его историю. Но не дали возможность отключить — это минус.
Много всякого софта любит умишко свой куцый показывать, и Блиц — не исключение.

ABTOMAT 30.10.2014 16:37

Ответ: Как наложить текстуру на полигон
 
Вообще я бы посоветовал посмотреть в сторону LoadAnimMesh, он не объединяет в один Entity. Правда, не знаю, что там у него по поводу того, когда "одинаковые" браши находятся внутри одного Entity. Но в твоём случае ты сможешь самостоятельно всё объединить, при этом не растеряв браши.


Часовой пояс GMT +4, время: 05:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot