This does not work for some reason

Blitz3D Forums/Blitz3D Programming/This does not work for some reason

Yue(Posted 2014) [#1]
Graphics3D 640,480,0,2
SetBuffer BackBuffer()

camera=CreateCamera()

light=CreateLight()
RotateEntity light,90,0,0

; Load mesh
crate=LoadMesh("Plataforma_1.b3d")
PositionEntity crate,0,0,100

; Get mesh surface
surf=GetSurface(crate,1)

; Get surface brush
crate_brush=GetSurfaceBrush(surf)

; Get brush texture
crate_tex=GetBrushTexture(crate_brush,0)

While Not KeyDown( 1 )

	RenderWorld

	; Display full texture name
	Text 0,0,"Texture name, as returned by TextureName$():"
	Text 0,20,TextureName$(crate_tex)
	
	; Display trimmed texture name
	Text 0,40,"Texture name with path stripped:"
	Text 0,60,StripPath$(TextureName$(crate_tex))

	Flip

Wend

End

Function StripPath$(file$) 

	If Len(file$)>0 
	
		For i=Len(file$) To 1 Step -1 
		
			mi$=Mid$(file$,i,1) 
			If mi$="\" Or mi$="/" Then Return name$ Else name$=mi$+name$ 
		
		Next 
	
	EndIf 
	
	Return name$ 

End Function



Do not return the name of the texture I try to recover, just returns nothing.

any suggestions.


Guy Fawkes(Posted 2014) [#2]
Yue, as RemiD kindly reminded me in my thread to grab texture names in an array, use the following from this link:

http://www.blitzbasic.com/Community/post.php?topic=101442&post=1205263

Code:



Haven't tested this because I wrote it out in a codebox, but it SHOULD work if you follow the directions from within the code correctly! ^_^

Hope this helps!

Good luck with your project!

Sincerely,

~GF


Yue(Posted 2014) [#3]
Thanks You :)

The problem here in my models, so far I find that for every texture have my model is a surface set, however, was looking on the surface that had no texture assigned.

Local Superficie%[2]
Local Brush%[2]

Local TexturaVector%[2]
Local TexturaNormal%[2]
Local TexturaSpecular%[2]

Local S%

For S% = 1 To CountSurfaces(Plataforma1.Mesh\Malla)
	
	Superficie[S%] = GetSurface(Plataforma1\Malla,S%)
	Brush[S%]     = GetSurfaceBrush(Superficie[S%])
	
	
    TexturaVector[S%] = GetBrushTexture(Brush[S%],0)
	SetCubeMode TexturaVector[S%],2
	SetCubeAlign TexturaVector[S%],Bombillo.Luz\TipoLuz%
	
	
	
	TexturaNormal[S%] = GetBrushTexture(Brush[S%],1)
	
	SetCubeMode TexturaNormal[S%],2
	
	
	
	
	TexturaSpecular[S%] = GetBrushTexture(Brush[S%],4)
	
	SetCubeMode TexturaSpecular[S%],2
	SetCubeAlign TexturaSpecular[S%],Bombillo.Luz\TipoLuz%
	
	
	
	
	
Next 


AmbientLight 32,32,32




Guy Fawkes(Posted 2014) [#4]
Yea, this code only works if the texture data is in the model and the files are in the same folder as the model.