Ron Thomas had very interesting fractal code+ something called rosler attractor
much of the code was 16bit, but he had a rosler pseudo3d 32bit windows code, based entirely with 64k pixels spinning around rendered with windows gdi, I saw Homer had much dx3d coding in the other forum, he had one interesting particle demo
it would be cool to make a particledemo where you can zoom,rotate the whole rosler, with small cloudparticles instead of pixel and fullfledged real 3d DirectX or opengl instead of pseudo3d,because I Think a modern computers gfx card easily can handle 64k quads that is used as particles
for those who do not know a rosler attractor looks and simulates kinda a tornado/hurricane
I dont have the time and I am not as skilled with d3d and opengl as others
I am more of oldschool coding guy
maybe siekmanski can produce that kinda code
heres a link to where you can find his stuff
http://www.ronthomas.plus.com/Downloads.html
Had a look at Wikipedia to see what the Rössler attractor is.
It caught my interest. You could do this with a point sprites particle engine in Direct3D.
No promises but when time permits, I will have a look into it.
You made any attemp yet?
@daydreamer2:
Thanks for the info about Rossler attractor . Once I started to learn about Chaos theory ( inspired by forum thread about random numbers ). I have no math / physics background so all that stuff looks alien to me ... but interesting
I think that visualization of Rossler attractor would not be that hard using OpenGl and OptiX frameworks that already have scene manipulation facilities.
Quote from: GoneFishing on December 04, 2017, 09:25:04 PM
@daydreamer2:
Thanks for the info about Rossler attractor . Once I started to learn about Chaos theory ( inspired by forum thread about random numbers ). I have no math / physics background so all that stuff looks alien to me ... but interesting
this is also fun
https://en.wikipedia.org/wiki/Perlin_noise
I love SIMD stuff and look at one made a mersienne twister that produced several random numbers simultanously with SIMD code
I Think I want a to add background small valley landscape and lots of fern fractals animated as in a storm
but I Think it should be applied as texture to a sliightly curved mesh first to improve it to become more 3d
I have trouble with most old libraries and code wont work with newer windows
Quote from: Siekmanski on December 03, 2017, 04:29:33 PM
Had a look at Wikipedia to see what the Rössler attractor is.
It caught my interest. You could do this with a point sprites particle engine in Direct3D.
No promises but when time permits, I will have a look into it.
You made any attemp yet?
I am trying without d3d, I dont get it to work with SSE oldschool sprites where movups gives me different colors, I have no idea what to use as scale factors now when I am not going to use the pseudo3d, but real 3d, mostly I get general protection fault or it shows nothing
might have something todo with starting with minus coordinates?
I made SSE calculation of the rosler
one thing I dont understand is,why does scientist suffice with a pseudo3d view, when you should make a real3d rotatable rosler attractor,its like having technology to photograph the hidden backside of the moon, but dont use it
QuoteI have no idea what to use as scale factors now when I am not going to use the pseudo3d, but real 3d, mostly I get general protection fault or it shows nothing
Normalize and scale the object coords within the range -1.0 to 1.0 on all 3 axis is a good start, then find the correct camera distance to get a good 3D view of the object.
Which 3D api do you use?
Quote
one thing I dont understand is,why does scientist suffice with a pseudo3d view, when you should make a real3d rotatable rosler attractor,its like having technology to photograph the hidden backside of the moon, but dont use it
Maybe because precision is their main goal.
I am still only using ddraw on my old box
I have only managed to get two different 2d rendering,xy and yx, dividing by z wont work yet, I draw one with blue beside one that alternates colors
Hi, playing a bit with an old program I made some years ago of the Lorenz attractor, I have added a little point. It isn't the Rosler attractor, but it is very similar. Quite short code. No accelerated graphic card needed :bgrin:
Full TinyC source code
nice Lorenz Caballero :t
Quote from: caballero on January 14, 2018, 05:28:31 AMFull TinyC source code
Works fine with Pelles C, too - but 50% more size. With Visual C, size is almost tripled ::)
Interesting stuff those attractors. :t
@ Alfonso!
This thing doesn't work for me;pos= (py<<9) + (py<<7) + px;
I used other option but look inverted!
Note: .if edx !=0 && edx !=4 && edx!=20 && edx!=24
because you are drawing rectangles instead of spheres :biggrin:.
File corrected and disabled vkim debug system (500 bytes smaller)
When you initialize a bitmapinfoheader (https://msdn.microsoft.com/es-es/library/windows/desktop/dd318229(v=vs.85).aspx) you have to inform it the y-size in negative, otherwise you will see the results inverted.
In the other hand, if you use another size for your window, you should change the formula for reaching the point you want, obviously.
Quote640 = 512 + 128
Hence:
Quote640 * py = 512 * py + 128 * py = (py << 9) + (py << 7)
In most cases, you just need to do:
YourWidth * py + px
In modern computers you won't see the difference.
> because you are drawing rectangles instead of spheres
??
Yeah, with more vivid tones, it looks better.
Perfect now :t
The sign was lost in translation.
I was calculating number of pixels, not positions: mov eax, py
shl eax, 9
mov ecx, py
shl ecx, 7
add eax, ecx
add eax , px
shl eax , 2 <-------- I forget this
Regarding to Rossler attractor, I have been trying to make one similar to this(https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Roessler_attractor.png/145px-Roessler_attractor.png), without much success. I got something interesting too, but not what I was looking for. If anyone has some spare time and want to dedicate to it, it is supposed that changing the values of the global variables (initial parameters) we can get different scenarios.
Just adding Siemanski's Smooth (for future development) :biggrin:
@caballero:
Perhaps is other the ecuation!
The Rossler attractor equation (taken from wikipedia):
Quote
dx/dt = -y-z
dy/dt = x + Ay
dz/dt = B + z(x - C)
Rossler studied that with A = .2, B = .2, C = 5.7. Though since them the most common parameters studied are A = .1, B = .1, C = 14. I have checked this values too.
My code:
dt = .05, A = -.2, B = .2, C = -5.7, x = -10, y = -1, z = -1
x += ((-(y + z)) * dt);
y += (y*A + x) * dt;
z += ((x-C) * z + B) * dt;
Each value taken gives different path.
Quote from: caballero on January 15, 2018, 05:47:29 AM
Regarding to Rossler attractor, I have been trying to make one similar to this(https://upload.wikimedia.org/wikipedia/commons/thumb/7/75/Roessler_attractor.png/145px-Roessler_attractor.png), without much success. I got something interesting too, but not what I was looking for. If anyone has some spare time and want to dedicate to it, it is supposed that changing the values of the global variables (initial parameters) we can get different scenarios.
Take a look at ron thomas code,how he changes some starting values so it becomes periodically,that way you get the above shape
I see Thomas code. He make a perspective adding y and z axes. To see the Rossler attractor a 3D representation is needed.
would be nice to learn to get the right scaling and zoom in and out with mousewheel, but I got a working clipping, but its hard to see if its a correct rosler curve
also get it right, so I can add some trackball control so you can rotate it
1024x768 version with lot fewer particles
Quote from: HSE on January 16, 2018, 12:33:08 AM
I see Thomas code. He make a perspective adding y and z axes. To see the Rossler attractor a 3D representation is needed.
?????
@daydreamer2
Your sample crashes in my system
Maybe best viewed here
Quote from: caballero on January 20, 2018, 10:31:03 PM
Maybe best viewed here
Very nice view :t
I am experimenting with fewer particles in 1680x1050 with x/z and y/z view
Unfortunatly is ddraw a dead end, but i get a tunnel effect
maybe would be useful when making solar flare
There is an interesting attractor called Aizawa (https://codepen.io/pimskie/pen/MbYgeK). A nice video (https://youtu.be/awWTywfJhwY) of a demo with it. Maybe someone dares with it :t
(http://www.algosome.com/articles/images/aizawa-attractor.jpg)
Quote from: caballero on August 25, 2018, 09:26:18 PM
There is an interesting attractor called Aizawa (https://codepen.io/pimskie/pen/MbYgeK). A nice video (https://youtu.be/awWTywfJhwY) of a demo with it. Maybe someone dares with it :t
(http://www.algosome.com/articles/images/aizawa-attractor.jpg)
Nice demo
Thanks caballero :t
https://www.youtube.com/watch?v=RBqbQUu-p00
https://www.youtube.com/watch?v=KOqrMS06YBA
Interesting lecture video Chaotic Attractors
https://www.youtube.com/watch?v=xZgL2XD4TcA
I have to study how to sort points because in this simple way I'm drawing hidden points over visible points :(
Quote from: Siekmanski on August 25, 2018, 11:58:26 PM
https://www.youtube.com/watch?v=RBqbQUu-p00
https://www.youtube.com/watch?v=KOqrMS06YBA
Interesting lecture video Chaotic Attractors
https://www.youtube.com/watch?v=xZgL2XD4TcA
Very interesting, the shape reminds me of old game: septera core
Quote from: HSE on August 26, 2018, 02:56:35 AM
I have to study how to sort points because in this simple way I'm drawing hidden points over visible points :(
Nicely done :t
Hi,HSE
"aizawa.asm", I like it.
:t
Quote from: HSE on August 26, 2018, 02:56:35 AM
I have to study how to sort points because in this simple way I'm drawing hidden points over visible points :(
looks great :t
but maybe a simple way with blending would be an option:
pixel=(newpixel+oldpixel)/2
or if you use many different colors, do this for each Red,green,blue channel
Quote from: daydreamer on August 26, 2018, 07:13:22 PM
pixel=(newpixel+oldpixel)/2
That could be better than now, but it's not the solution. Thanks.
An initial solution, but only 20000 points now 8).
Good point, Héctor. Here is my version, just a starting point, I have to improved it. No zbuffer, etc. When finished, if anyone interested, I may release the source code. Nacho división (https://www.youtube.com/watch?v=LijLu4PpYvo) :eusa_boohoo:
Fantastic :t
We will be waiting source code :biggrin:.
No more time working on it, so here are the source codes. A lot of improvements can be done.
Just a few news:
- A brighter color for the points
- Zbuffer applied. Points in the background should be in the background now.
The program takes a little while to initiate. After that, if you wait for a few minutes you will see all its attractive as all the points start to displace rotating visibly
Komplot (https://youtu.be/zxuma91a1Mo?list=RDHFuakpV5HAU) :eusa_boohoo:
:t
Great caballero :t
Wouldn't it be possible to use stars instead of points and scale it in one axis to 15% so you get a milky way kinda galaxy?
Some luminous effect to follow the "orbiter" :biggrin:
That's interesting :t
Looks very cool. 8)
Regarding this subject. I have been trying to simulate a star by code, drawing it. But the results are not very realistic. I left here a program in the first stage.
The principle is:
- Drawing four larger light rays on the main axes of the plane
- Other shorter four oblique to the previous ones
- A central circle diffusing as it moves away from the center
As it has not convinced me too much, if you press the "1" button, this box will be blurred. Then four different quadrants appear, it would be interesting to know the opinion of which could be more realistic, if any
Maybe the first stage is not so bad after all.
Thank you.
Hhhhhmmm Maybe another idea is, defining some directions on random for example and diffusing it as going further from the center.
Six main rays:
(https://www.desicomments.com/wp-content/uploads/2017/04/Brilliant-Photo-Of-Stars-600x450.jpg)
Four rays:
(https://www.desicomments.com/wp-content/uploads/2017/04/Beautiful-Stars-Pic-600x450.jpg)
Imposible:
(https://www.desicomments.com/wp-content/uploads/2017/04/Beautiful-Pic-Of-Colorful-Stars.jpg) :biggrin:
Hi Alfonso,
A small example to calculate a 6 point star image.
const float4 constant_pool:register(c0); // constants received from CPU
#define iResolution constant_pool.xyz // viewport resolution in pixels (width, heigth, aspect ratio)
static float star_size = 1.0/3.0;
float4 ps_main(float2 fragCoord:vpos):color // ps_3_0 input semantics, vpos contains the current pixel (x,y) location. This is only valid with ps_3_0.
{
float3 color = 0.0;
fragCoord = abs(fragCoord + fragCoord - (color.rg = iResolution.xy)) / color.g;
color += 1.0 - 2.0*pow(( pow(2.0*fragCoord.x, star_size) + pow(fragCoord.x + fragCoord.y*1.7, star_size) + pow(abs(fragCoord.x - fragCoord.y*1.7), star_size))*0.333333, 1.0/star_size) - color;
return float4(color,1.0);
}
Stars with coloring techniques. :biggrin:
That's great Marinus, thank you :t
A new sprite for an old demo as a starting point
Don't forget the tune (https://youtu.be/HFuakpV5HAU?list=RDHFuakpV5HAU) :eusa_boohoo:
Edited: bigger sprite and window. Can be viewed in full screen.
this is stars I want to make starfield with
Hi!!
Just beginning to play with some color changes in "orbiters". Now some minimum effect with velocity (and until 500000 points in global memory)
Quote from: HSE on December 25, 2018, 09:59:11 AM
Hi!!
Just beginning to play with some color changes in "orbiters". Now some minimum effect with velocity (and until 500000 points in global memory)
looks good :t
Quote from: daydreamer on December 26, 2018, 08:03:56 PM
looks good :t
Thanks daydreamer!
Here is some quite amazing pattern resulting from the product of x, y and z changes. Green is 0.25-1.75 times product media, red less and blue more.
Quote from: HSE on December 27, 2018, 12:00:21 AM
Quote from: daydreamer on December 26, 2018, 08:03:56 PM
looks good :t
Thanks daydreamer!
Here is some quite amazing pattern resulting from the product of x, y and z changes. Green is 0.25-1.75 times product media, red less and blue more.
looks good,thanks now I got ideas,make whole thing bigger and use christmasballs sprites instead?
Quote from: daydreamer on December 29, 2018, 05:07:17 PM
now I got ideas,make whole thing bigger and use christmasballs sprites instead?
We will see what you can do :t
Quote from: HSE on December 30, 2018, 01:14:26 AM
Quote from: daydreamer on December 29, 2018, 05:07:17 PM
now I got ideas,make whole thing bigger and use christmasballs sprites instead?
We will see what you can do :t
ddraw christmasball test(no attractor yet),downsized from 1920x1080 to 1024x768
not finished yet need highlight etc,realtime christmasball1 fpu,realtime christmasball2,scalar SSE
not applied clipping yet so it behaves like pixelshader code for all pixels
Packed SIMD christmasballs
I cant say this on the forum
BUT i luv this sh.......
Thanks guys this is why I adore asm
Quote from: Raistlin on January 10, 2019, 05:18:53 AM
I cant say this on the forum
BUT i luv this sh.......
Thanks guys this is why I adore asm
thanks
wouldnt it be a good idea to make this SIMD multithreaded Raistlin?I dont know how many cores each of us have except I have 4 cores on the new one,so maybe max two threads to begin with?
computing power->beautiful attractors
http://www.masmforum.com/board/index.php?PHPSESSID=af65365f793cf8023130aaf160e7c57c&board=53.0 (http://www.masmforum.com/board/index.php?PHPSESSID=af65365f793cf8023130aaf160e7c57c&board=53.0)
You know me toooo well
Beer and Asm and SIMD/AVX
and wife (must have mention)
and maybe the kid (12 yrs old) forever
HSE 500000points,I think its way too much when zoomed so it becomes many big spheres,so I decided to try code sort them to inside xyzc box and other things
xyzc box lets me control sort size of spheres cant get too big and many min size only pixels
and inspired by unicode flags in other thread of course we must have a flag
.data
align 16
scale1 real4 255.0,255.0,255.0,255.0
RGBA real4 0.0,0.0,0.0,0.0,0.0
CMYK real4 0.0,0.0,0.0,0.0,0.0
scale2 real4 0.01,0.01,0.01,0.01
ones real4 1.0,1.0,1.0,1.0,1.0
.code
PROC CMYKtoRGB
movaps xmm0,CMYK
mulps xmm0,scale2
movaps xmm1,ones
movss xmm2,k
shufps xmm2,xmm2,copytoall ;k,k,k,k
mulps xmm0,scale1
subps xmm1,xmm0
mulps xmm1,xmm2
ret
ENDP
;wrote it in mind to be able to zoom in on attractor,at the same time clip z to not waste system resources draw lots of tiny points and not
;have too close/big objects that both take system resources and fill up the whole screen
PROC CLIPBOX
;ebx=adress of pointbuffer for drawing on screen
movaps xmm0,xyzc ;points
subps xmm0,minxyzc
cmpltps xmm0,maxboxxyzc ;4 less than compares,less than=0FFFFFFFFh,max c=very high number, C could also represent a texturenumber
MOVHLPS xmm1,xmm0
andps xmm1,xmm0 ; perform .IF xy< and zc<
movaps xmm1,xmm0
PSLLQ xmm0,32
andss xmm0,xmm1 ;increment and copy if inside screen
andss xmm0,increment ;if not inside xyzbox ,increment becomes zero= no copy
movd eax,xmm0
.IF eax!=0
movaps xmm0,xyzc
movaps [EBX]
add ebx,eax
.ENDIF
ret
ENDP
PROC flag
mov eax,XY ;x and y simultanously 256*256 coordinates
and eax,0f0f0h ;must experiment to get right thickness of cross in middle of flag
mov ebx,blue ;ebx =color
.IF al=127 or ah=127 ;horizontal and vertical check if middle of flag
mov ebx,yellow
.ENDIF
ret
ENDP
OK. Your Christmas ball is an square Sweden flag.
What is CMYK?
Hi HSE
CMYK is a colorspace model. It stands for cyan, magenta, yellow and black. His CMYK to RGB converts the CMYK color space to RGB colors.
https://en.wikipedia.org/wiki/CMYK_color_model
Btw, Daydreamer.
I liked the way you did with SSE. Maybe you could give me a help later trying to adapt my CieLCH using SSE as well to make it faster ?
Quote from: guga on January 27, 2019, 12:36:34 PM
Btw, Daydreamer.
I liked the way you did with SSE. Maybe you could give me a help later trying to adapt my CieLCH using SSE as well to make it faster ?
thanks
I started with simplest colorspace conversion first,going to try help you as time permits
@HSE
everything looks better with textures,some textures take more time to code
PROC flag can be used both with 2d coordinates to be used only with 2d bitmap and be used for texture coordinates
Many Tks, daydreamer :t
I´m finishing the implementation on the backwards operation "CieLCHtoRGB" and see if i can be able to optim9ize what i can before posting it here for us to give a try on SSE. I suceeded to make usage on the matrix tables to make the conversion faster between the different colorspaces such as Adobe RGB 1998, SECAM etc etc.
I´m using predefined tables for make it goes faster since the function makes heavy use of gamma and white reference values. The maths envolved is a bit hard, but maybe it can be simplified before optimize it further. Plus, with the help of the adaptation transformations we can create tons of different models to use on a single function RGBtoCieLCH and it´s reverse CieLCHtoRGB.
Doing my best here to make it complete as possible and yet fast enought to allow the function to be used in video editing as well and not only image processing :bgrin: :bgrin: :bgrin:
I´m pretty sure, after the code is cleaned it can be optimized further. For example, using a faster way to compute sin, cosine and atan2 operations necessary for CieLCH operations. Siekmanski found a good library that may can be used here: http://masm32.com/board/index.php?topic=4118.120 and http://lolengine.net/wiki/doc/maths/remez
seem aizawa are similar to this simulation
https://www.iter.org/newsline/188/844 (https://www.iter.org/newsline/188/844)
so use all 3 in one program,means two is calculated simultanously with some kinda fadeout/fadein