Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Вс Авг 26, 2012 11:02 Заголовок сообщения: Processing XOR sphere |
|
|
найдено тут:
http://www.openprocessing.org/sketch/4289
переписал на PureBasic'e - работает, как ни странно:
Код: |
;http://www.openprocessing.org/sketch/4289
If InitSprite() And OpenWindow(0,0,0,640,480,"XOR sphere",#PB_Window_SystemMenu) And OpenWindowedScreen(WindowID(0),0,0,640,480,0,0,0)
p.i=0
w=255
Repeat
; Sleep_(1)
StartDrawing(ScreenOutput())
For j=0 To 128;w-1
y.f=-1+2*j/128;w
For i=0 To 128;w-1
x.f=-1+2*i/128;w
d.f=Sqr(x*x+y*y)
t.f=(3-Sqr(4-5*d*d))/(d*d+1)*w
z.i=Int(y*t+p)!Int(x*t+p)
Plot(i,j,RGB(z&w,0,0))
Next i
Next j
StopDrawing()
p=p+1
FlipBuffers()
Until WindowEvent()=#PB_Event_CloseWindow
EndIf
|
Далее, захотелось реализовать алгоритм без FPU,переписал на Паскале:
Код: | program xorsphere;
uses crt;
var p,z:integer;
i,j:byte;
x,y,d,t:real;
begin
asm
mov ax,13h
int 10h
end;
p:=0;
repeat
for j:=0 to 199 do begin
y:=-1+2*j/199;
for i:=0 to 255 do begin
x:=-1+2*i/255;
d:=sqr(x*x+y*y);
t:=(3-sqr(4-5*d*d)/(d*d+1))*255;
z:=round(y*t+p) xor round(x*t+p);
mem[$a000:j*320+i]:=z shr 8;
end;
end;
p:=p+1;
until keypressed;
end. |
и получилась полная фигня. стал искать, в чем ошибка, получилось, что t.f=(3-Sqr(4-5*d*d))/(d*d+1)*w дает NaN, и как код работает дальше вообще неясно. Неясно, почему получается невнятная картинка во втором коде.
и неясно, как быть далее - игнорировать отрицательное значение, или нужен хитрый трюк? |
|
Вернуться к началу |
|
|
SCRIMERS
Зарегистрирован: 21.03.2008 Сообщения: 270 Откуда: Sevastopol
|
Добавлено: Вс Авг 26, 2012 15:24 Заголовок сообщения: |
|
|
попробуй на делфях
там есть значения "минус беконечность", "плюс бесконечность" и "неопределено".
Кстати все эти значения вполне имеют конкретное значение, протсо их так интерпритирует среда разработки _________________ на русской Сцене мы удивляем друг друга тем, что вообще что-то делаем (с) manwe |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Авг 26, 2012 19:23 Заголовок сообщения: |
|
|
SCRIMERS писал(а): | попробуй на делфях
там есть значения "минус беконечность", "плюс бесконечность" и "неопределено".
Кстати все эти значения вполне имеют конкретное значение, протсо их так интерпритирует среда разработки |
ну он то ведёт к тому, чтоб на ASM было, под MS-DOS, зачем ему делфи?
По теме. Незнаю зачем бороться за исключение FPU. |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Вс Авг 26, 2012 21:30 Заголовок сообщения: |
|
|
BiTL писал(а): |
ну он то ведёт к тому, чтоб на ASM было, под MS-DOS, зачем ему делфи?
По теме. Незнаю зачем бороться за исключение FPU. |
Исключений тут нет, в отладчике OllyDbg не происходит, просто на стеке болтается NaN, и операции с ним опять NyanCat(
грешил на Паскаль, баг был в умножении t на 255, теперь картинка похожая на аналог, но наверняка косяк с данными.
самое грустное, что похожего алгоритма не нашел нигде, чтобы разобраться, в одной интре с кодом черт ногу сломит.
но это лирика.
грустное в шейдере - как подобная ситуация происходит?
может, кодеры из квайта знают? |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Пн Авг 27, 2012 08:01 Заголовок сообщения: |
|
|
ух ты, спасибо. алгоритм не заметил, он кое-что объясняет.
переписал по нему код, теперь "рыбий глаз":
Код: |
For j=0 To w-1
For i=0 To w-1
;vec2 p = -1.0 + 2.0 * gl_FragCoord.xy / resolution.xy;
x.f=-1+2*i/w
y.f=-1+2*j/w
;float r =sqrt(dot(p,p));
r.f=Sqr(x*x+y*y)
;float f = 1.0 - sqrt(1.0 - r*r);
f.f=1-Sqr(1-r*r)
;uv.x = p.x*f;
uvx.i=Int(w*x*f+p)
;uv.y = p.y*f;
uvy.i=Int(w*y*f+p)
;gl_FragColor = vec4(texture2D(tex,uv).xyz, 1.0);
c.a=uvx!uvy
Plot(i,j,RGB(c,0,0))
Next i
Next j
|
|
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вт Авг 28, 2012 22:37 Заголовок сообщения: |
|
|
BiTL, как ты помнишь все эти интры - где какой эффект и как интра называлась? Это же невозможно, их дохреналлион! |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Ср Авг 29, 2012 13:32 Заголовок сообщения: |
|
|
Manwe писал(а): | BiTL, как ты помнишь все эти интры - где какой эффект и как интра называлась? Это же невозможно, их дохреналлион! |
кстати, тоже удивлен объемом энциклопедических знаний.
отложенная идея пометить ключевыми словами интры пропала.... |
|
Вернуться к началу |
|
|
SCRIMERS
Зарегистрирован: 21.03.2008 Сообщения: 270 Откуда: Sevastopol
|
Добавлено: Чт Авг 30, 2012 20:01 Заголовок сообщения: |
|
|
Manwe писал(а): | BiTL, как ты помнишь все эти интры - где какой эффект и как интра называлась? Это же невозможно, их дохреналлион! |
ОФФТОП: Битл ,почему бы не создать списочек с примерами основных эффектов? _________________ на русской Сцене мы удивляем друг друга тем, что вообще что-то делаем (с) manwe |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Пт Авг 31, 2012 15:06 Заголовок сообщения: |
|
|
SCRIMERS писал(а): | Manwe писал(а): | BiTL, как ты помнишь все эти интры - где какой эффект и как интра называлась? Это же невозможно, их дохреналлион! |
ОФФТОП: Битл ,почему бы не создать списочек с примерами основных эффектов? |
список с иллюстрациями уже есть. сырцы эффектов тоже.
демок с описанными эффектами маловато. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Пт Авг 31, 2012 17:05 Заголовок сообщения: |
|
|
SCRIMERS писал(а): |
ОФФТОП: Битл ,почему бы не создать списочек с примерами основных эффектов? |
на поуэте есть такой топик. Там кто-то собирал список. Правда без описания принципов и алгоритмов.
Однко, я разве против? Займитесь этим, и потомки будут благодарны ) |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Сб Сен 01, 2012 09:35 Заголовок сообщения: |
|
|
BiTL писал(а): | на поуэте есть такой топик. Там кто-то собирал список. Правда без описания принципов и алгоритмов.
Однко, я разве против? Займитесь этим, и потомки будут благодарны ) |
алгоритмы изредка встречаются в амижных исходниках, список на pouet состоит из них? |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Сб Сен 01, 2012 10:32 Заголовок сообщения: |
|
|
bi71 писал(а): |
алгоритмы изредка встречаются в амижных исходниках, список на pouet состоит из них? |
Не пойму о чем ты. Сорцы то там то здесь всякие встречаются. Но структурированной и полной базы классических демо-эффектов с демонстрацией, описанием и исходниками нет нигде.
Вот ты любишь изучать классические демо-эффекты, занялся бы каталогизированием и внятным описанием на русском. Большое дело бы сделал
А если ещё и новые технологии описать, то что с 3д-акселерацией пришло, с начала 2000-х до сего дня, это была бы вообще крутатошка. Давно пора выпустить новый Demodesign FAQ. Может тогда и молодёжь на сцене появится. |
|
Вернуться к началу |
|
|
bi71
Зарегистрирован: 14.07.2012 Сообщения: 872
|
Добавлено: Сб Сен 01, 2012 12:56 Заголовок сообщения: |
|
|
BiTL писал(а): | Не пойму о чем ты. Сорцы то там то здесь всякие встречаются. Но структурированной и полной базы классических демо-эффектов с демонстрацией, описанием и исходниками нет нигде.
|
я к тому, что чтение исходников без знания Амиги не приведет к пониманию эффекта. Закладки утеряны, не могу привести ссылку хранилища со старыми исходниками демо и крэктро. что они из себя представляют? невнятные каменты и код моторолки 68000. пресловутый Chaos Zoomer/Mortal Combat cracktro by Prestige не поймешь нифига.
BiTL писал(а): | Вот ты любишь изучать классические демо-эффекты, занялся бы каталогизированием и внятным описанием на русском. Большое дело бы сделал |
я писал на speccy.info исходники и описание эффектов, но с развитием энциклопедизма участников проекта просто забросил дело.
на каталогизирование нужен нормальный движок, никакой blogspot просто не подходит. пусть лучше драные эффекты с рабочими сырцами и комментариями на страничке поваляются.
рипперство или нет, но неплохой способ изучения имхо.
так что, не с моим косноязычием расписывать. Тем более, что эффект Jello Cube внятно расписать никто не способен, да и алгоритмы утеряны наверняка, я пытался связаться с авторами, ничего не получил.
сейчас последняя отмазка - после вирья DosBox не работает, как надо, какая нафиг каталогизация?
BiTL писал(а): | А если ещё и новые технологии описать, то что с 3д-акселерацией пришло, с начала 2000-х до сего дня, это была бы вообще крутатошка. Давно пора выпустить новый Demodesign FAQ. Может тогда и молодёжь на сцене появится. |
Технологии нужны, в частности работа с текстурами, FBO.Беда в том, что над рабочим примером пропыхтишь сутки и получаешь фиг.
И заодно внятное описание marching cubes не помешало. |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|