forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Определить текстуру меша в определённой точке (http://forum.boolean.name/showthread.php?t=8511)

CRASHER 19.06.2009 18:50

Определить текстуру меша в определённой точке
 
Допустим плейн и на нём мульти текстуринг.
Мне известнк кордината на поверхности плейна, можно как нить определить на какой текстуре находится точка?
а? :)

ABTOMAT 19.06.2009 18:57

Ответ: Определить текстуру меша в определённой точке
 
определяй полигон к которому она относится, потом координаты UV его вершин и их же XYZ. По XYZ определяешь UV своей точки а дальше смотришь на текстуре пиксель на этом UV/
Точной формулы на этом компе нет.

CRASHER 19.06.2009 19:27

Ответ: Определить текстуру меша в определённой точке
 
Цитата:

определяй полигон к которому она относится, потом координаты UV его вершин и их же XYZ
Ну это просто)

Цитата:

По XYZ определяешь UV своей точки
вот сдесь затрудненье

Цитата:

а дальше смотришь на текстуре пиксель на этом UV/
а туту совсем темнота:) :) :)

Цитата:

Точной формулы на этом компе нет.
Ты типо счас на компе где нет примера?:)
тогда буду ждать

А у меня мысль, а если взать браш сурфа а потом из этого браша текстуру :) , вот только как узнать какая это текстура:4to:
интерестно если я эту текстуру проверю на совпадение с той текстурой которая была загружена и применена к сурфэйсу ответ труе будет?;)

tormoz 19.06.2009 20:04

Ответ: Определить текстуру меша в определённой точке
 
да.......

CRASHER 19.06.2009 20:08

Ответ: Определить текстуру меша в определённой точке
 
tormoz, меня восхищает краткость твоих ответов)))))
это ты про это?)))
Цитата:

интерестно если я эту текстуру проверю на совпадение с той текстурой которая была загружена и применена к сурфэйсу ответ труе будет?

Illidan 19.06.2009 22:35

Re: Определить текстуру меша в определённой точке
 
эмм... не понял... Разве к одному сюрфейсу можно одновременно применять несколько кистей на один слой?

CRASHER 21.06.2009 14:58

Ответ: Определить текстуру меша в определённой точке
 
Цитата:

По XYZ определяешь UV своей точки а дальше смотришь на текстуре пиксель на этом UV/
АВТОМАТ, поясни пожалст на счёт этого)

ABTOMAT 21.06.2009 15:05

Ответ: Определить текстуру меша в определённой точке
 
Щас пример наваляю

tormoz 21.06.2009 17:23

Ответ: Определить текстуру меша в определённой точке
 
UV нафиг не нужны.
Получаешь пиком сурфейс, с сурфейса браш, с браша текстуру (ры)
Далее можешь проверять по хендлу (если тексу грузил и накладывал программно), либо по имени текстуры (если текса грузицца вместе с моделью)

ABTOMAT 21.06.2009 17:39

Ответ: Определить текстуру меша в определённой точке
 
Вложений: 1
Дак нужно точку или саму текстуру?
З.Ы. С точками вот чё

CRASHER 21.06.2009 17:57

Ответ: Определить текстуру меша в определённой точке
 
Кульно)))) , но мне надо саму текстуру, проблема моя в том что я не особо наверно понимаю как мульти текстуринг происходит.
Вроде там поверхности создаются новые? да?
Ну вот мне то надо например текстур газона и земли, и определить гдеж чел то стоит на газоне или на траве)

ABTOMAT 21.06.2009 18:03

Ответ: Определить текстуру меша в определённой точке
 
Цитата:

но мне надо саму текстуру
Крап =)
Поверхности создаются если HWMultiTex = 0
Цитата:

Ну вот мне то надо например текстур газона и земли, и определить гдеж чел то стоит на газоне или на траве)
Делай тогда как сказал Тормоз, самый очевидный способ.

CRASHER 21.06.2009 18:31

Ответ: Определить текстуру меша в определённой точке
 
Код:

Brushe=GetSurfaceBrush(PickedSurface())
Texture=GetBrushTexture(Brushe)
If Texture=ground_tex Stop

вот так если програмно?

ABTOMAT 21.06.2009 18:49

Ответ: Определить текстуру меша в определённой точке
 
Да. Ещё можно на имя проверить.

CRASHER 22.06.2009 02:09

Ответ: Определить текстуру меша в определённой точке
 
Код:

ground_tex=LoadTexture("terrain1.jpg")

Cube=CreateCube()
PositionEntity(Cube,10,5,0)
ScaleEntity(Cube,5,5,5)
EntityType(Cube,1)
EntityPickMode Cube,2,1
EntityTexture Cube,ground_tex

CreateUser(Ruks,camera,0,8,0,0)

