[Logo]
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing  
[Register] Register / 
[Login] Login 
flash 3d & alchemy  XML
Forum Index » Flash
Author Message
mono2k


Joined: 19/01/2009 22:47:19
Messages: 3
Offline

День добрый!

Скажите, уважаемые альтернативщики, а вы не пробовали поиграть с адобовским компилятором С++/байт-код? Развиваю свой маленький 3д движок, подумываю, а не перенести ли все геометрические вычисления (трансформация, отсечения, bsp и т.д.) в отдельный модуль, написанный на С/С++, так, что бы на входе были матрицы трансформации объектов сцены, а на выходе был готовый вектор(-ы) с данными для отрисовки. Вроде бы это как раз тот класс задач, где может быть достигнут прирост в скорости.... Или овчинка выделки не стоит и все равно в fill rate векторной рендерилки флеш-плеера упремся?

wolf

[Avatar]

Joined: 31/05/2008 23:19:38
Messages: 1521
Offline

Не копался в Алхимии досконально, но кое-где её, возможно, получится применить. Также часть расчётов можно выводить в PixelBender - тоже вариант. Но в обоих вариантах тратится время на подготовку данных для обработки и распарсивание получившихся результатов, что может свести на нет преимущества в скорости расчётов.

А насчёт Fill rate очень правильное замечание.

This message was edited 1 time. Last update was at 26/01/2009 04:03:37

mono2k


Joined: 19/01/2009 22:47:19
Messages: 3
Offline

Антон, вы конечно правы по поводу подготовки данных... Мне не дает покоя одна мысль - что будет быстрее, хранить и обрабатывать геометрию в AS3 коде через Vector3D + Matrix3D & etc, или загружать геометрию прямиком в код, полностью сгенерированный алхимией, а на вход из AS3 подавать только какие-то конечные матрицы трансформации камеры и объектов сцены.

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

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

С другой стороны, fill rate нас сильно ограничивает сверху по скорости. Да и не известно, как там внутри устроен drawGraphicsData. Т.е. возможно, что падение в скорости из-за увеличения числа треугольников (при неизменной суммарной площади всех спроецированных треугольников) будет сильнее, чем гипотетический выигрыш из-за перехода на алхимию.
superman


Joined: 03/06/2008 11:40:04
Messages: 64
Offline

а все таки интересно реально ли увеличить филл рейт?
может как то рисовать его в битмап? а потом на сченц класть?
 
Forum Index » Flash
Go to:   
Powered by JForum 2.1.8 © JForum Team