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

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

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

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

Ответ
 
Опции темы
Старый 10.11.2010, 01:01   #1
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Сообщение Плавучие объекты

Как лучше всего реализовать плавающие в воде объекты?

Речь в основном идет о мелких объектах, которые могут падать в воду и переворачиваться на ней - бочки, ящики, обломки.
Поведение кораблей на воде проще - они на ней лишь держаться, реализовать правдоподобное покачивание было бы неплохо, но необязательно.



Никакую физику не присоединял пока и даже не определился какую же выбрать. PhysX - вроде бы все может, но ограничения бесплатной версии и еще может какие проблемы от него. ODE - бесплатный, но слабее и пишут, что с проблемами порой. Другие физики вообще не рассматривал.
Большинство примеров с физикой касается твердых тел, а с жидкостями как? Неужели только в платном варианте? Или стоит вообще обойтись без физики и описать это формулами (но в математике на столько не силен).

Последний раз редактировалось YaLAS, 10.11.2010 в 16:44.
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 01:41   #2
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: Плавучие объекты

ограничения бесплатной версии
Незначительны.
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 01:55   #3
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Плавучие объекты

если бочки и ящики (как бэ для декорации да) то можно было бы и без физики и формул, а сделать анимацию (несколько вариантов) и ее проиграть когда типа ящик падает на дно !! Но еще и осколки то я так понимаю это у тебя не для декорации а для реалистичности сцены !! Но а реалистичное повидение модели с помощью формул ни каждый напишет так что здесь нужен провереный физ двиг !!
Бльшинство "козырей" у Физикса !!
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 10:00   #4
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Ответ: Плавучие объекты

Сообщение от IGR Посмотреть сообщение
Но а реалистичное поведении модели с помощью формул ни каждый напишет так что здесь нужен проверенный физ двиг !!
Большинство "козырей" у Физикса!
Спасибо, так я и подумал. Просто анимация здесь не подойдет, а рассчитать реалистичное качание на волнах ящика - слишком сложно. Лучший PhysX, хорошо. Но что именно применить в PhysX для плавучести. Какие команды и методы. Приведите пример или ссылку, если не сложно.

И еще. Не раз люди писали, что он выдает окна типа "купи PhysX" и виснет после 60 объектов (это ведь реально очень мало)!

Последний раз редактировалось YaLAS, 10.11.2010 в 10:11. Причина: PhysX
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 10:21   #5
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: Плавучие объекты

и виснет после 60 объектов
1)После 300
2)Зачем СТОЛЬКО объектов?
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 12:02   #6
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Плавучие объекты

YaLAS, для этого надо использовать команды для поплавка и воды. Соответствено, объект - поплавок, плавучесть настраивается; вода - ну и так понятно, тоже полностью настраивается. На память не помню все команды, но px*Kep* и px*Water*

Ограничения без ключика незначительные. Для демки хватит с лихвой. Кстати, PhysX Wrapper вроде уже давно бесплатный и с открытым исходным кодом.

зыЖ если что пиши в асю мне. В профиле у меня написана. Помогу с враппером.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
YaLAS (10.11.2010)
Старый 10.11.2010, 15:30   #7
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Плавучие объекты

St_AnGer, спасибо. А где найти справку по конкретно таким функциям и желательно вообще вменяемую справку по PhysX Wrapper?
Учебник по PhysX Wrapper я кончено же видел и читал, но там не обо всех функциях и нет примеров с жидкостями.

Было неплохо почитать о функциях ph* так как єто в русской справке по остальным функциям блица.
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 15:55   #8
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Плавучие объекты

Поплавки в Рендеровском враппере физыкса прогал он сам, это силы, выталкивающие тело. Такие же можно реализовать и в ОДЕ и где угодно.
(Offline)
 
Ответить с цитированием
Старый 10.11.2010, 16:27   #9
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Плавучие объекты

Нашел англоязычную справку для PhysX Wrapper v1.2.
Для ODE есть и русская справка, если не ошибаюсь.
Mr. F., а какие комманды, методы нужны для реализации вышеописанного в ODE?
Неплохо бы увидеть пример "поплавка".

P.S. И есть ли более новая русская справка Блиц3Д, чем для версии 1.85?

Последний раз редактировалось YaLAS, 10.11.2010 в 16:37. Причина: уточнение
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 13:59   #10
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Плавучие объекты

Сегодня на англоязычном ресурсе нашел такой пример, который делает что-то в этом роде, причем без физик и даже внешних библиотек и других файлов!

Кода правда много для описания "своей физики", но может пригодиться как альтернатива.

Еще нашел обработку такого плавучего объекта как рыбки - простые, без моделек и текстур, много и рабочие.
Думаю, нужно запустить их в море, только поменьше и поспокойнее, а то с анимироваными акулами пока никак.

Последний раз редактировалось YaLAS, 11.11.2010 в 15:16.
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 16:35   #11
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Плавучие объекты

