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

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

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

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

Ответ
 
Опции темы
Старый 24.08.2012, 17:11   #31
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Поразбирался, и понял что можно сделать через addMesh, но таким образом сложно будет удалить прикрепленный меш.

Может есть вариант запихнуть все это в анимМеш с иерархией, для дальнешей доступа к детям.
Пользуюсь ксорсом, если есть варинты, буду ждать совета.
__________________
(Offline)
 
Ответить с цитированием
Старый 25.08.2012, 00:07   #32
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Советы по оптимизации

Смысл иметь аним меш для оптимизации нет, так как (ВРОДЕ) это тоже самое что и разные меши.
anim_mesh=for each mesh

blitz3d оптимизируется, когда полигоны моделей соединяются в один меш (объект).
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (25.08.2012)
Старый 25.08.2012, 20:35   #33
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Хм, расскажу прикол, сделал в блитце повертексно траву, мне надо чтоб она была пучками. Т.е. я создавал билборды с одним центром и поворачивал их.
Потом решил попробывать создать тоже самое в 3д максе, и экспортировал в б3д, после чего фпс поднялось вроде как на 30%.

blitz3d оптимизируется, когда полигоны моделей соединяются в один меш (объект).
Стоит ли у этих билбордов сделать в центре общую точку?
__________________
(Offline)
 
Ответить с цитированием
Старый 26.08.2012, 00:27   #34
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Советы по оптимизации

Сообщение от burovalex Посмотреть сообщение
Хм, расскажу прикол, сделал в блитце повертексно траву, мне надо чтоб она была пучками. Т.е. я создавал билборды с одним центром и поворачивал их.
Потом решил попробывать создать тоже самое в 3д максе, и экспортировал в б3д, после чего фпс поднялось вроде как на 30%.


Стоит ли у этих билбордов сделать в центре общую точку?
я думаю так не получится.

это НЕ будет как "много всякого в одном"
а "много, но как будто бы вместе" (в общем блитз не будет обрабатывать их как одно целое)

Делал я разработку SingleMesh (найти не могу, наверное удалил, так как смысла нет в single_meshe).. Думал соединить 100 коробок в один многополигональный меш или как разные entity_коробки.
Так вот если делать игру DeltaForce на Blitz3D - то уж лучше делать много Entity (и делать обработку - LOD, cull и тп) чем один меш, который всегда отображается(обрабатывается куда ни гляди)
разница на мощном ЭВМ была +15фпс в пользу энтитей
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
burovalex (26.08.2012), FREE MAN (26.08.2012)
Старый 27.08.2012, 22:36   #35
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Начал пробывать LOD, получается не плохо. Правда идеально с билборда в меш не перейдешь, но вроде терпимо. Правда меня беспокоит не закончатся ли ресурсы проца?
Если не сложно, разберитесь немного в коде, все ли я нормально делаю
Так я создаю траву, она у меня динамически ростет
	grass\entity=xCreatePivot()
	grass\entityHI=xCopyEntity(grassMesh1hi,grass\entity) : xEntityPickMode grass\entityHI,2 : xHideEntity grass\entityHI
	grass\entityNR=xCopyEntity(grassMesh1nr,grass\entity) : xEntityPickMode grass\entityNR,2
	grass\entityLO=xCopyEntity(grassMesh1lo,grass\entity) : xEntityPickMode grass\entityLO,2 : xHideEntity grass\entityLO
	grass\LODlevel=3
	grass\class=class
	xEntityAutoFade grass\entity,grassAutoFadeDistance,grassAutoFadeDistance
	xPositionEntity grass\entity,x,y,z
	xTurnEntity grass\entity,0,Rand(360),0
	xScaleEntity grass\entity,0,0,0
	grass\scaleMax=Rnd(0.7,1.2)
	grass\gmode=2
так я проверяю траву
For i=1 To Ceil(grassCount/32.)
	grass.grass=First grass
	GrassLOD(grass.grass)
	Insert grass After Last grass
	EndIf 
