Показать сообщение отдельно
Старый 30.10.2014, 17:35   #17
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Как наложить текстуру на полигон

Глянь эту функцию , так у меня в ксорсе материалы накладываются.

Function LoadDeferredMeshMeshPatch$,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
=xGetSurfaceDeChildDeSurfSel 
                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)
 
Ответить с цитированием