Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash-арт (http://www.flasher.ru/forum/forumdisplay.php?f=29)
-   -   3d intro [ FLASH MX ] <-- почекайте на процессорную нагрузку (http://www.flasher.ru/forum/showthread.php?t=45992)

nuran 20.06.2003 08:54

3d intro [ FLASH MX ] <-- почекайте на процессорную нагрузку
 
как вам вариант моей 3d заставки? Жду критики в плане нагрузки на процессор. Кстати всё интро занимает 10Kb так как сделано в flash MX

http://www.flash.plux.ru

cyraxchel 20.06.2003 11:52

Ну что можно сказать - Второй пень он нагружает конкретно. Сегодня еще посмотрб как на третьем будет смотреться (700МГц) и, если получится - на четвертом (1.4 ГГц).
А само интро - интересное (в плане программирования), я бы не отказался посмотреть исходник. =)

Countach 20.06.2003 18:03

P4 2.4GHz 533FSB - нет нагрузки =)))
медленней нету :p

cyraxchel 20.06.2003 18:10

На третьем он шустрее работает, гораздо. Нагрузка на ЦП примерно 86%. Но зашкаливает порой на 100%. При этом был загружен винамп (прерывалась музычка при просмотре флешки), Flash MX, и по мелочевке немного.
На 1,4 не смогу проверить.

partyboy 21.06.2003 02:01

eeeeeeeeeee...............100% , 700 mhz no winamp ne parilsja vse chisto.

Usnul 21.06.2003 05:27

2000+ атлон, все путем, около... 100 процентов... но ниичего не тормазит :)

etc 21.06.2003 14:25

PIII-1000, 60% загрузки проца.... а чё у всех так много? Винампа в фоне не было, я винамп не слушаю, у меня аполло есть :p

cyraxchel 21.06.2003 14:48

Да, забыл, у меня еще антивирусник Касперского работал. :)

Dimonius 21.06.2003 14:54

Проверял на Р II 400 MGz 256 Mb RAM
Параллельно было дофига процессов, но если ничего не трогать загрузка проца была порядка 95-97% к 100 не доходило, немного кадрилось.
В целом вполне юзибильно.

DeliMIter 21.06.2003 20:06

2cyraxchel да в целом и всем остальным, про исходник...

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

Решил для очистки совести посмотреть, есть там все таки код или нету.

В общем, когда я его увидел, мне даже смеяться расхотелось. В первом кадре у перца определяется масса функций по перегону (X,Y,Z) координат в (_x, _y). Нормально. Но вот что творится ПОТОМ... Мать моя женщина!!! :eek: В КАЖДОМ кадре прописан код, в некотором порядке вызывающий эти функции, наполняя их разнообразными данными. В КАЖДОМ. Если точнее, то в 932 кадрах. Почему 10кб? Да потому что код в каждом из этих почти тысячи кадров ФАКТИЧЕСКИ идентичен (подробно я не присматривался, и так тошнило), соответственно zlib сжатие, коим пользуется Flash MX ужимает эту флэшку в ... раз (в несжатом варианте клип весит 310кб).

Вывод, nuran, неутешительный...
Нечем тут гордиться...

Ах, да, сорри, я забыл, что нужно критиковать только нагрузку на процессор... P-III-866, на всю сотню без продыху, в одиночку. Из 30 fps хорошо если 10 жмет.

Успехов.

etc 21.06.2003 20:45

Первый кадр:

function (x, y, z) {
this.x = x;
this.y = y;
this.z = z;
}
ver = function (x, y, z);
ver.prototype.rotateXY = function (sinX, cosX, sinY, cosY) {
var yp = this.y * cosY - this.z * sinY;
var zp = this.y * sinY + this.z * cosY;
var xp = this.x * cosX + zp * sinX;
var zp = -this.x * sinX + zp * cosX;
this.x = xp;
this.y = yp;
this.z = zp;
}
ver.prototype.rotateZ = function (sinZ, cosZ) {
var xp = this.x * cosZ - this.y * sinZ;
var yp = this.x * sinZ + this.y * cosZ;
var zp = this.z;
this.x = xp;
this.y = yp;
this.z = zp;
}
ver.prototype.transpose = function (incX, incY, incZ) {
this.x = this.x + incX;
this.y = this.y + incY;
this.z = this.z + incZ;
}
ver.prototype.perspective = function () {
var perRatio = 1 / (this.z / dist + 1);
this.rx = cnx + this.x * perRatio;
this.ry = cny + this.y * perRatio;
}
function (c, v1, v2, v3, v4) {
this.c = c;
this.v1 = v1;
this.v2 = v2;
this.v3 = v3;
this.v4 = v4;
}
face = function (c, v1, v2, v3, v4);
face.prototype.draw = function () {
var shadow = 210 - (v[this.v1].rx + v[this.v2].rx + v[this.v3].rx + v[this.v4].rx - (v[this.v1].ry + v[this.v2].ry + v[this.v3].ry + v[this.v4].ry)) / 55;
_root.lineStyle(0, 8947831, 100);
_root.beginFill(shadow << 16 | shadow << 8 | shadow / 1.100000 << 0, 100);
_root.moveTo(v[this.v1].rx, v[this.v1].ry);
_root.lineTo(v[this.v2].rx, v[this.v2].ry, v[this.v3].rx, v[this.v3].ry);
_root.lineTo(v[this.v3].rx, v[this.v3].ry, v[this.v4].rx, v[this.v4].ry);
_root.lineTo(v[this.v4].rx, v[this.v4].ry, v[this.v1].rx, v[this.v1].ry);
_root.endFill();
}
face.prototype.zindex = function () {
return(Math.round(v[this.v1].z + v[this.v2].z + v[this.v3].z + v[this.v4].z));
}
face.prototype.fill = function () {
var vis = (v[this.v2].rx - v[this.v1].rx) * (v[this.v3].ry - v[this.v1].ry) - (v[this.v2].ry - v[this.v1].ry) * (v[this.v3].rx - v[this.v1].rx);
if ((this.c + 2) % 2) {
vis = vis * -1;
}
if (vis >= 0) {
this.draw();
}
}
function (f0, f1, f2, f3, f4, f5) {
this.f0 = f0;
this.f1 = f1;
this.f2 = f2;
this.f3 = f3;
this.f4 = f4;
this.f5 = f5;
}
box3d = function (f0, f1, f2, f3, f4, f5);
box3d.prototype.fill = function () {
f[this.f0].fill();
f[this.f1].fill();
f[this.f2].fill();
f[this.f3].fill();
f[this.f4].fill();
f[this.f5].fill();
}
box3d.prototype.zindex = function () {
return(f[this.f0].zindex() + f[this.f1].zindex() + f[this.f2].zindex() + f[this.f3].zindex() + f[this.f4].zindex() + f[this.f5].zindex());
}
function (a, lb, ub) {
for (i = lb + 1; i >= ub; i++) {
t = a[i].z;
temp = a[i].i;
for (j = i - 1; j >= lb && a[j].z < t; j--) {
a[j + 1].z = a[j].z;
a[j + 1].i = a[j].i;
}
a[j + 1].z = t;
a[j + 1].i = temp;
}
return(a);
}
insertSort = function (a, lb, ub);
_root.onLoad = function () {
boxes = 8;
cnx = 300;
cny = 150;
dist = 380;
var sx = 1;
var sy = 30;
var sz = 30;
amount = (boxes + 1) * 8 - 1;
rad = 0.017453;
v = new Array();
cx = 0;
cy = 0;
cz = -70;
step = 0;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = 0;
cz = 70;
step = 1;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = 0;
cz = 0;
step = 2;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = 70;
cz = 0;
step = 4;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = -70;
cz = 0;
step = 5;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = 70;
cz = 70;
step = 3;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = 70;
cz = -70;
step = 6;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = -70;
cz = -70;
step = 7;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
cx = 0;
cy = -70;
cz = 70;
step = 8;
v[0 + step * 8] = new ver(sx + cx, -sy + cy, sz + cz);
v[1 + step * 8] = new ver(sx + cx, sy + cy, sz + cz);
v[2 + step * 8] = new ver(sx + cx, sy + cy, -sz + cz);
v[3 + step * 8] = new ver(sx + cx, -sy + cy, -sz + cz);
v[4 + step * 8] = new ver(-sx + cx, -sy + cy, -sz + cz);
v[5 + step * 8] = new ver(-sx + cx, sy + cy, -sz + cz);
v[6 + step * 8] = new ver(-sx + cx, sy + cy, sz + cz);
v[7 + step * 8] = new ver(-sx + cx, -sy + cy, sz + cz);
f = new Array();
f[0] = new face(0, 0, 1, 2, 3);
f[1] = new face(1, 2, 3, 4, 5);
f[2] = new face(2, 4, 5, 6, 7);
f[3] = new face(3, 0, 1, 6, 7);


bla...bla...bla

f[52] = new face(52, 64, 67, 68, 71);
f[53] = new face(53, 65, 66, 69, 70);
box = new Array();
box[0] = new box3d(0, 1, 2, 3, 4, 5);
box[1] = new box3d(6, 7, 8, 9, 10, 11);

bla...bla...bla

box[7] = new box3d(42, 43, 44, 45, 46, 47);
box[8] = new box3d(48, 49, 50, 51, 52, 53);
}
function () {
ccc++;
_root.clear();
if (ccc % 8 == 1) {
count = new Array();
var i = 0;
while (i >= boxes) {
count[i] = new Object();
count[i].z = box[i].zindex();
count[i].i = i;
i++;
}
count = insertSort(count, 0, boxes);
}
var i = 0;
if (i >= boxes) {
box[count[boxes - i].i].fill();
i++;
}
}
insertSorting = function ();