Next

Function GrassLOD(grass.grass)
If grass\LODLevel=3 Then
	dist#=xEntityDistance(camera,grass\entity)
	If dist<grassLODDistHN And grass\gmode<>3 Then xHideEntity(grass\entityNR) : xShowEntity(grass\entityHI) : grass\gmode=3 : changed=True
	If dist>grassLODDistLN And grass\gmode<>1 Then xHideEntity(grass\entityNR) : xShowEntity(grass\entityLO) : grass\gmode=1 : changed=True
	If dist>grassLODDistHN And dist<grassLODDistLN And grass\gmode<>2 Then xHideEntity(grass\entityHI) : xHideEntity(grass\entityLO) : xShowEntity(grass\entityNR) : grass\gmode=2
EndIf 
End Function
Может еще чтото посоветуете по оптимизации?!
__________________
(Offline)
 
Ответить с цитированием
Старый 28.10.2012, 23:29   #36
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Посоветуйте товарищи, как быстрее будет работать.

Сделал LOD таким образом:
Создал type, есть 4 поля, один пивот, к которому лепится 3 модели разного уровня. И в зависимости от расстояния до объекта 2 модели скрываются и нужная отображается. Вроде все неплохо.

А лучше ли будет сделать просто одно поле для ентити, и при смене удалять один объект и загружать другой. Но не loadMesh конечно, copyEntity
__________________
(Offline)
 
Ответить с цитированием
Старый 28.10.2012, 23:30   #37
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Советы по оптимизации

Нет не лучше.
__________________
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
burovalex (28.10.2012), IgorOK (29.10.2012), L-ee-X (29.10.2012)
Старый 28.10.2012, 23:56   #38
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Спасиб!

Еще вопросик. У кого-нибудь есть шейдер для плавного перехода от одной модели к другой??

Видел во многих играх, и смотрится клёво - глаза не режут переходы.
Смотрится так, как будто одна модель исчезает а другая появляется частичками
__________________
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 00:58   #39
FREE MAN
Разработчик
 
Регистрация: 20.02.2010
Сообщений: 397
Написано 173 полезных сообщений
(для 565 пользователей)
Ответ: Советы по оптимизации

Вряд ли у кого то найдётся такой шейдер...
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 10:28   #40
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

я играю в танки, там тоже такой шейд есть,
ковырялся, нашел файл shaders.pkg
Как думаете, сильно геморно вытащить чтото от туда?
__________________
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 10:39   #41
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Советы по оптимизации

геометрия должна быть специально подготовленная для такого шейдера.
сам шейдер просто до безумия, просто некий lerp между позициями вершин меша, в зависимости от юниформа.
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 15:15   #42
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

Да пусть даже не будет подготовлен, хотя я не представляю как меша можно подготовить, в нем вертексы, полигоны, фейсы, вроде ничего особенного..
__________________
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 15:19   #43
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

И мне кажется, HolyDel, ты преувеличиваешь, видно что по мере приближения просто весь меш начинает покрываться кусками альфы.
Мне пофиг будет ли это происходить от начала меша к концу или хаотично, главное чтоб не было резкого рывка в переходе от одного меша к другому.
__________________
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 17:13   #44
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Советы по оптимизации

оу. тебе по альфе. ну тогда просто скрывай один и показывай другой.
я думал что морфинг.
(Offline)
 
Ответить с цитированием
Старый 29.10.2012, 21:07   #45
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Советы по оптимизации

HolyDel, ну ты меня опять не понял. Один скрыл, другой показал - очень резко, глаза напрягает.
А если просто альфой, то будет много артефактов.

А есть шейдер, который скрывает уже не нужный объект кусочками - как будто на объекте маска, и пиксели у нее рандомно исчезают
Если играл в Doom3, мог там такое увидеть, когда трупы начинают исчезать - как будто сгорают
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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