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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 25.06.2004, 05:15
Nucer вне форума Посмотреть профиль Отправить личное сообщение для Nucer Посетить домашнюю страницу Nucer Найти все сообщения от Nucer
  № 31  
Nucer
[++]
 
Аватар для Nucer

Регистрация: Jan 2003
Адрес: Москва
Сообщений: 839
Отправить сообщение для Nucer с помощью ICQ
Я конечно вообще не в тему, но хочу спросить nuran'а, как ты реализовал определение видимости граней? В смысле видимости юзером? Просто пытаюсь сделать простенький движок...

Старый 25.06.2004, 10:32
MixailV вне форума Посмотреть профиль Отправить личное сообщение для MixailV Найти все сообщения от MixailV
  № 32  
MixailV

Регистрация: Mar 2004
Адрес: Россия, Самара
Сообщений: 29
Отправить сообщение для MixailV с помощью ICQ
to Dindin: лана, пободаемся еще раз В ссылке на готовый класс (image distortion) у чела все сделано вот так (основа, нет смысла весь код приводить):
v2.update = function () {
var v5 = Math.atan2;
var v7 = Math.sqrt;
var v12;
var v11;
var v9;
var v3;
var v6;
var v2;
var v4;
var v10;
var v13;
var v8;
this._x = this.p0.sx;
v11 = this._x;
v3 = this.p1.sx - v11;
this._y = this.p0.sy;
v9 = this._y;
v6 = this.p1.sy - v9;
v10 = v5(v6, v3);
v2 = this.p2.sx - v11;
v4 = this.p2.sy - v9;
v13 = v5(v4, v2);
v8 = (v10 - v13) / 2;
this._rotation = 57.29577951308232 * (-v8 + v10);
this._yscale = 100 * Math.tan(v8);
v12 = 70.71067811865474 / Math.cos(v8);
this.innerClip._xscale = (v7(v2 * v2 + v4 * v4) / v12) * this.t_width;
this.innerClip._yscale = (v7(v3 * v3 + v6 * v6) / v12) * this.t_height;
};

А теперь найди десять отличий (старый исходник DEAF'а):
x01 = x0-x1;
y01 = y0-y1;
x21 = x2-x1;
y21 = y2-y1;
alfa = Math.atan2(y01, x01)*180/Math.PI;
beta = Math.atan2(y21, x21)*180/Math.PI;
gama2 = (alfa-beta)/2;
delta = 45-gama2;
cosdelta = Math.cos(Math.PI/180*delta);
sindelta = Math.sin(Math.PI/180*delta);
this._rotation = alfa-90-gama2;
this._x = x1;
this._y = y1;
this._xscale = (cosdelta-sindelta)*100;
this._yscale = (sindelta+cosdelta)*100;
this.v._rotation = 45;
this.v._xscale = Math.SQRT(x21*x21+y21*y21);
this.v._yscale = Math.SQRT(x01*x01+y01*y01);
(здесь ниче не оптимизировано специально для наглядности..., если чуток подогнать, то будет фактически одно и тоже, что в верхнем исходнике)

Так вот с какого фига модный класс, на который ты указал, будет работать быстрее, и лучше?????? Нифига подобного!!!!


tpNucer: видимость полигона
vid = (x2-x0)*(y1-y0)-(y2-y0)*(x1-x0);
if (vid>0) {полигон видно} else {невидно}
__________________
Взгляд неискушенного зорче, слова ребенка честнее, простые пути - верны ...

Старый 25.06.2004, 11:00
MixailV вне форума Посмотреть профиль Отправить личное сообщение для MixailV Найти все сообщения от MixailV
  № 33  
MixailV

Регистрация: Mar 2004
Адрес: Россия, Самара
Сообщений: 29
Отправить сообщение для MixailV с помощью ICQ
Да и вообще мне не интересно кто что сделал и как сделал, меня интересовал только конкретный ответ на мой вопрос (см. название топика), на который так никто и не ответил.......
__________________
Взгляд неискушенного зорче, слова ребенка честнее, простые пути - верны ...

Старый 25.06.2004, 11:57
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 34  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Цитата:
Оригинал написал(а) Dindin
Если вы хотели сделать Skew быстрее - вам указали ссылку на готовый класс. Но вы же, господа, начали низа что ни про что лажать совершенно незнакомых вам людей. Кроме того, лажать совершенно безосновательно. Меня лично больше всего задело именно это.
К твоему сведению, это совсем не skew класс, а planar distortion. Если не знаешь о чём здесь люди толкуют - лучше помолчи.

Бред? Ну ну. Кто бы говорил.

Вы вообще тут кто собрались? Кто-нибудь что-нибудь понимает? Я про 3d и про всё остальное - геометрическое?
__________________
flash/flex/unity

Старый 25.06.2004, 12:00
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 35  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Цитата:
Оригинал написал(а) MixailV
[b]Так вот с какого фига модный класс, на который ты указал, будет работать быстрее, и лучше?????? Нифига подобного!!!!/B]
Да не слушай ты людей, которые в этом ничего не понимают.

