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

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

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

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

Ответ
 
Опции темы
Старый 26.04.2008, 08:01   #1
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Оптимизация: Отбрасывание невидимых пол&

Помогите пожалуйсто как это реализовать, сцена большой моя будет а FPS хочеться сберечь

ЦИТАТА:
Даже лучшие игровые программисты не могут обработать 300 000 треугольников на современных 3D картах при сохранении 60 fps. Карты просто не обладают такой мощью, поэтому нам нужно приложить некоторые усилия для отбрасывания полигонов, которые человек не видит, перед передачей сцены карте. Этот процесс называется отбрасыванием невидимых вершин и полигонов (culling).

Ссылка на статью: http://content.mail.ru/arch/20764/1074136.html
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 10:05   #2
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых пол&

Вот по этому для игр делают лоу поли модели, и не юзают мешсмуф.
Отбрасывать имхо лучше невидимые меши. Тобиш установить радиус
на котором меш появляется. Так вот и локации по кускам грузить.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 11:30   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

Даже лучшие игровые программисты не могут обработать 300 000 треугольников на современных 3D картах при сохранении 60 fps.
очень смешно. это все равно что "даже лучшие афтогонсчеги не могут ехать со скоростью больше 100 км/час", ессено на катке не могут, а на порше - пожалуйста. другими словами все зависит от машины, на современном компе даже блиц выжмет 60 фпс на сцене с 300 000 триугольников, про лучшие движки - вобще молчу.

Если будет большая сцена - руби ее на мелкие части (разумно мелкие), установи CameraRange поменьше, грузи сцену AnimMesh-ем.
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 16:25   #4
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Оптимизация: Отбрасывание невидимых по

Я не сильно знаю всю внутрянку Blitz3D. Но как вам моя тормознутая идея : Если в загружаемой модели каждый вертекс подвергнуть проверке на видимость и если что пнуть вертекс Hide-ом. Хотя можно и не отвечать ответ впринципе и так ясен.

Но всё-таки эта реальная штука обрезка поликов, я в GTA когда играл там эту прогу глюкануло и я увидел сцену в каком-то клубе над головой игрока и там был чётко виден этот эффект.

================================================== =======================
Сначало предисловие чтоб ввести всех в курс дела:
Я юзаю PhysX_Wrapper, под редактор уровней заделал "Gile's" под свои нужды изменил парсер файлов B3D выпущеных из этой проги. Ставлю пивоты а по ним уже загружается всё что нужно.

Так вот что я хочу сделать для оптимизации(или что у меня уже сделано):
Каждый файл из редактора DarkAge_PhysX_Editor - исчезает на одном расстоянии и засыпает на другом,
Зданий у меня будет несколько и каждое будет исчезать на расстоянии.
Текстуры хочу заюзать DDS естественно с mip_mapping-ом.
Дюмаю этого пока хватит.( Видюха правдо древность GForce4MX, никакими шейдерами и DirectX9 там и не пахнет)

Одна только проблема мля убивает реально:
Max9 не грузит pipeline, точнее её либу для экспорта в B3D, Хотел оживить бравого парня в программе, есть у меня прога, с костным анимом работает, но ЖУТКО неудобная "CharacterFX"
Может даст кто файл b3dexp.dle (так он вроде зовётся) для 9-го макса ???


Ну если вы разобрались в той хрени которую я написал то... .

Кто поделится опытом создания более-менее серьёзных работ ???

Я просто решил сделать обьёмный проект, и как следствие его надо продумать как можно тщательней. От.... ой мля, даже страшно представить сколько всего надо учесть и чего надо будет напрограммить.

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

Вообщем постараюсь не флудить особо, пущай ветка может поживёт пару дней а там админами её в топку.
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 16:54   #5
jimon
 
Сообщений: n/a
Ответ: Оптимизация: Отбрасывание невидимых по

резать полигоны - комп умрет, слишком тормозно

нужно обновлять мир только близж лежащих к игроку територий
а остальные територии отгружать вообще (если большие открытые пространства не планируются)
 
Ответить с цитированием
Старый 26.04.2008, 17:14   #6
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

По-моему, в DX уже есть отсечение невидимых поликов на аппаратном уровне - T&L - Transform, Clipping, Lightning. Вот он как раз и должен отсекать то что находится позади камеры. (тут я мог и ошибиться)

Что насчёт того, что находится в видимости камеры, то тут рулит LoD система (на откр. пространствах) и система порталов в коридорах.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

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