Enty=LinePick(EntityX(Cube,1)-10,EntityY(Cube,1),EntityZ  (Cube,1),10,0,0)

        Brushe=GetSurfaceBrush(PickedSurface())
        Texture=GetBrushTexture(Brushe)
        If ground_tex=Texture Stop

Странно, не работает :dontknow:

Mr_F_ 22.06.2009 11:14

Ответ: Определить текстуру меша в определённой точке
 
если мультитекстуринг то просто так тексу не пикнешь, по сути они все на меше же. надо знач тогда пикать пиксель как советовал АВТОМАТ, но пиксель маски, указывающей где трава а где тропинка (или че там), соотв чем он белее тем ближе к тексе в белых местах маски)

ABTOMAT 22.06.2009 14:57

Ответ: Определить текстуру меша в определённой точке
 
Короче, проще сделать другим способом :-D

tormoz 22.06.2009 20:39

Ответ: Определить текстуру меша в определённой точке
 
Цитата:

Сообщение от CRASHER (Сообщение 108573)
Код:

ground_tex=LoadTexture("terrain1.jpg")

Cube=CreateCube()
PositionEntity(Cube,10,5,0)
ScaleEntity(Cube,5,5,5)
EntityType(Cube,1)
EntityPickMode Cube,2,1
EntityTexture Cube,ground_tex

CreateUser(Ruks,camera,0,8,0,0)

Enty=LinePick(EntityX(Cube,1)-10,EntityY(Cube,1),EntityZ  (Cube,1),10,0,0)

        Brushe=GetSurfaceBrush(PickedSurface())
        Texture=GetBrushTexture(Brushe)
        If ground_tex=Texture Stop

Странно, не работает :dontknow:

вместо
EntityTexture
заюзай
PaintMesh

CRASHER 25.06.2009 00:39

Ответ: Определить текстуру меша в определённой точке
 
tormoz, если не сложно, конечно, пжалст дай рабочий код, у меня не выходит Ж((
Использую пэинт, он просит браш, гружу тексту как брашь, значит и проверка такая
Код:

If ground_tex=GetSurfaceBrush(PickedSurface()) Stop
Но стопа нэт :(

tormoz 25.06.2009 01:07

Ответ: Определить текстуру меша в определённой точке
 
Пример писать лень
Отладь, где именно не работает ?
не пикается, браш не тот возвращает ?

CRASHER 25.06.2009 01:52

Ответ: Определить текстуру меша в определённой точке
 
GetSurfaceBrush(PickedSurface()) возвращает что то, но не то.
изначальный ground_tex и возвращаемый GetSurfaceBrush(PickedSurface()) не совпадают

SBJoker 25.06.2009 11:10

Ответ: Определить текстуру меша в определённой точке
 
Хозяйке на заметку: команда stop работает лишь в режиме отладки ( Debug )

CRASHER 25.06.2009 12:46

Ответ: Определить текстуру меша в определённой точке
 
к слову без дебага я вообще никогда не запускаю.
И кслову стоп вне режима работает ))

ABTOMAT 25.06.2009 14:51

Ответ: Определить текстуру меша в определённой точке
 
Цитата:

Сообщение от SBJoker (Сообщение 109018)
Хозяйке на заметку: команда stop работает лишь в режиме отладки ( Debug )

Врёте, уважаемый ;)

SBJoker 25.06.2009 15:51

Ответ: Определить текстуру меша в определённой точке
 
Ну раз работает так это вообще отстой. Забудь так его убрать и всё... пользователи будут рады.

А нормальные компиляторы удаляют дебаг-директивы при компиляции.

tormoz 25.06.2009 18:15

Ответ: Определить текстуру меша в определённой точке
 
Цитата:

Сообщение от CRASHER (Сообщение 109003)
GetSurfaceBrush(PickedSurface()) возвращает что то, но не то.
изначальный ground_tex и возвращаемый GetSurfaceBrush(PickedSurface()) не совпадают

Значит пикаешь что то не то

CRASHER 29.06.2009 21:51

Ответ: Определить текстуру меша в определённой точке
 
Фьюууу ну неужелиии... сделал через текстур нейм:)
Я думаю AnyKey'щикам будет полезно;)
Код:

Global ground_textur3=LoadTexture ("terrain1.jpg")
Global Cube=CreateCube()
ScaleEntity(Cube,5,5,5)
EntityType(Cube,1)
EntityPickMode Cube,2,1
EntityTexture Cube,ground_textur3

Enty=LinePick(EntityX(Cube,1)-10,EntityY(Cube,1),EntityZ(Cube,1),20,0,0)
If Enty=0 Enty=LinePick(EntityX(Cube,1)-10,EntityY(Cube,1),EntityZ(Cube,1),-20,0,0)
peremen1=PickedSurface()
peremen2=GetSurfaceBrush(peremen1)
peremen3=getBrushTexture(peremen2)
If TextureName$(ground_textur3)=TextureName$(peremen3) Stop()



Часовой пояс GMT +4, время: 17:15.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot