Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: morfik от 04 Сентября 2008, 11:09:42



Название: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: morfik от 04 Сентября 2008, 11:09:42
hi potskojiti kak zdelat shtobi obekt vsegda smotrel na cameru kak vigrac shtobi plein vsegda smotrel na kameru zaranie sposibo vsem :)


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Danro от 04 Сентября 2008, 16:02:13
Для того чтобы плоскость поворачивалась на камеру. Нужно к motion этой плоскости привентить rotation vector от камеры.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: morfik от 04 Сентября 2008, 16:22:23
da ia tak delal no kogda stavlu mnoga obektav umena gluchit niznau izachevo kamera virubaetsa ia dumal shto kakoita modifikatar mijet est nu spasibo ogromnoe  zaotvet :) esli shto rat budu pomoch :)


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 05 Сентября 2008, 01:47:37
Вот есть еше способ.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: morfik от 05 Сентября 2008, 11:13:16
sposibo ogromnoe eto toshto nada net slov spasiboo ogromnoe esli shto pishi rat budu pomoch  :)


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 31 Января 2009, 00:26:22
Как бы сделать дерево...  ::)
если нужно много плейнов прицепить, как лучше сделать с помощью этого способа?


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: VFX от 31 Января 2009, 16:14:42
а если частицы юзать для листьев? они всегда перпендикулярно камере. только вот я не уверен в рациональности с точки зрения производительности. будет тормозить наверно, хотя я пробовал сотни тысяч частиц (плэйнов) крутить, не тормозило, хотя и машина у меня хилая.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 31 Января 2009, 19:21:21
кстати вот кое какая информация
http://www.gamedev.ru/community/gamedev_lecture/articles/?id=7

На счет частиц - как их настроить, чтобы расположить по поверхности веток? VFX есть идеи?

Можно плейны разместить в array, а затем использовать описанный выше метод?

Допустим имеется файл, в котором хранятся координаты плейнов записанные с помощью Max script, используя Lua скрипт разместить все это в массив... возможно ли такое замутить?


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 31 Января 2009, 22:07:17
Вот есть шейдер от Павла Корнева,автора нескольких известных демок http://narod.ru/disk/5369099000/tree.rar.html
В архиве есть текстовый файл с процессом создания заготовки в 3s max.Лично у меня не получилось воспроизвести этот процесс.Кто разберется,прошу поделится.Есть еще в примере NatureRender десяток готовых качественных деревьев.А можно еще импортировать из макса через колладу(с 2)множество плейнов инстансов,а потом в насторйках Nature Painting поставить галку Face Camera.

Вот что у меня получилось,если листву из макса экспортировать инстансами,а в квесте импорт соответственно.
http://narod.ru/disk/5372221000/Oak.rar.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 01 Февраля 2009, 02:22:11
IYV Спасибо за примеры!
вот примитивная максовская сцена, только фейсы нужно анврапить 


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 01 Февраля 2009, 02:35:20
попробуй сделать вот так, сразу станет понятно...


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 01 Февраля 2009, 20:30:06
Спасибо Руслан за подсказку,но у меня проблема не с моделированием в максе,а с экспортом/импортом.В максе то я знаю как это все сделать,но вот когда импортирую в квест,происходит ерунда всякая.Возможно те экспортеры,что я пробывал не совсем коректно поддерживают вертекс колор.Твой пример у меня тоже не получилось нормально отобразить в квесте.Если у тебя получается экспорт/импорт вертекс колор,то напиши пожалуйста какими экспортерами пользуешся?Спасибо.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 02 Февраля 2009, 01:15:59
я использовал для экспорта Quest 3d file exporter,
в настройках поставил галочку use vertex color...
http://quest3d.nl/wiki/index.php?title=Quest3DExtensions

на счет vertex color вот бы такое в Quest3d сделать...
http://3dcenter.ru/forum/index.php?showtopic=2977&hl=vertex+color


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Viik от 02 Февраля 2009, 18:07:44
Шейдером можно сделать, судя по картинкам в вертекс запекаеться толщина материала в данной точке, затем силу света придавливают в зависимости от толщины. Такой подход работает только если источник света находиться в середине объекта, собственно как у него и сделано.

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


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 02 Февраля 2009, 18:39:46
да в таком случае не стоит и париться с этим, я думал, что источник света может быть в любом положении...
проще запечь свет.

Viik извини, а ты сам скрипт смотрел? там такой алгоритм?


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 02 Февраля 2009, 21:38:14
Ruslan,вот посмотри финальная сцена с горшком из тутора в квесте,вообще без источников света. ::)

Посмотри еще плагин для квеста,с вертекс колор  http://forum.quest3d.com/index.php?topic=62009.0
А вот горшок с текстурой,немного похоже как это выглядит в максе.http://narod.ru/disk/5412568000/Gorshok%20textur.rar.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 03 Февраля 2009, 00:32:33
Ха прикольно! у меня тот урок не получилось повторить, сейчас еще раз попробую...

если бы шейдером реализовать, что бы в реалтайме пересчитывалось, интересные эффекты можно было бы получить :)

