|
3D-программирование Вопросы, касающиеся программирования 3D мира |
30.10.2014, 16:46
|
#16
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Как наложить текстуру на полигон
Сообщение от ABTOMAT
Вообще я бы посоветовал посмотреть в сторону LoadAnimMesh, он не объединяет в один Entity. Правда, не знаю, что там у него по поводу того, когда "одинаковые" браши находятся внутри одного Entity. Но в твоём случае ты сможешь самостоятельно всё объединить, при этом не растеряв браши.
|
У него абсолютно тоже самое.
16777439 вариантов кистей, это на один меш. Неважно где он будет, отдельно моделька или из дочерних сцены.
По этому есть резон заранее определить текстуры и настройки брашей и использовать во всех сценах.
Можно по совету Тормоза второй вариант попробовать (см. выше) но мне лень, раз работает так то и ладно
|
(Offline)
|
|
30.10.2014, 17:35
|
#17
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Как наложить текстуру на полигон
Глянь эту функцию , так у меня в ксорсе материалы накладываются.
Function LoadDeferredMesh( MeshPatch$,Shadows=0) ;DeMesh=xLoadMeshWithChild(MeshPatch$) DeMesh=xLoadAnimMesh(MeshPatch$) For ChiCo=0 To xCountChildren(DeMesh) DeChild=xGetChild(DeMesh,ChiCo) If DeChild<>0 DeSurfCou=xCountSurfaces(DeChild) For DeSurfSel=0 To DeSurfCou DeSurf=xGetSurface( DeChild, DeSurfSel ) If DeSurf<>0 SurfaceBrush=xGetSurfaceBrush(DeSurf) SurfaceBrushTexture=xGetBrushTexture(SurfaceBrush,0) SurfaceBrushTextureName$=xTextureName$(SurfaceBrushTexture) m.DeferredReciver= New DeferredReciver m\mesh=DeSurf m\ShadowsState=Shadows xSetSurfaceEffect DeSurf, DeferredMeshShader m\Surface=1 xSurfaceTechnique (DeSurf, "NormalMap",0);NormalMap DebugLog SurfaceBrushTexture+" "+SurfaceBrushTextureName$ If SurfaceBrushTexture=0 xSurfaceEffectTexture DeSurf,"tAlbedo",DefaultTexture,0,0 Else xSurfaceEffectTexture DeSurf,"tAlbedo",SurfaceBrushTexture ,0,0 EndIf If Instr(SurfaceBrushTextureName$,".JPG") Normals$=Replace$(SurfaceBrushTextureName$,".JPG","_N.JPG") Spec$=Replace$(SurfaceBrushTextureName$,".JPG","_S.JPG") Emi$=Replace$(SurfaceBrushTextureName$,".JPG","_B.JPG") EndIf If Instr(SurfaceBrushTextureName$,".PNG") Normals$=Replace$(SurfaceBrushTextureName$,".PNG","_N.PNG") Spec$=Replace$(SurfaceBrushTextureName$,".PNG","_S.PNG") Emi$=Replace$(SurfaceBrushTextureName$,".PNG","_B.PNG") EndIf If Instr(SurfaceBrushTextureName$,".TGA") Normals$=Replace$(SurfaceBrushTextureName$,".TGA","_N.TGA") Spec$=Replace$(SurfaceBrushTextureName$,".TGA","_S.TGA") Emi$=Replace$(SurfaceBrushTextureName$,".TGA","_B.TGA") EndIf If Instr(SurfaceBrushTextureName$,".DDS") Normals$=Replace$(SurfaceBrushTextureName$,".DDS","_N.DDS") Spec$=Replace$(SurfaceBrushTextureName$,".DDS","_S.DDS") Emi$=Replace$(SurfaceBrushTextureName$,".DDS","_B.DDS") EndIf NormSize=xFileSize(Normals$) SpecSize=xFileSize(Spec$) EmiSize=xFileSize(Emi$) If NormSize<>0 xSurfaceEffectTexture DeSurf,"tNormals",xLoadTexture(Normals$),0,0 Else xSurfaceEffectTexture DeSurf,"tNormals",DefaultNormal,0,0 EndIf If SpecSize<>0 xSurfaceEffectTexture DeSurf,"tSpecular",xLoadTexture(Spec$),0,0 Else xSurfaceEffectTexture DeSurf,"tSpecular",DefaultSpecular,0,0 EndIf If EmiSize<>0 xSurfaceEffectTexture DeSurf,"tBright",xLoadTexture(Emi$),0,0 Else xSurfaceEffectTexture DeSurf,"tBright",DefaultBright,0,0 EndIf EndIf Next EndIf Next Return DeMesh End Function
|
(Offline)
|
|
17.11.2014, 22:55
|
#18
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Как наложить текстуру на полигон
tirarex, у тебя текстуры с моделью в одной папке лежат?
У меня всё работает на хорсе пока не уберу текстуры.
Если текстуры в другой папке, находит браш, но не видит текстуру:
Весь смысл этой затеи был именно хранить модели отдельно от текстур.
Как узнать имя браша?
P. S. Нашёл в хорсе новую команду xGetSurfaceTexture, всё равно не помогло, текстуры как буд-то нет.
P. P. S. А почему вложение сейчас исчезло? Загрузил по новой.
|
(Offline)
|
|
18.11.2014, 09:31
|
#19
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Как наложить текстуру на полигон
Сообщение от Arton
tirarex, у тебя текстуры с моделью в одной папке лежат?
У меня всё работает на хорсе пока не уберу текстуры.
Если текстуры в другой папке, находит браш, но не видит текстуру:
Вложение 21154
Весь смысл этой затеи был именно хранить модели отдельно от текстур.
Как узнать имя браша?
P. S. Нашёл в хорсе новую команду xGetSurfaceTexture, всё равно не помогло, текстуры как буд-то нет.
P. P. S. А почему вложение сейчас исчезло? Загрузил по новой.
|
Я пытался запилить материалы в одной папке а модельки в другой но в ходе экспериментов оказалось что если текстура не лежит с загружаемой моделью , никакой информации о ней при загрузке и использовании нет. Сурфейсы будут то без текстур.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.11.2014, 16:05
|
#20
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Как наложить текстуру на полигон
Сообщение от tirarex
никакой информации о ней при загрузке и использовании нет.
|
Во мне интересно КАК это получается??? (вопрос не к тебе конкретно)
Значит такое сработало только с блицем, жаль.
Так что насчёт браша? Как его имя узнать, браш хорс находит. Вопрос в целом не важный, но всё же интересный.
(похоже не как)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:38.
|