Показать сообщение отдельно
Старый 03.11.2009, 16:43   #5
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Работа с материалами

у тебя в коде ты после пика перебираешь все сюрфейсы объекта, создаёшь объекты со всеми их тексами, затем назначаешь 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 опередил)
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
H@NON (03.11.2009), HorNeS (03.11.2009)