Неплохо бы увидеть пример "поплавка".
делал поплавки, работающие с анимированными волнами. долго вспоминать что в коде к чему, попробуй сам разобраться.
а ну ещё я это делал для лодочек... так что код может немного отличаться от обычных поплавков.
void kepref::UpdateOceanKeps()
{
	float3 pos,force,torque,keppos,antiforce,antiangforce;
	float fy,kepbuo,keplindamp,watery,zmult;

	float kepradius=0.0f;
	float kepmaxdist=4.0f;
	float kepangdamp=60.0f;
	float waterdepth=100.0f;

	for (kepref *kr = kepref::First; kr; kr=kr->Next)
	{
		//xLinePick3(xEntityPos(kr->piv)+float3(0,100,0),xEntityPos(kr->piv)+float3(0,-100,0));
		//pos=xPicked3();

	  //  cout << "!1";

		if (kr->body->_body==0) return;

		pos=float3(0,Ocean::Pick3(xEntityPos(kr->piv,true))-0.2 ,0);

		keppos=xEntityPos(kr->piv,1);

		fy=abs(kr->body->GetLocalLinearSpeed().y)*0.5f; // ?? ????? ?? ????? ?????? ?? ????? undefined type!
		if (fy<1) fy=1.0f;
		
		if (kr->flood==false) {
			kepbuo=kr->orig->buo/15.0f;
			keplindamp=kr->orig->lindamp;
		} else {
			kepbuo=kr->orig->buo/50.0f;
			keplindamp=kr->orig->lindamp;
		}

		watery=pos.y;
		xPositionEntity(kr->tmp,keppos.x,pos.y,keppos.z);

	//	cout << "!2";

		if ((keppos.y<(watery-1.5f))&&(kr->flood==false)) kr->MakeDrops(keppos);

	//	cout << "!3";

		force=float3(0,0,0);
		torque=float3(0,0,0);

		if ((keppos.y <= (watery + kepradius)) && (keppos.y >= (watery - waterdepth))) {
			antiforce=kr->body->GetLocalLinearSpeed();
			antiangforce=kr->body->GetLocalAngularSpeed();

			if (keppos.y >= (watery - kepmaxdist + kepradius)) {
				force.y = (watery - keppos.y + kepradius)*kepbuo/kepmaxdist;
			}

			if (keppos.y < (watery - kepmaxdist + kepradius)) {
				force.y = kepbuo;
			}

			zmult=0.25f;
			if (abs(antiforce.z)<1) zmult=1.0f;

			force.x -= antiforce.x*keplindamp*10.0f;
			force.y -= antiforce.y*(keplindamp/fy);
			force.z -= antiforce.z*zmult;

			torque.x = -antiangforce.x*kepangdamp*2.0f;
			torque.y = -antiangforce.y* (10.0f/(abs(antiforce.z)+1.0f));
			torque.z = -antiangforce.z*12.5f;


		}

	//cout << "!4";

		kr->body->AddLocalForceAtPos(force,keppos,0);
		kr->body->AddLocalTorque(torque,0);


	//cout << "!5";

	}
}
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 17:16   #12
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Плавучие объекты

Mr. F., гм. спасибо, но я имел ввиду пример на Блице.
Если его не существует (только на с++ например есть), то ладно.
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 17:38   #13
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,852 пользователей)
Ответ: Плавучие объекты

Если сравнивать ODE и PhysX то выбирай PhysX, благо он производительнее и нынче бесплатен (автор забил болт)
Вобще для кораблей физ движки плоховато подходят. Сам в своё время эксперементировал. C настройкой масс и центров тяжести предётся очень запарится чтоб получить более ли менее вменяемое поведение. Лучший вариант писать самому свой велосипед, благо у блица замечательные для этого возможности.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 11.11.2010, 18:49   #14
YaLAS
AnyKey`щик
 
Аватар для YaLAS
 
Регистрация: 05.11.2010
Адрес: Красноармейск, Украина
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Плавучие объекты

Randomize, а в чем сложность с кораблями? В первом посте я упомянул почему. Но с другой стороны столкновения их между собой обсчитывать буду (с бочками не нужно) и нужен ли в этом физикс?
В том плане, что как физ модель любой корабль - это прямоугольник с треугольником впереди и все (в 3Д конечно), без обсчета каждой веревки на модельке. А на воде они и так держатся (хотя не слишком правдоподобно) и утопить их легко. А вот мелочь всякая - нуждается.

Так может будет лучше и кораблям физику добавить? (держаться на воде и столкновения) Или напротив не нужно усложнять, а удары считать лучше блицовскими коллизиями? И заодно - стоит ли делать пушечные ядра физ. моделями? Или залп с двух линкоров переполнит предел? Хотя им-то как раз нужно учитывать траекторию, начальное ускорение, гравитацию... руками все писать - морока.
(Offline)
 
Ответить с цитированием
Старый 12.11.2010, 14:09   #15
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Плавучие объекты

Хотя им-то как раз нужно учитывать траекторию, начальное ускорение, гравитацию... руками все писать - морока.
чот вы обленились. =\
это ж школьный курс
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (12.11.2010)
Ответ


Опции темы

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

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


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


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