Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   3д + DisplacementMapFilter = Идеальная 3д сфера (http://www.flasher.ru/forum/showthread.php?t=101449)

ALiEN_ 18.09.2007 19:58

3д + DisplacementMapFilter = Идеальная 3д сфера
 
Мучая папервижен 3д в голову пришла интересная идея.

Вобщем, если в папервижене делаем сферу с хорошим колличеством полигонов, натягиваем карту на нее да еще и включаем smooth - получаем реальные тормоза. Вот как пример: http://earth.wildsanctuary.com/index2.html

Если карту мы не натягиваем, или не используем smooth, или уменьшаем колличество полигонов - то тормозоа не наблюдаем.

Далее - есть вариант земли сделанный с помощью DisplacementMapFilter, где происходит мгновенная (аппаратная ???) трансформация массива пикселов вообще без тормозов. Вот пример: http://lab.andre-michelle.com/earth

В методе основанном на DisplacementMapFilter у нас происходит перемещение каждого пиксела по опроделенному закону. Закон этот рассчитан заранее и отдается в DisplacementMapFilter в форме изображения BitmapData, где есть например два цвета - один из которых отвечает за перемещение точек по вертикали, а второй по горизонтали. Хорошая статья тут: http://nodename.com/blog/2006/01/16/...lter-tutorial/

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

Такая схема будет работать просто мгновенно - т.е. получим совмещенную модель рендеринга 3д сферы с быстрым наложением текстуры в режиме smooth, бОльшим колличеством полигонов, вобщем лишенную недостатков обеих моделей.

Жду комментов =)

aQuestion 18.09.2007 20:53

Вот вам мой коммент. Через пару дней появится аналогичный коммент с произвольными углами. Но я не вижу, как это может жить в ран-тайм. Хотя, конечно, в АС3 рассчёт пройдёт быстрее... пробуйте.

ALiEN_ 18.09.2007 21:17

Знаете как выразить математически закон перемещения точки для любого угла?

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

Буду ждать коммента через пару дней.

aQuestion 18.09.2007 21:37

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

ALiEN_ 19.09.2007 22:14

Есть успехи? Если хочешь я могу тоже помочь.

aQuestion 20.09.2007 05:59

Пацан сказал - пацан сделал.

ALiEN_ 20.09.2007 16:40

Не вопрос - пацан! Даже не так, а вот так: Пацан - с большой буквы, Респект и уважуха! Не думал что это можно за два дня состряпать! Да что там .... не думал что вообще возможно. =)))) Теперь после такой лести, можно немного и понудить ... =)

Итак, что смущает - DisplavementMap восьмибитный ... а значит глобус без искажений будет максимальным размером 256 на 256. И даже при определенных углах поворота, при карте 256 на 256 также видна ступенчатость.
Конечно, имея такую математическую базу и это можно обойти...

И вот еще вопрос, неужели такой долгий обсчет получается?

Еще раз Респект.

aQuestion 20.09.2007 16:55

Цитата:

Сообщение от ALiEN_
И вот еще вопрос, неужели такой долгий обсчет получается?

Да нет, конечно, там какие-то странные тормоза с изменением _xscale прогресс бара, а так летает... но с ним красивше.

ALiEN_ 20.09.2007 17:12

Ну так вопрос, можно ли сделать реалтайм поворот? Т.е. написать рандомно крутящуюся планету?

И можно ли сделать планету размером более 256 на 256 ?

aQuestion 20.09.2007 17:42

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


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.