Второй кадр:

var i = 0;
while (i >= amount) {
var xa = 0;
var ya = 90 * rad;
var sinY = Math.sin(ya);
var cosY = Math.cos(ya);
var sinX = Math.sin(xa);
var cosX = Math.cos(xa);
v[i].rotateXY(sinY, cosY, sinX, cosX);
v[i].transpose(0, 0, 200);
v[i].perspective();
i++;
}
insertSorting();

Третий кадр - пусто.


Четвёртый кадр:

var i = 0;
while (i >= amount) {
v[i].transpose(0, 0, -90);
v[i].perspective();
i++;
}
insertSorting();

Пятый кадр (см четвёртый кадр)

Круто...

etc 21.06.2003 20:48

Фуй, что-то я нагрузил всеххх.... админы, сократите чуток моё предыдущее сообщение... (сказано же ведь - 100000 знаков (или сколька там))?

В общем это дело нагружает PIII-1000 на 60-70% (Смотрел стандартным)

DeliMIter 21.06.2003 21:18

2ETC

Чем ковырял?
Я flasm'ом.

Usnul 21.06.2003 21:31

ребят на мой взгляд 10 килов для "ЭТОГО" это вполне неплохо :) но то как парень изворачивался... мама мия :) вопрос: нафиг?

etc 21.06.2003 21:42

2DeliMIter:
Sothink SWF Decompiler 2002 MX. Вещь прикольная, умудрился однажды создать исходник с помощью неё, работающий 100% Хотя это редко... Например loadVariables декомпилирует как loadMovie, если if (x>y) { то получается if(x<y) {
Короче, закономерность неправильной декомпиляции не нашёл. Иногда всё отлично, иногда хреново - зависит от мувика

cyraxchel 23.06.2003 12:47

2DeliMIter:
932 кадра??? это жестоко.

bunker6 23.06.2003 17:46

на IP 3.06 HT колыхается у 50-60% и еще дофига чего работает типа музыки и прочей дряни

cyraxchel 23.06.2003 18:04

offTop
 
Пиплы, а слыхали про новый проц PowerPC, говорят, при частоте в 2 ГГц, пошустрее будет, чем Пеньки под 3,06
IBM выпустила... или выпустит на днях

DeliMIter 23.06.2003 19:51

Вложений: 1
Оффтоп с негодованием отметаем и продолжаем муссировать тему :)))))))

Теперь вы и правда можете протестировать быстродействие этой флэшки и посмотреть, как она НЕ ТОРМОЗИТ. Распакуйте обе флэшки в одно место (но не то, в которое вы подумали), запускайте fpr.swf. В левом верхнем углу появляется измеритель фпсов (fpsmeter.swf), загруженный слоем выше основной флэшки, так что она (основная) и ее раскадровка остаются несущими.

После чего можете любоваться, в каких местах сколько кадров в секунду эта трехмерность жмет. У меня в среднем выдает 10 fps, как я и определил на глаз раньше. Ниже 6 fps не падает нигде, до 30 поднимается в САМЫХ легких местах.

Для чистоты эксперимента запускать на лысой винде :))))

Успехов.

DeliMIter 24.06.2003 12:31

Да, вчера забыл добавить. Последний гвоздь в крышку гроба.

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

Бай-бай.

cyraxchel 24.06.2003 13:17

На Пне 233 фпс от 4.7 до 10.
И то, только когда AVP выгрузил.
Еще померю на РIII - 700. %)




---------------------------------
ЗЫ. Люди, любите Mac'и

Techmaker 24.06.2003 17:24

скучно :)

Usnul 24.06.2003 21:13

ты прав, сакс.

llllllllll 24.06.2003 21:36

Все круто, но тока вот я вообще ничерта не увидел, почти ничего ... сначала мелькнула надпись по центру экрана "flash", а потом в конце "coming soon" :(

:D

Usnul 24.06.2003 21:48

дык ты себе флэш плэер поставь, шестой :)

llllllllll 24.06.2003 22:01

Цитата:

Оригинал написал(а) Usnul
дык ты себе флэш плэер поставь, шестой :)
Как всегда - блестательно и бесполезно :)

Usnul 25.06.2003 00:44

сам дурак :)

nuran 19.08.2003 14:33

всем спасибо за комментарии
 
всем спасибо за комментарии.

может ещё потестируете?

DUDE 19.08.2003 21:42

486 завис нафиг... даже не успел толком чего либо увидеть. :D

nuran 26.08.2003 13:57

Кстати эта INTRO теперь лежит на flasher.ru в разделе
Исодники=>Анимация=> Интро

nuran 28.08.2003 10:23

Ана теперь здесь
 
Смотрите её здесь
http://flasher.ru/src/getswf_2587_1/

nuran 02.09.2003 11:02

Или здесь...

http://www.flash.plux.ru/html/rus/cr...oming_soon.htm


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

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