Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 31.07.2008, 17:52   #1
NoNsense
ПроЭктировщик
 
Аватар для NoNsense
 
Регистрация: 13.06.2008
Сообщений: 131
Написано 30 полезных сообщений
(для 61 пользователей)
спрайты

на экране 50*50 спрайтов плюс столько же на их тени. тоесть всего 2*50*50 и еще плюс 50*50 скрытых спрайтов (но они фпс и не едят)
все это копии от еще 6 разноцветных спрятанных спрайтов.
как можно повысить фпс?
__________________
--==twistedterra.github.io==--
(Offline)
 
Ответить с цитированием
Старый 31.07.2008, 17:54   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: спрайты

Сделать их синглсурфейсными.
Прирост до 1000%
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 31.07.2008, 22:03   #3
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Ответ: спрайты

Сообщение от NoNsense Посмотреть сообщение
на экране 50*50 спрайтов плюс столько же на их тени. тоесть всего 2*50*50 и еще плюс 50*50 скрытых спрайтов (но они фпс и не едят)
все это копии от еще 6 разноцветных спрятанных спрайтов.
как можно повысить фпс?
Смотря что это за спрайты, если это трава то одно дело, если выстрелы - другое.
(Offline)
 
Ответить с цитированием
Старый 01.08.2008, 12:28   #4
NoNsense
ПроЭктировщик
 
Аватар для NoNsense
 
Регистрация: 13.06.2008
Сообщений: 131
Написано 30 полезных сообщений
(для 61 пользователей)
Ответ: спрайты

собственно спрайты - это кнопки, с тенями.
и если я их сделаю односурфейсными то я так понимаю пикать их каждую отдельно будет уже нельзя?
а пикать их необходимо, потому что программно рассчитывать (в каком регионе мышь) практически нереально - плоскость кнопок под углом к камере (плюс перспектива) , и количество кнопок варируется. Getcolor тоже не поможет - спрайт кнопки не однотонный.
когда кнопка нажимается, она удаляется (и кнопки рядом сходного цвета).
__________________
--==twistedterra.github.io==--
(Offline)
 
Ответить с цитированием
Старый 01.08.2008, 12:37   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: спрайты

NoNsense, еще одно усилие и можно придумать пикуемые кнопки (отдельные элементы, скрытые) и отдельно их односюрфейсное представление.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NoNsense (01.08.2008)
Старый 01.08.2008, 12:51   #6
NoNsense
ПроЭктировщик
 
Аватар для NoNsense
 
Регистрация: 13.06.2008
Сообщений: 131
Написано 30 полезных сообщений
(для 61 пользователей)
Ответ: спрайты

повысит ли это фпс? вроде объекты с 0 альфой тоже его едят (50*50 по крайней мере).
и еще - элементы с 0 альфой станут мерцать, если я потом привяжу рендер к фпс.

хм, кстати - пивотам можно делать ентитирадиус и пикать их?
(сорри за простой вопрос, просто не могу сию минуту проверить сам - не за своим компом )
__________________
--==twistedterra.github.io==--

Последний раз редактировалось NoNsense, 01.08.2008 в 12:57.
(Offline)
 
Ответить с цитированием
Старый 01.08.2008, 13:03   #7
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Ответ: спрайты

Сообщение от NoNsense Посмотреть сообщение
а пикать их необходимо, потому что программно рассчитывать (в каком регионе мышь) практически нереально - плоскость кнопок под углом к камере (плюс перспектива) , и количество кнопок варируется.
А блиц как считает, по-твоему? Аппаратно?
(Offline)
 
Ответить с цитированием
Старый 01.08.2008, 13:17   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: спрайты

пивотам можно. вот я набросал пример:
http://www.forum.likosoft.ru/showthr...?p=238#post238

на моей рабочей машине - сильный проц слабая видюзу удалось поднять фпс незныительно 10-20, на машинах со слабым процом но мощной видюхой должно быть изминение лучше заметно.
(Offline)
 
Ответить с цитированием
Старый 02.08.2008, 08:49   #9
NoNsense
ПроЭктировщик
 
Аватар для NoNsense
 
Регистрация: 13.06.2008
Сообщений: 131
Написано 30 полезных сообщений
(для 61 пользователей)
Ответ: спрайты

HolyDel, сенкс, за пример.
только вот незначительный прирост фпс, озадачивает.
еще была идея сделать два плайна и по ним рисовать брашем на одном кнопки, на другом тени, пикать пивоты и перераскрашивать плайн. только код весь придется переписывать с нуля.
или еще попробовать тени объеденить с самими кнопками в синглурфейсы.
кстати снижение фпс только из за колличества объектов или и из-за того что их можно пикать?
__________________
--==twistedterra.github.io==--
(Offline)
 
Ответить с цитированием
Старый 02.08.2008, 12:57   #10
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: спрайты

ну... эт на рабочей машине небольшой, а на домашней удалось доднять с 60 до (180-220)
(Offline)
 
Ответить с цитированием
Старый 02.08.2008, 16:05   #11
NoNsense
ПроЭктировщик
 