CustomGeometry - у меня Quest3d 4.2.2  4.0.0  3.6.6 слетают... примеры не запускаются    :o


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 03 Февраля 2009, 02:56:28
У меня только на 3.6.6 установилась,вроде нормально все.Вот ссылка на последнюю версию  shaderfx ,она сейчас бесплатная стала,она для макса начиная с 8 и до 2009 .В ней можно сделать подобный шейдер,а потом в квест экспотнуть.Сейчас пытаюсь разобраться.http://www.lumonix.net/shaderfx.html

Залил на народ. http://narod.ru/disk/5417238000/shaderFX.zip.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 03 Февраля 2009, 13:23:19
IYV Спасибо за shaderfx, нормальная версия, а у меня была какаято убитая...  ;D

sample_UVRotator_tree_leaves прикрутить бы к тому шейдеру, что ты раньше выкладывал, от Павла Корнева

я думаю, если как нибудь случайным образом вращать UV у фейсов, может быть похоже будет на ветер. Только нужно как то хранить еще информацию о текущем положении и направлении поворота в каждом фейсе...

Все никак не найду время, что бы изучить программирование шейдеров  ::)


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 03 Февраля 2009, 14:44:59
Да я давно пытался это сделать,но не получается.Тут надо код переписывать,а я в этом вообще не шарю.Надо у Viki попросить,он в шейдерах хорошо разбирается видимо.Вот еще есть примерчик с движением листвы,но этот шейдер к сожалению не поддерживает billboard
http://narod.ru/disk/5426482000/Test%20tree.rar.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 03 Февраля 2009, 19:00:10
Поиздевался над рябиной
http://depositfiles.com/files/hdu6u1cgl
Естесно этот "вертолет" необходимо комуто довести до ума.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Viik от 03 Февраля 2009, 20:52:36
Нет спипт не видел, отталкивают от того как он закрашивает вертексы и то что требует 10-15 секунд чтобы все посчитать.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: →|๖ۣۜDen|← от 03 Февраля 2009, 21:02:30
Вот еще есть примерчик с движением листвы,но этот шейдер к сожалению не поддерживает billboard
http://narod.ru/disk/5426482000/Test%20tree.rar.html
Этот примерчик мне напомнил один вопрос, который я хотел давно задать. Знает ли кто? Возможно ли отображение теней на объектах, которые сделаны с помощью naturePainter? Вот здесь напимер режет глаз тот момент, что от дерева тень только на земле, а вот что б на траве....


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 03 Февраля 2009, 23:41:52
Viik max script - это интерпритатор, хорошо, что он вообще хоть как-то работает  ;D

Const_47 Оригинально придумал! можно тебя попросить доработать? это сильно напряжно будет? если бы фейсы сами по себе крутились с разной фазой...

Не знаю как это реализовть в шейдере, ну типа создать буфер, в котором будут храниться фазы для каждого фейса, ну и делать прирост этих фаз... Как то можно заранее узнать общее количество фейсов, что бы создать буфер нужного размера?

Может быть использовать текстуру, считывать из нее начальное значение "фазы" для каждого фейса, а затем просто прибовлять счетчик для смещения, в этом случае, ничего сохранять не придется, а текстура будет просто хранить случайные значения...



Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Viik от 04 Февраля 2009, 11:56:42
Можно попробывать вертексы каждого инстанса по разному раскрасить, поидее коллада их подхватит, цвет вертекса использовать как входящую переменную для функции случайного поворота. Нужно посмотреть как себя спидтри в таких ситуациях ведет.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 04 Февраля 2009, 12:01:00
Viik Спасибо за ответ, но в том шейдере цвета вертексов уже используются...

SpeedTree походу ветер честно расчитывает, учитывая напровление ветра, силу и т.д.

Не получается сделать, Envelope - посылает в шейдер текущее значение кривой, как сделать, чтобы из канала HLSL - получить исходящие данные?


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 04 Февраля 2009, 16:58:19
Все верно можно токо к вершине привязаться, к текстуре или массиву не получится поскольку я никак не предугадаю какое количество вершин может быть использовано для кроны.

Для рандома угла нужен "шум".Формировать на основе позиции вершины не подходит поскольку все равно будет закономерность.

Идея закрашивать вершины супер. Вопрос как закрасить вершине
Альфу? Такое моно сделать?.     


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 04 Февраля 2009, 17:07:57
Вот еше. Цвет вертекса в нlsl читаю из
float4 color   : COLOR0;

Может есть возможность смещения для углов закрасить чтоли "вторым цветовым сетом"? Ну что бы я мог прочитать их из
чего то  типа floаt4 color2  : COLOR1;   


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 04 Февраля 2009, 17:09:54
Думаю в текстуре данных будет даже с запасом, и ненужно предугадывать сколько вершин у кроны...

попробывать хотябы использовать для рандома pos.z , но я не знаю как Envelope сообщить о смещении...