Они ведь только и могут - ссылаться на других. Это там про dindin, iLoveYou etc...
__________________
flash/flex/unity

Старый 25.06.2004, 12:02
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 36  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
2MixailV
Цитата:
skew через матрицы?
Можно ли исправить допустим через Flasm байт код функции таким образом, чтобы трансформацию клипа делать через матрицы (тем более что все трасформации в движке плеера через них и делаются...)
трудно получить конкретный ответ на неконкретный вопрос,
тем более что вопрос-то по существу риторический:
байт код можно модифицировать солько угодно , но только до тех пор это остается понятным плееру,
т.е. для реализации этой идеи надо модифицирвать еще и плеер, что убивает саму идею на корню
и еще: введение подобных функций управления растрами дает несомненное удобство в кодировании,
но прирост производительности отнюдь не очевиден,поскольку 'движок флэш плеера все равно все преобразования над клипом делает с помощью всего лишь одной матрицы трансформаций '
(кстати откуда информация мы так и не услышали)


Последний раз редактировалось silin; 25.06.2004 в 12:09.
Старый 25.06.2004, 12:03
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 37  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Цитата:
Оригинал написал(а) Nucer
Я конечно вообще не в тему, но хочу спросить nuran'а, как ты реализовал определение видимости граней? В смысле видимости юзером? Просто пытаюсь сделать простенький движок...
Видимость в два проходя делается.
Первым проходом ты убираешь все грани, вершины которых расположены не по часовой стрелке, вторым проходом ты сортируешь все оставшиеся по z глубине.
Если используешь камеру, то z вычисляешь по направляющему вектору камеры.
У меня здесь, на flasher.ru лежит движёк, который реализует убирание граней и сортировку их, но без камеры.

Смотри здесь:

http://flasher.ru/src/getswf_2731_1/

Или качай его прямо отсюда:

http://flasher.ru/src/getfile_2731/
__________________
flash/flex/unity

Старый 25.06.2004, 12:05
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 38  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Про часовую стрелку есть тоже тут, на flasher.ru в моём уроке:

http://www.flasher.ru/tutorial/viewtut.php?id=156
__________________
flash/flex/unity

Старый 25.06.2004, 12:08
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 39  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Цитата:
Оригинал написал(а) MixailV
tpNucer: видимость полигона
vid = (x2-x0)*(y1-y0)-(y2-y0)*(x1-x0);
if (vid>0) {полигон видно} else {невидно}
Да вот оно как раз и есть, определение по часовой стрелке или нет. После этого все оставшиеся грани (у которых по часовой стрелке вершины) нужно отсортировать по z координате, допустим там тривиальной пузырьковой сортировкой, или вставками или ... быстрой сортировкой, ну в общем любой сортировкой.
__________________
flash/flex/unity

Старый 25.06.2004, 12:16
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 40  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Для MixailV.

У меня ещё круче код. Там не нужно вкладывать картинку в несколько MovieClip'ов, не нужно её размещать как то определённо (ну там повернуть на 45 градусов, или отцетрировать или ещё как нибедь над ней извращаться).

У меня лежит один MovieClip в библиотеке.
Далее, где нужно воспользоваться этой текстурой мы пишем:

Код:
BuildOrthogonalTexture(имя символа в библиотеке, имя новой создаваемой текстуры).
Далее, где нужно натянуть её, пишем
Код:
DrawOrthogonalTexture(координаты трёх точек);
Самое прикольное, что он сам определяет все размеры исходного клипа, можно даже его растянуть по ширине или по высоте, результат не изменится, и не важно - отцентрирован он или нет. Я не говорю, что это что-то новое, но это очень удобно, для игр там и прочего - любые размеры текстуры.

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

http://nuran.org/lab/flash/0007.htm

Если интересно конечно ...
__________________
flash/flex/unity

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

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

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


 


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


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