Аватар для NoNsense
 
Регистрация: 13.06.2008
Сообщений: 131
Написано 30 полезных сообщений
(для 61 пользователей)
Ответ: спрайты

вобщем попробую
__________________
--==twistedterra.github.io==--
(Offline)
 
Ответить с цитированием
Старый 02.08.2008, 16:48   #12
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: спрайты

Примерчик
http://www.screensworld.com/svalka/w.rar

Сама либа
http://www.screensworld.com/svalka/S...sh_AMTFull.rar
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
H@NON (03.08.2008), HolyDel (02.08.2008)
Старый 03.08.2008, 19:50   #13
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: спрайты

еще один вариант. Сделал чтобы можно было пикать по спрайтам в одном сурфейсе.
Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

cam = CreateCamera()
PositionEntity( cam, 0, 0, -10 )

InitSpriteSystem()

addSprite("left",-2)
addSprite("right",2)

Global pickedSprite.Sprite

While Not KeyHit(1)
    mx = MouseX()
    my = MouseY()
    MHleft = MouseHit(1)
    
    If MHleft=1 Then
        pick = CameraPick(cam, mx, my)
        If pick <> 0 Then
            tri = PickedTriangle()
            pickedSprite = Object.Sprite(FindSprite( tri ))
        Else
            pickedSprite = Null
        EndIf
    EndIf
    
    RenderWorld()
    
    If pickedSprite<> Null Then
        CameraProject(cam,  pickedSprite\x, pickedSprite\y, pickedSprite\z)
        Text( ProjectedX(), ProjectedY(), pickedSprite\name )
    EndIf
    
    Flip
Wend

Type Sprite
    Field tri[2], vertex
    Field name$
    Field x#, y#, z#
End Type

Global SSmesh, SSsurf

Function InitSpriteSystem()
    SSmesh = CreateMesh()
    SSsurf = CreateSurface(SSmesh)
    EntityPickMode( SSmesh, 2 )
End Function

Function addSprite(name$, x#=0, y#=0, z#=0)
    Local SS.Sprite = New Sprite
    
    SS\x = x : SS\y = y : SS\z = z
    
    SS\vertex = AddVertex(SSsurf, SS\x-1, SS\y+1, SS\z+0, 0, 0)
    AddVertex(SSsurf, SS\x+1, SS\y+1, SS\z+0, 1, 0)
    AddVertex(SSsurf, SS\x+1, SS\y-1, SS\z+0, 1, 1)
    AddVertex(SSsurf, SS\x-1, SS\y-1, SS\z+0, 0, 1)
    
    SS\tri[0] = AddTriangle(SSsurf, SS\vertex, SS\vertex+1, SS\vertex+2)
    SS\tri[1] = AddTriangle(SSsurf, SS\vertex, SS\vertex+2, SS\vertex+3)
    
    SS\name = name
End Function

Function FindSprite( tri )
    Local SS.Sprite
    
    For SS.Sprite = Each Sprite
        For n = 0 To 1
            If tri = SS\tri[n] Then Return Handle(SS)
        Next
    Next
    
    Return -1
End Function
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (03.08.2008)
Старый 04.08.2008, 13:28   #14
NoNsense
ПроЭктировщик
 
Аватар для NoNsense
 
Регистрация: 13.06.2008
Сообщений: 131
Написано 30 полезных сообщений
(для 61 пользователей)
Ответ: спрайты

как-то глухо, получается но не то что надо
не могу понять как объединяются загружаемые спрайты.
вобщем как мне связать в одну поверхность два спрайта такого типа:
ghost=loadsprite("...путь...")
sprite1=copyentity(ghost)
sprite2=copyentity(ghost)
positionentity sprite1,100,0,0
positionentity sprite2,-100,0,0

и еще - я так понял что после добавления они упадут в одни координаты,
их до добавления надо именовать, а после добавления растаскивать?
__________________
--==twistedterra.github.io==--

Последний раз редактировалось NoNsense, 04.08.2008 в 13:48.
(Offline)
 
Ответить с цитированием
Старый 04.08.2008, 19:03   #15
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: спрайты

mesh = CreateMesh()

ghost=loadsprite("...путь...")
positionentity ghost,0,-100000,0
HideEntity(ghost)

sp1 = CopyMesh(ghost)
PositionMesh(sp1, x, y, z)
AddMesh(sp1, mesh)
FreeEntity(sp1)

как то так. Тебе прийдется писать свою систему спрайтов, чтобы они еще могли поворачиватся на камеру и тп. хотя для кнопок это не нужно, просто аттачишь к камере и все.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NoNsense (04.08.2008)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блеклые спрайты Abiron 3D-программирование 18 20.06.2009 10:21
спрайты для bmax G.A.D Болтовня 11 30.03.2009 21:27
Спрайты и тайлы mrsandy Основной форум 1 29.01.2008 15:54
Почему тормозят спрайты? MiXaeL 3D-программирование 12 09.01.2007 10:17
Спрайты освещения. HorNeS 3D-программирование 19 25.04.2006 23:34


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com