forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   процедурные текстуры (http://forum.boolean.name/showthread.php?t=430)

jimon 16.12.2005 22:30

какие алгоритмы существуют ? ну или хотябы вы слышали о них ? :)

я лично слышал о :
фрактальные текстуры
текстуры на основе шумов
текстуры на основе еффектов
текстуры на основе алгоритмов векторной графики
rnd текстуры
формульные текстуры


кто еще какие может предложить методы ?

stinger25 31.03.2006 03:59

а кроме перечня реализаций, есть какие нить примеры?...

tormoz 31.03.2006 04:47

демо 64к задумал делать ? :)

Перечисленными тобой способами можно что угодно нарисовать
весь вопрос в подборе параметров - а это такой геммор... Врагу не пожелаешь

jimon 31.03.2006 20:09

1) смотрите на дату создания темы
2) вся идея появилась после того как я скачал aDDict2 и посмотрел как там текстурки делаются ... если чесно то ето слишком просто :)

tormoz 01.04.2006 01:55

стингер блин на даты не смотрит !
а я просто жмакнул "новые сообщения"

stinger25 02.04.2006 13:25

подумаешь... в теме не было ответов... но можно было бы и ответить... а если бы этот вопрос задала не в конце декабря а неделю назад? не послали же вы бы на этот пустой топик.... я лично встретил только неско примеров... у jimm текстура рисуется программно... а еще как я понял у гамы kreeger текстуры программно рисуются

jimon 02.04.2006 19:35

где то видел очень класную статью на 8 страниц по фракталам
полное описание , с примерами - постройка деревьев и тд :)

если найду - дам ссылку

jimon 02.04.2006 22:37

так !

читать вот ето : http://codenet.ru/progr/fract/ :)
гугл полезные картинки выдает :) http://images.google.com/images?q=fractals...images&ct=title
wikIpEdia :) http://en.wikipedia.org/wiki/Fractal
http://en.wikipedia.org/wiki/Mandelbrot_set
http://en.wikipedia.org/wiki/Buddhabrot (очень красивый рендер - как зделали - вникаю :/ )

вообщем я буду добавлять ссылки - если кто что полезное найдет - выкладывайте

jimon 02.04.2006 23:31

скачал Apophysis
оффигенно - если взять у них метод рендеринга, то редактор фракталов уже есть :)

stinger25 03.04.2006 15:58

спасибо... очень занимательно. читаю... разбираюсь....

jimon 03.04.2006 22:08

у кого есть алгоритм рисования множества мондельброта (может быть неправильно написал) - поделитесь !
нужен алгоритм прямого получения координат x,y :)

stinger25 04.04.2006 03:26

есть исходный код его постороения на dark basic ... но я думаю математику там сохранилили... выложу в ближайшие пару дней

jimon 05.04.2006 09:00

очень долго парился с выходной точкой ... немог понять где она :)
оказалось x[-2,1] y[-1,1] (может даже меньше)
теперь надо нормально нарисовать - и зделать пару модификаций рендера

Код:

Graphics 800,600,16,2
SetBuffer BackBuffer()


LockBuffer BackBuffer()
For x_c# = -2 To 1 Step 0.02
For y_c# = -1 To 1 Step 0.02

        x#=x_c
        y#=y_c

        x0#=x
        y0#=y

        x2# = x*x
        y2# = y*y

        iteration = 0
        maxiteration = 1000

        run = 1

        While run=1

 y# = 2*x*y + y0
 x# = x2 - y2 + x0
 x2 = x*x
 y2 = y*y

 iteration = iteration + 1

 If (x2+y2)=>4 Then run = 0
 If iteration>=maxiteration Then run =0

        Wend


        If iteration >= maxiteration Then
 z#=0.01
 WritePixelFast x/z+400,y/z+300,$FFFFFF
        EndIf

Next
Next
UnlockBuffer BackBuffer()

Flip 0
DebugLog "draw _ ok"

WaitKey
End


jimon 05.04.2006 19:38

в общем с рендером я удачно сошолся :) оказалось неочень и сложно ...

stinger25 05.04.2006 20:04

Вложений: 2
воть... как и обещал... код реализации того самого множества на DarkBasic.

jimon 05.04.2006 22:08

у меня по красивее будет :)
Код:

Graphics 640,480,16,2
SetBuffer BackBuffer()

x_min# = -3.2
x_max# = 3.2
Const step_x# = 0.01

y_min# = -2.4
y_max# = 2.4
Const step_y# = 0.01

zoom# = 100

or_x = 320
or_y = 240

time_start = MilliSecs()

Cls

LockBuffer BackBuffer()

For x# = x_min To x_max Step step_x
For y# = y_min To y_max Step step_y

op#=0
oq#=0
p#=0
q#=0
itr=0

While ( op+oq<4 And itr < 96)
        p = p*q*2 + y
        q = op-oq + x
        op = p*p
        oq = q*q
        itr = itr + 1
Wend


x_draw# = x*zoom+or_x
y_draw# = y*zoom+or_y

WritePixelFast x_draw,y_draw,IntColor(op Shl 2,itr Shl 1,itr,255),BackBuffer()

Next

AppTitle x#
Next

UnlockBuffer BackBuffer()

Flip

AppTitle MilliSecs()-time_start

WaitKey
End

Function IntColor(R,G,B,A=255)
Return A Shl 24 Or R Shl 16 Or G Shl 8 Or B Shl 0
End Function



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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot