|
3D-программирование Вопросы, касающиеся программирования 3D мира |
07.08.2006, 15:09
|
#1
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Декали (дыры от пуль, кровь...)
Здарова!!! Вот уже где то 2 месяца у меня это проблема! Уже несколько раз на форумах была эта тема, но я так и непонял двух вещей!
1) Если рисовать декаль (дырку от пули) на текстуре, то как сделать что бы она не ресовалась по 100 раз, т.е. только единожды когда текстура повтаряется!
2) Если делать спрайтами (т.е. определять то место где колизит пуля со стеной и там создавать спрайт...), то как сделать что бы та часть спрайта каторая свисает не рисовалась (т.е. допустим когда в край стены стреляешь....)
Пожалуйста помогите!!! Если кто-то вопроса непонял, я попробую обьяснить еще раз. Спасибо!!!
|
(Offline)
|
|
07.08.2006, 15:28
|
#2
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
хммм... насколько я помню текстуры там можно накладывать в разные слои... затекстурировать объект... и наложить в другой слой большую текстуру, чтоб она не повторялась и на ней рисовать дырки... (поправьте меня если я в чем ошибся)
(как вариант замутить неповторяющююся текстуру...)
а со спрайтами наверное не получится... хотя можно повыкручиваться, создать клетчатую модель спрайта, и рисовать только клетки которые будут соприкосаться со стеной... но это теория... думаю врядли на практике получится...
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
07.08.2006, 15:50
|
#3
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
SubZero Сасибо тебе конечно!!! Но ты можешь обьяснить поподробнее про текстуру??? Немнога непонял. А спрайты я небуду нарное юзать так как тормозовая штука )))
|
(Offline)
|
|
07.08.2006, 15:53
|
#4
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
SubZero P.S. а как сделать что бы текстура (2-ая) не повторялась, и как воопще применять это к *b3d мешам? (ScaleTexture texture,TextureWidht(),TextureHeight()????
|
(Offline)
|
|
07.08.2006, 16:11
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
Декали всегда делались спрайтами.
Делай меньше размер спрайта. Незабывай его выранивать по нормали колиизии + минмальный сдвиг вперёд
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
07.08.2006, 18:58
|
#6
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
декали всегда делались спрайтами
|
а как же тогда боротся с тем что бы они не свисали при попадании в край стены? метод сетки мне ненравится, очень памяти надо много!
|
(Offline)
|
|
07.08.2006, 19:17
|
#7
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
1 вариант - делаешь унврап развертку на 2 слой уровня, накладываешь пустую текстуру с тщательно подогнанными координатами (очень сложно, но теоретически реально) потом рисуешь в эту текстуру (расчитав предварительно в какое место рисовать)
Преимущества - следы будут на любом месте уровня, независимо от углов и тд.
Недостатки - очень трудоемко и сложно реализовать
2 вариант: созаешь 100 - 200 квадов с наложенной текстурой декали в составе одного меша. При попадании, изменением координат вершин квада ставишь его в нужное место , а изменением альфы вертексов - проявляешь.
При превышении количества "заготовок", просто берешь переставляешь самый первый.
Для проверки выхода за угол можно написать спец функцию и сдвигать квад. чтобы не вылазил.
Преимущества - хорошее быстродействие (всего 400-500 треугольников), легкость реализации.
Недостатки - некоторая "неточность" следов, одинаковый внешний вид
__________________
|
(Offline)
|
|
08.08.2006, 00:23
|
#8
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
tormaz спасибо за инфо, но ПОЖАЛУЙСТА скажите мне, КАКОЙ ЛУЧШЕ СПОСОБ? Какой способ менее тормозной а какой более производительней!!! Что бы я точно знал над чем мудится!
|
(Offline)
|
|
08.08.2006, 00:25
|
#9
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
tormoz а помойму в халфе первом чтото подобное да?!
|
(Offline)
|
|
08.08.2006, 02:55
|
#10
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
В шуттерах как правило используют первый способ.
Нужен уровень. смоделенный по определенным правилам (только не спрашивайте - каким, я так этот саособ до ума и не довел, моделить не умею настолько хорошо)
Использовал второй - шустро бегает.
Функция определения "края" объекта - самое сложное тут.
__________________
|
(Offline)
|
|
08.08.2006, 07:43
|
#11
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
Блин, юзаю второй способ!!! че то невыходит!!!!! Квады ето я так понял плоский меш формы прямоугольника так? И куда их лепить, сразу в картостройке сделать? Мляяяя!!! tormoz если я тебе еще ненадоел, то можешь разжувать еще раз второй метод!!! Если можно то попроще! А то я воще дырявый блин, нех... недоганяю!!! А штука мине оч нужная, в бущем оч пригадится!!! Pleaseeeee!!!!!
P.S. Взаимно помогу всем кто поможет ( и помог) с Музыкой и Звуком для игр!!! (я Музыкант... )) ) Кому надо обращайтесь!!!
|
(Offline)
|
|
08.08.2006, 12:13
|
#12
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
2Tormoz:
Недостатки - некоторая "неточность" следов, одинаковый внешний вид
|
Одинаковость однотипных декалей как раз решается. Ничто не мешает сделать текстуру для квадов с несколькими нарисованными "в рядок" декалями и смещать текстурные координаты вертексов так, чтоб каждый следующий квад получал свою часть текстуры с соответствующей декалью. А кроме сдвига, можно практиковать еще и поворот UV координат вокруг условного центра текстурных координат квада... а менять "размеры" квада при позиционировании - вообще проще простого.
2New: Меш квадов создается в Блице повертексно.
|
(Offline)
|
|
08.08.2006, 17:39
|
#13
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
Diplomat ну а как ето повертексно??!!! Это что, нужно делать меш (AddVertex, AddTriangle... и т.д.) в виде сетки и рааставлять там где может быть столкновение???!!! или как??!!! Если так то расставлять не сразу а когда произойдет столкновение в координатах CollX,CollY и т.д.??!!!?? Блин че то непойму!! тогдаже можно юзать терраин...!!
Или просто я непойму четакое квадра...!!!...
|
(Offline)
|
|
08.08.2006, 17:46
|
#14
|
Оператор ЭВМ
Регистрация: 26.07.2006
Сообщений: 41
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
Вот нашел функцию создания квада:
Function CreateQuad()
sprite=CreateMesh()
he=CreateBrush(255,255,255)
v=CreateSurface(sprite,he)
FreeBrush he
AddVertex ( v,-3,3,0,1,0) ; top left 0,1;1,0
AddVertex ( v,3,3,0,0,0) ; top right 1,1;1,1
AddVertex ( v,-3,-3,0,1,1) ; bottom left 0,0;,0,0
AddVertex ( v,3,-3,0,0,1) ; bottom right 1,0;0,1
AddTriangle( v,0,1,2)
AddTriangle( v,3,2,1)
FlipMesh(sprite)
HideEntity(sprite)
Return sprite
End Function
... Что мне дальше с ней делать???
|
(Offline)
|
|
08.08.2006, 19:48
|
#15
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Re: Декали (дыры от пуль, кровь...)
Мдя.
Судя по всему тебе весь код писать придеться
Увы. нет времени.
Алгоритм тебе дали.
Объединяй все созданные квады в один меш. создавай тип в виртуальными квадами.
А потом высчитывай положение каждого вертекса.
Математика.
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:14.
|