(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 17:46   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

нет. аппаратно отрезается только обратная (невидимая) сторона триугольника.
объекты, которые не попадают в зону видимости камера - их обрезкой занимается движок, называется ета хрень - frustum culling.
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 19:52   #8
Dstorton111
Оператор ЭВМ
 
Регистрация: 03.05.2007
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Оптимизация: Отбрасывание невидимых по

Кто что думает насчёт тупого скрытия объекта который не виден игроку командой "HideEntity" пока не пробовал но по идее должно хоть както сохранить ресурсы компа.

Ладно, практической теории я не нашёл здесь, да в принципе и не особо надеялся.
Одна блин, философия по принципам 3D программинга. Буду расчитывать на собственные силы, twin# скинул в ноль, глюки есть, несмертельные зато, FPS порезвей стали прыгать

Единственная просьба - помогите запустить Pipeline под Max9. Ссылка на 100% рабочий файл должна ведь быть у кого-то?
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:06   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

Кто что думает насчёт тупого скрытия объекта который не виден игроку командой "HideEntity" пока не пробовал но по идее должно хоть както сохранить ресурсы компа.
блин... откуда такие настойчивые мысли?
ликбез: объекты итак не отрисовываются, которые не попадают в зону видимости камеры. (имеет смысл таким макаром скрывать локации, комнаты, коридоры, другими словами "составные" объекты)

twin# скинул в ноль, глюки есть, несмертельные зато, FPS порезвей стали прыгать
хм. тот самый tween# что есть параметр RenderWorld ?
или отменил вертикальную синхронизацию с Flip(0) , если второе - то молодец, правильный шаг, если первое то даже хз.

Единственная просьба - помогите запустить Pipeline под Max9. Ссылка на 100% рабочий файл должна ведь быть у кого-то?
вот патч:
http://likosoft.ucoz.ru/load/21-1-0-35
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:06   #10
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

Кто что думает насчёт тупого скрытия объекта который не виден игроку командой "HideEntity" пока не пробовал но по идее должно хоть както сохранить ресурсы компа.
ТруЪ, сохраняет ресурсы действительно. У меня на этом основан Level of Detail (при удалении предмета мы скрываем его модель и подсовываем модель похуже)

Единственная просьба - помогите запустить Pipeline под Max9. Ссылка на 100% рабочий файл должна ведь быть у кого-то?
http://www.onigirl.com/pipeline/Max9_Patch.zip

Patch for Max version 9 (unzip to Plugins folder)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

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

(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:15   #11
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых пол&

ликбез: объекты итак не отрисовываются, которые не попадают в зону видимости камеры. (имеет смысл таким макаром скрывать локации, комнаты, коридоры, другими словами "составные" объекты)
Хм, я делал прогу, в которой один кубик стоит за другим. Врубил вирефрейм и узрел, что второй кубик рендерился
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:20   #12
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Радость Ответ: Re: Оптимизация: Отбрасывание невидимых по&#10

Сообщение от Dstorton111 Посмотреть сообщение
Ладно, практической теории я не нашёл здесь, да в принципе и не особо надеялся.
какой теории?
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:23   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

ликбез: объекты итак не отрисовываются, которые не попадают в зону видимости камеры. (имеет смысл таким макаром скрывать локации, комнаты, коридоры, другими словами "составные" объекты)
смотри RenderedTris()
скажем второй куб, который на самом деле не виден, с точки зрения компьютера раз находится в области видимости камеры (камера его видит) то он видим.

ТруЪ, сохраняет ресурсы действительно. У меня на этом основан Level of Detail (при удалении предмета мы скрываем его модель и подсовываем модель похуже)
false.
это не одно и то же. попробуй скрывать модель в зависмости от расстояния, когда она и так бы образалась дальней плоскостью отсечения. ничего не выйдет.
вот, кстати, статья(комментированный исходник) о ЛОДе, может кому пригодиься:
http://likosoft.ucoz.ru/publ/3-1-0-21

Последний раз редактировалось HolyDel, 26.04.2008 в 21:32.
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:30   #14
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

Сообщение от HolyDel Посмотреть сообщение
смотри RenderedTris()
Ну-ну

mode=1

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

cam=CreateCamera()

cub_1=CreateCube()
cub_2=CreateCube()

While Not KeyHit(1)
	If KeyHit(57) Then mode=Not mode
	Select mode
		Case 1
			PositionEntity cub_1,0,0,5
			PositionEntity cub_2,0,0,7
		Case 0
			PositionEntity cub_1,-3,0,5
			PositionEntity cub_2,3,0,5
	End Select
	RenderWorld
	Text 10,10,"Rendering "+TrisRendered()+" triangles"
	Flip
Wend

End
ЮПД: А, ну то что проюпдатено то верно...
(Offline)
 
Ответить с цитированием
Старый 26.04.2008, 21:50   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Оптимизация: Отбрасывание невидимых по

mode=1

Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

cam=CreateCamera()

cub_1=CreateCube()
cub_2=CreateCube()

While Not KeyHit(1)
	If KeyHit(57) Then mode=Not mode
	Select mode
		Case 1
			PositionEntity cub_1,0,0,5
			PositionEntity cub_2,0,0,7000
		Case 0
			PositionEntity cub_1,-3,0,5
			PositionEntity cub_2,3,0,5
	End Select
	RenderWorld
	Text 10,10,"Rendering "+TrisRendered()+" triangles"
	Flip
Wend

End
а так?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cистема Редактирования Графики GRAF AndruXa Проекты на Blitz3D 17 22.04.2010 13:45
оптимизация в тайловых играх Illidan 2D-программирование 17 18.06.2009 11:06
столкновения с обьектами сделанными Cartography shop 4 klopmaks Blitz3D 0 21.02.2009 21:10
Все статьи, уроки,дополнения, ошибки компl anton_obuhov Основной форум 3 14.09.2008 13:11
А вот и ещё тема по текстурированию ландшk CRASHER Создание текстур 4 16.01.2008 18:10


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


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