Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Обсуждение > Flash-арт

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.06.2003, 20:45
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 11  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Первый кадр:

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();

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

Круто...

Старый 21.06.2003, 20:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 12  
etc
Et cetera
 
Аватар для etc

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

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

Старый 21.06.2003, 21:18
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 13  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
2ETC

Чем ковырял?
Я flasm'ом.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 21.06.2003, 21:31
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 14  
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
ребят на мой взгляд 10 килов для "ЭТОГО" это вполне неплохо но то как парень изворачивался... мама мия вопрос: нафиг?
__________________
I'm only happy when it rains.
Waka Laka

Старый 21.06.2003, 21:42
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 15  
etc
Et cetera
 
Аватар для etc

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

Старый 23.06.2003, 12:47
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 16  
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
2DeliMIter:
932 кадра??? это жестоко.
__________________
Мы не съедобны.

Старый 23.06.2003, 17:46
bunker6 вне форума Посмотреть профиль Отправить личное сообщение для bunker6 Посетить домашнюю страницу bunker6 Найти все сообщения от bunker6
  № 17  
bunker6
for the lulz
 
Аватар для bunker6

Регистрация: Jul 2001
Адрес: Princeton, NJ, USA
Сообщений: 4,769
Отправить сообщение для bunker6 с помощью ICQ
на IP 3.06 HT колыхается у 50-60% и еще дофига чего работает типа музыки и прочей дряни
__________________
Jan tan ma pi pona tawa ma ale.

Старый 23.06.2003, 18:04
cyraxchel вне форума Посмотреть профиль Отправить личное сообщение для cyraxchel Найти все сообщения от cyraxchel
  № 18  
cyraxchel
"Аинслей"
 
Аватар для cyraxchel

Регистрация: Apr 2003
Адрес: Russia, Chelyabinsk
Сообщений: 359
Отправить сообщение для cyraxchel с помощью ICQ
По умолчанию offTop

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

Старый 23.06.2003, 19:51
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 19  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Оффтоп с негодованием отметаем и продолжаем муссировать тему :)))))))

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

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

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

Успехов.
Вложения
Тип файла: zip testfps.zip (8.8 Кб, 83 просмотров)
__________________
...убивать людей не удовольствия ради, но для еды.


Последний раз редактировалось DeliMIter; 23.06.2003 в 19:54.
Старый 24.06.2003, 12:31
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 20  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Да, вчера забыл добавить. Последний гвоздь в крышку гроба.

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

Бай-бай.
__________________
...убивать людей не удовольствия ради, но для еды.

Создать новую тему   Часовой пояс GMT +4, время: 23:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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