у тебя в коде ты после пика перебираешь все сюрфейсы объекта, создаёшь объекты со всеми их тексами, затем назначаешь currtex имя последней в each-переборе тексы)
чето ты замутился
попробуй так:
Graphics3D 800, 600, 32, 2
camera = CreateCamera()
AmbientLight 255, 255, 255
;testmesh loading==========
testl = LoadMesh( "map.b3d" )
PositionEntity testl, 0, 0, 10
EntityPickMode testl, 2
;======================
currtex$=""
While Not KeyHit(1)
;texture detection==========
playerf_pick = CameraPick( camera, MouseX(), MouseY() )
If PickedEntity() = testl Then
level_surface = PickedSurface()
level_brush = GetSurfaceBrush( level_surface )
level_material = GetBrushTexture( level_brush, 0 )
currtex$=TextureName(level_material)
EndIf
;======================
UpdateWorld
RenderWorld
;draw current texture name===
Text 10, 300, currtex$
;======================
Flip
Wend
End
код не тестил, но вроде правильно должно быть
не секу че ты там хотел с типами сделать
сравнивай узнанный texturename с базой и узнавай материал
texturename лучше избавлять от пути, в примерах блица была функция StripPath$
---
H@NON опередил)