Hi Van
Yeah, thats what I've already achieved...
A little more info is needed I think....
If we limit this to one plain for the moment, while I'm rotating the plain, I animate it's texture. These textures are an elaborate cycling loop that give the impression of movement, kind of like an animated fire or smoke.
The textures have alpha values that fade toward the end and edges, infact at the most opaque there only about 10%. They are basicaly white with the pattern drawn in the alpha channel. (wonder if I should use black!) Anyway I was thinking of using the diffuse colour to change the effect colour, but so far this hasn't worked.
I've posted a minimal demo below and a smoke.dds texture for what I have so far. Alpha stuff took ages to figure out, had it working a different way before but these are the only Alpha settings I could get working this time.
Set Bitmap Format 21
Set Display Mode Desktop width(),Desktop Height(),32
Sync On : Sync Rate 60: AutoCam Off : Hide Mouse : Color Backdrop 0,RGB(0,64,128): Set Ambient Light 0
Position Camera 0,0,0,0 : Point Camera 0,0,0,1
Load Image "Smoke.dds",1
For Obj = 0 to 20
X=(Rnd(6)+2)*6:If RND(1)>.5 then X=-X
Y=(Rnd(6)+2)*6:If RND(1)>.5 then Y=-Y
Make Object Plain Obj+1,128,128 : Position Object Obj+1,X,Y,-100+(Obj*10)
Ghost Object On Obj+1,7
Set Alpha Mapping On Obj+1,0
Texture Object Obj+1,1
Set Object Transparency Obj+1,1
Set Object Emissive Obj+1,RGB(255,0,0)
`Set Object Diffuse Obj+1,RGB(0,0,255)
`Color Object Obj+1,RGB(0,255,0)
Set Object Light Obj+1,0
Next
Do
`Rotate Objects
ZRotate Object 1,Wrapvalue(Object Angle Z(1)+3)
For Obj= 1 to 20
ZRotate Object Obj+1,Wrapvalue(Object Angle Z(1)-(Obj*30))
Next
`Move Object
For Obj = 1 to 21
Position Object Obj,Object Position X(Obj),Object Position Y(Obj),Object Position Z(Obj)-1
`Fade Out
If Object Position Z(Obj)<100
If Object Position Z(Obj)<=-100
If Obj=1
X=(Rnd(6)+2)*6:If RND(1)>.5 then X=-X
Y=(Rnd(6)+2)*6:If RND(1)>.5 then Y=-Y
Position Object Obj,X,Y,400
Else
Position Object Obj,Object Position X(1),Object Position Y(1),400
EndIf
Set Alpha mapping On Obj,0
Else
Set Alpha Mapping On Obj,25.0*(0.0+(Object Position Z(Obj))/100.0)
Endif
EndIf
`Fade In
If Object Position Z(Obj)>300
Set Alpha Mapping On Obj,25.0*((400.0-Object Position Z(Obj))/100.0)
Endif
Next
Sync
Loop
End
Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.