Const_47 как из шейдера отправить смещение для канала Envelope, что бы он подал обратно в шейдер текущее значение кривой со смещением? Наверное плохо задал вопрос... не могу сейчас точно сформулировать...


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 04 Февраля 2009, 17:40:20
Не нужно этого делать. Viik имел ввиду написать функцию в hlsl. Ели использовать pos.z тогда те вершины что выше будут
двигаться быстрее или медленее Но все равно в том же направлении . То есть будет закономерность.В идеале для смещения нужно значение в диапазоне 0-1. Тогда timer*=(0.5-rand). Это заставить разные литья
двигатся в разные стороны с разной амплитудой. В идеале для этого подходит Альфа вершины. Есть ище идеи но пока тестю.



Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 04 Февраля 2009, 17:53:50
Вот еше, в том примере используется токо R.x и G.y то есть
компоненту B.z можно попытатся использовать вместо Альфы для
смещения. Третю вершину закрашивать строго в оттенки B без примесей R и G. 


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 04 Февраля 2009, 18:03:28
я тебя понял, отличная идея!


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 04 Февраля 2009, 18:13:42
Вот может понадобится. SpeedTreeRT SDK.  Что то прояснит может в написании этого шейдера.

http://narod.ru/disk/5443508000/%D0%A1%D0%BF%D0%B8%D0%B4%D1%82%D1%80%D0%B8%20sdk.rar.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 04 Февраля 2009, 18:31:52
Рано радоватся, я туплю однако:))). Альфа есть у каждой вершины, а компонент B теоретически в нашем случае только у каждой третей. То есть у первых двух он равен 0!


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 04 Февраля 2009, 21:44:17
Нашел красивую японскую демку,где спидтри технология используется.Демка 2004 года.Интересно можно из нее как то код вытащить,через триде риппер например?
http://narod.ru/disk/5464070000/uani_quest3D_speedtree_rt_technology_demo%20(copy%202).exe.html

«04 Февраля 2009, 22:52:41»
Только что заметил,что листья в ней все синхронно движутся.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 04 Февраля 2009, 23:47:52
можно временно скопировать b состовляющую?, использовать ее для рандом, а затем обнулить ее, ну а в конце вернуть прежнее значение...


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 05 Февраля 2009, 01:22:33
Все вершины нужно закрашивать оттенками b. Вот это b как раз и будет рендомом.





Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 05 Февраля 2009, 01:26:45
В принципе, можно попытаться закрасить вершины с помощью MaxScript


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Viik от 05 Февраля 2009, 11:08:07
Const_47
Можно заюзать синус косинус от координат по горизонтали  ;)
Если правильно выставить амплитуду, то разные деревья\ветки будут двигаться по разному.
Вот еще почитай, может поможет:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch06.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 05 Февраля 2009, 15:21:09
Всю ночь шаманил,как только не пытался и в итоге вроде получилось ;D 
http://narod.ru/disk/5479118000/Berezki.rar.html

Редактирование:
Вариант с возможностью управлять "качкой" - http://narod.ru/disk/5486281000/Berezki%20(copy%202).rar.html


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 05 Февраля 2009, 20:17:22
Покажи cgr. Интересно.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 05 Февраля 2009, 20:46:10
Пока исходник выкладывать не буду,а то сразу не интересно станет. :-\Скажу только,что этот способ без применения шейдеров.Это может любой сделать,если внимательно посмотреть пример Examples\Display & Rendering\Crowd  представив в место персонажа,анимированный листок.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 05 Февраля 2009, 21:29:55
Уже не интересно:)))Я тоже так думал как альтернативу.
Он достаточно быстрый.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 05 Февраля 2009, 21:44:03
Да,способ примитивный,ламерский.Но зато работает :)


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 05 Февраля 2009, 21:47:29
IYV
По кривой можно будет вращать?, что бы эмулировать турбулентность ветра...

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


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 05 Февраля 2009, 21:49:13
&Viik.
Там c Рябиной весь прикол в том что для смещения нужно то же значение, для всех трех вершин каждого листочка. Иначе каждая вершина будет поворачиваться в свою сторону, и со своей скоростью.

Мне кажется оптимальным красить в B все вершины, но при таком
условии, что у каждого листочка все вершины покрашены в то же
значение B, причем на разных листочках значения B отличаются.

Хотя гемора тут больше чем оптимальности:)))   


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 05 Февраля 2009, 21:55:40
IYV
По кривой можно будет вращать?, что бы эмулировать турбулентность ветра...

В идеале скорость должна быть такой, что бы можно было парк засадить кустами и деревьями...
Но как ты сделаешь анимацию одного листочка в максе,так он и будет вращаться.


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Const_47 от 05 Февраля 2009, 21:58:18
&Ruslan
Скорее всего да, там к каналу DX8 FastSkinning матрицы для обьектов линкуються. В идеале собрать в ООП класс и налепить
себе инстансов по сцене. Если cкининг не используется тогда Fast Multi Object Data сhannel.   


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: Ruslan от 05 Февраля 2009, 21:59:39
как ты экспортировал анимацию вертексов?


Название: Re: kak zdelat shtobi obekt vsegda smotrel na cameru
Отправлено: IYV от 05 Февраля 2009, 22:08:17
как ты экспортировал анимацию вертексов?
Нужна анимация только одного... :) одного отдельного полигона.