particle system
Community Forums/Showcase/particle system
| ||
here is a look at something i'm working on:![]() This shows a single 2d quad particle at right-angles to the cube cutting through it. What is interesting is there is no visible 'cut' where the particle dissects the cube The particle itself is made up from a single 3d quad, plus particle texture frames. the first 2 frames are combined into a single colour frame with the third being added or subtracted from the result (a complex blend). I'm currently working on the editor for the particle system The debug text shows the status of my entity system, heads and tails of lists etc. the seven listed things are the entities themselves, with three live models (base plane, cube and single particle) |
| ||
Looks promising Goodluck dude |
| ||
Thanks, the editor is where i'm spending time now the basic mechanics is working. Here's shots of the editor with the three particle sub editors: The first is the particle sprite selection - these are fixed, but you have 64 to play with and a particle is made from three of them ![]() Next up is the colour editor - there are two and these work across the life of the particle ![]() Last up is the graph, where you can control range values over time including repeat from a simplified UI ![]() and the result. these were the first things created once the graph was functioning so they are just tests. ![]() ![]() ![]() ![]() But you get an idea of the complex interactions of the multi drawn particles. I'm just about to start work on the emitter side of things. In the above you can see a single emitter (its the flat square thing with the arrow in cyan). The arrow shows the direction the emitter is pointing. After that is the spawner. So an emitter emits particles and the spawner control how they emit. an particle system is a combination of the three :) Last thing (if you haven't noticed) The system is totally in 3d. Also the particles can be 2d facing the user, 3d or even 3d objects. Current CPU usage is stable at 10% - but most of that is the UI and opengl back system and multiple buffers. |
| ||
Nice GUI and nice effects! What engine3d are you using? I just noticed the 'shadows'/ambient occlusion.. |
| ||
BlitzMax + openGL + custom shaders. Shadows are not quite right, but nothing that I'm too concerned about yet as the code is simple enough. The 3d object comes from my 3d editor: http://www.blitzbasic.com/Community/posts.php?topic=98715#1189948 Particles are independent from the objects, there is a complex entity system also working away in the background (I suppose a bit like blitz3d on steroids) |
| ||
hope you can make it operate also under xors3d althow i know people concider this as a dead engine. |
| ||
I think the xors people deserve no favors, do your own thing Adam. Looks good :) |
| ||
what favors. its no favor its a wish. whats bothering you jump like that mr steve. |
| ||
Seems they took people's money and abandoned the xors engine. |
| ||
Here's a couple more now that the emitter is all sorted it can emit at very different rates and directions. One thing to note is the smooth shading where particles intersect geometry. some sort of evil cloud ![]() basic fire and smoke with floating embers ![]() you want nuts? Let's got nuts... ![]() |
| ||
Your right Steve about Xors team Attitude Ive based my Engine on xors so for now im working on it as it is. when ill finish my Engine I will replace Xors. So the effects aint that important. No one said any Word to adam for a month since this post. So I wanted to cheers him up. The Xors Issue was just a side Matter. Does guys should at lease release it so others can keep improving it to be a usable Tool. |
| ||
Hello Adam, I like the overall dark theme of the GUI. How are you drawing the yellow graphs for the curves? |
| ||
i have a range function defined with 17 different curve types:'npos 0..1 Function GetRange:Float(nMin:Float, nRange:Float, nPos:Float, nType:Int, nReturn:Float = 0) it returns a value within the range nMin to nMin+nRange. You feed it a position of 0 to 1, to get multiple curves just give it a different set of position data. It's not that well optimised as i'm still using standard cos and sin internally. |
| ||
Are you using something like Core Plot to draw the graphs or are you using Max2D directly? |
| ||
its max2d and opengl just checked and it straightforward: pseudocode... drawbg setcolor setalpha for loop drawline next only visible ui elements are drawn on each frame request. Its a custom ui i developed a while back and the drawing is agnostic - it has some primitives, but everything is custom created I have a complete window manager that sits in the background intercepting all window controls: Method ProgMain() If AppFullScreen Then ToggleFullScreen(AppWindow) EnablePolledInput() While Not AppQuit AppQueue = PollEvent() If AppQueue = 0 Then Delay(2) Else Select EventID() Case EVENT_APPTERMINATE, EVENT_WINDOWCLOSE AppQuit = True End Select End IF Wend End Method I then handle all events; mouse, keyboard, timers, touch, etc. The app is then built on top of this. At the lowest level is the control structures which handle all the UI. In the Particle editor there are about 20 controls (+ the core ones). The 3d editor has about 160 and the audio editor about 270 |