22 Сентября 2024, 16:34:52
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Клонирование объектов
Клонирование объектов
(Прочитано 23535 раз)
  1 [2]
Печать
Dreamkiller | * | Новичок | Сообщений: 5 | «Ответ #15 03 Мая 2011, 13:16:02 »
Re: Клонирование объектов |
15
А нет ли друго способа клонировать объекты помимо ForLoop?
Corpic | * | Новичок | Сообщений: 23 | «Ответ #16 03 Мая 2011, 18:58:23 »
Re: Клонирование объектов |
16
ОО тебе в помощь. По мне - так проще, чем через массивы и For Loop. Да и возможностей поболее...

P.S. Что-то мне подсказывает, что for loop никоим оборазом не клонирует объекты, а всего лишь позволяет организовать цикл для последовательного перебора строк в массиве.
Sqwer | ***** | Ветеран | Сообщений: 540 | «Ответ #17 03 Мая 2011, 20:21:06 »
Re: Клонирование объектов |
17
Цитировать
P.S. Что-то мне подсказывает, что for loop никоим оборазом не клонирует объекты, а всего лишь позволяет организовать цикл для последовательного перебора строк в массиве.

он просто вызывает  виртуальный метод virtual void    CallChannel(); всех чилдренов  N ое кол-во раз , и перед каждой итерацией увеличивает значение счётчика.

псевдокод:

N - кол-во  итераций   (первый  подключаемый)
C - текущая итерация   (второй подключаемый)

for(int i=0; i<N; ++i)
{
C=i;

pObject  - указатель на подключаемый объект  (от третьего линка )

pObject->CallChannel();

}


логика работы канала по методу CallChannel();    у всех разная.

но нужно знать, что  метод CallChannel();  у  3DObjectData  вызывает его отрисовку и только!

иными словами , подключив  3DObjectData  в ФорЛуп мы рендим его столько раз , сколько указано в первом линке. Сам объект  3DObjectData у нас не копируется.  Изменяя в зависимости от текущей итерации  матрицу объекта и цвет можно визуально размножить 3DObjectData.
Dreamkiller | * | Новичок | Сообщений: 5 | «Ответ #18 04 Мая 2011, 10:16:22 »
Re: Клонирование объектов |
18
Допустим мне нужно визуально размножить объект, предположим это система частиц "Огонь", так вот как избавиться от того, что в каждой визуальной копии создаются еще копии, равные количеству интеграций ForLoop?
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #19 04 Мая 2011, 14:41:58 »
Re: Клонирование объектов |
19
1) начало цикла от 0 до 10
2) сетим новую матрицу
3) визуализируем объект
4) итераций меньше 10 ? если меньше, то переходим на начало цикла (1)

а вообще, для визуализации частиц лучше использовать стандартные квестовые частицы, (если визуализировать частицы объектами, будут тормоза из за множества DIP)
Alteste | *** | Постоялец | Сообщений: 224 | «Ответ #20 04 Мая 2011, 15:56:36 »
Re: Клонирование объектов |
20
как избавиться от того, что в каждой визуальной копии создаются еще копии, равные количеству интеграций ForLoop?
C чего ты это заключил?
Dreamkiller | * | Новичок | Сообщений: 5 | «Ответ #21 05 Мая 2011, 16:57:48 »
Re: Клонирование объектов |
21
1) начало цикла от 0 до 10
2) сетим новую матрицу
3) визуализируем объект
4) итераций меньше 10 ? если меньше, то переходим на начало цикла (1)

а вообще, для визуализации частиц лучше использовать стандартные квестовые частицы, (если визуализировать частицы объектами, будут тормоза из за множества DIP)

Ruslan - посмотрите вот на это, наглядный пример все объяснит. Обратите внимение как меняется частота колебаний огня при смене интеграций.
* ForLoop.cgr (18.96 Кб - загружено 1277 раз.)
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #22 05 Мая 2011, 19:29:02 »
Re: Клонирование объектов |
22
с частицами так нельзя ))
если их вызывать в цикле несколько раз, то частицы будут пересчитываться столько же раз за один кадр.
В данном случае действительно поможет Оо, что бы динамично создавать эмитеры (сам Оо не пользуюсь за ненадобностью, так как на данный момент знаю как создавать свои каналы, поэтому подсказать по Оо не смогу)
или другой вариант - это вручную создавать необходимое максимальное количество эмитеров, а в процессе выполнения лишние отключать путем подачи в соответствующий чилдрен значение ноль.
Dreamkiller | * | Новичок | Сообщений: 5 | «Ответ #23 05 Мая 2011, 22:13:59 »
Re: Клонирование объектов |
23
Спасибо Ruslan, теперь хотя бы знаю что это не вариант для частиц, а вот с ОО запара какая то, на сайте конткретного описания нет, в англоязычном руководстве не разбирусь, энглишь не тяну. Поэтому тупо сделаю много частиц.
Corpic | * | Новичок | Сообщений: 23 | «Ответ #24 05 Мая 2011, 22:45:41 »
Re: Клонирование объектов |
24
Достаточно хорошее введение в  ОО есть во встроенном хелпе. Подробно, пошагово...
 
  1 [2]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Клонирование объектов
Перейти в: