Blur component "refresh"
Moderator: Moderators
Blur component "refresh"
Hi all! I am planning to work a little on the blur component. Before I start, there are a bunch of points I would like to speak about:
-Do you think that people will frequently use a blur on more than 2-3 pixels? Because if this is the case, changing a little the code will greatly help with speed.
-Do we _really_ need a tileable blur? I started thinking about this since blurring might be made just when an image is "almost finished" (already resized/shifted/rotated) and this would save a little code size... and we must scavenge for bytes here
-I will code an option for the vertical/horizontal only blur, would you like to try out some other "directional" blurs also? Keep in mind you will (almost) get the same result with rotating then blurring [Drawback: actually it needs the tileable blur to work properly ]
-Do you think that people will frequently use a blur on more than 2-3 pixels? Because if this is the case, changing a little the code will greatly help with speed.
-Do we _really_ need a tileable blur? I started thinking about this since blurring might be made just when an image is "almost finished" (already resized/shifted/rotated) and this would save a little code size... and we must scavenge for bytes here
-I will code an option for the vertical/horizontal only blur, would you like to try out some other "directional" blurs also? Keep in mind you will (almost) get the same result with rotating then blurring [Drawback: actually it needs the tileable blur to work properly ]
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
-=Hugo Rossi=-
- jph_wacheski
- Posts: 1005
- Joined: Sat Feb 16, 2008 8:10 pm
- Location: Canada
- Contact:
Hi Francesco,. is good to see you working on this!
One thing to keep in mind is that people will use these cool things you code in ways you may never have thought of. The guideing principle should lideally be to make it as WIDE ranging as possible, even more than you think may be usefull, if it is not limited for a good reason,. i.e. so it don't crash
Trying Villes first blur component as a guide I would say 8 or 16 pixels is a better limit,. IF one need be imposed. However, I also note that I can just do a blur of 2 or 4 and then another blur of 2 or 4 more, etc.! If you do get a great improvment by this limit the we can just do multi-blur sequences,. .
As far as tileable it would be really usefull with your cell component, (amoung others),. remember that if we do get the 'stackable' or 'node linking' interface (and evern if we don't) we can use blur as a small part of a much more complex bitmap layering sequence, to generate different textures, assuming that it is just used at the end is not such a good idea,.
also I would rearly use a texture as a whole surface of an object and more likely use it as TILEABLE material,. thus my desire for the tileable blur as well as more tile able stuff in general, noise, bricks, etc.
Directional is a great idea even just h/v,. as you say, we do have the rotate/scale component too.
One thing to keep in mind is that people will use these cool things you code in ways you may never have thought of. The guideing principle should lideally be to make it as WIDE ranging as possible, even more than you think may be usefull, if it is not limited for a good reason,. i.e. so it don't crash
Trying Villes first blur component as a guide I would say 8 or 16 pixels is a better limit,. IF one need be imposed. However, I also note that I can just do a blur of 2 or 4 and then another blur of 2 or 4 more, etc.! If you do get a great improvment by this limit the we can just do multi-blur sequences,. .
As far as tileable it would be really usefull with your cell component, (amoung others),. remember that if we do get the 'stackable' or 'node linking' interface (and evern if we don't) we can use blur as a small part of a much more complex bitmap layering sequence, to generate different textures, assuming that it is just used at the end is not such a good idea,.
also I would rearly use a texture as a whole surface of an object and more likely use it as TILEABLE material,. thus my desire for the tileable blur as well as more tile able stuff in general, noise, bricks, etc.
Directional is a great idea even just h/v,. as you say, we do have the rotate/scale component too.
- Attachments
-
- tileable_blur.zgeproj
- remove the blur and see how nice it tiles!
- (757 Bytes) Downloaded 984 times
iterationGAMES.com
I'm not going to set any limit on the pixel radius! I mean, the actual algorithm is good if you do use it let's say with a 2 or 3 pixel radius. But I can write a little bigger code with the exact same processing time for any pixel radius you choose (found it on the web). It would be pretty faster if used for blurs with 3 or more pixels. But it will increase the code size so if never used it would be a waste of space.jph_wacheski wrote: Trying Villes first blur component as a guide I would say 8 or 16 pixels is a better limit,. IF one need be imposed. However, I also note that I can just do a blur of 2 or 4 and then another blur of 2 or 4 more, etc.! If you do get a great improvment by this limit the we can just do multi-blur sequences,. .
BTW: you convinced me to get a tileable blur with you example Unless I do find some unexpected problems when working on it.
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
-=Hugo Rossi=-
Sorry guys but I gived up
No high-speed algorithm nor size optimizations (at leas not now) only tileing and directional blur
Sending a patch to ville in a few hours (I hope)
No high-speed algorithm nor size optimizations (at leas not now) only tileing and directional blur
Sending a patch to ville in a few hours (I hope)
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
-=Hugo Rossi=-
Ok I sent a patch to Ville.
Blur component now creates tileing textures, you can choose if blur only horizontally or only vertically (or both, of course), plus as a bonus you get a new setting: "amplify" that allows you to change the intensity of the colors used. You will be able to experiment with this soon, I hope
Blur component now creates tileing textures, you can choose if blur only horizontally or only vertically (or both, of course), plus as a bonus you get a new setting: "amplify" that allows you to change the intensity of the colors used. You will be able to experiment with this soon, I hope
- Attachments
-
- Have you ever tried the 2 presets with non-square bitmaps? ;)
- NewBlur.jpg (49.82 KiB) Viewed 30364 times
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
-=Hugo Rossi=-
- jph_wacheski
- Posts: 1005
- Joined: Sat Feb 16, 2008 8:10 pm
- Location: Canada
- Contact:
well,. that sounds quite good actually,. what did you give up on?? a higher speed method? oh, well perhpas at a later date you will get inspired,. I often find that if i stop thinking about a problem,. some time later, an idea about a possible solution to that problem pops into my mind,. I attribute this to sub-consious processing that is happening all the time, only we are not consiously aware of it as it is bellow our consiousness threshhold,. . anywhay thanks for this work!
iterationGAMES.com
Got the patch from Francesco for the blur-function. Also he made some size-optimizations for matrix functions in the ZMath-unit.
The matrix functions are used by the Implicit-components and also the MeshBox component, and as far as I can tell they still seem to work after using your code.
Saved around 1120 bytes so that was very nice!
You can check code size yourself by compiling ZDesigner and select menu Project - Information for ZDesigner. In the dialog box you see "code size".
And for really detailed examining of the code you can set a breakpoint on a line, run the program, and when the program stops in the debugger you can select View Disassembly (Ctrl + Alt + D) in the "View - Debugging windows" menu. This will show you each source code line and directly afterwards the assembly code generated for that line.
The updates to the blur-component looks good too!
Great contributions kattle! I'll check in the code and update the beta later today.
The matrix functions are used by the Implicit-components and also the MeshBox component, and as far as I can tell they still seem to work after using your code.
Saved around 1120 bytes so that was very nice!
You can check code size yourself by compiling ZDesigner and select menu Project - Information for ZDesigner. In the dialog box you see "code size".
And for really detailed examining of the code you can set a breakpoint on a line, run the program, and when the program stops in the debugger you can select View Disassembly (Ctrl + Alt + D) in the "View - Debugging windows" menu. This will show you each source code line and directly afterwards the assembly code generated for that line.
The updates to the blur-component looks good too!
Great contributions kattle! I'll check in the code and update the beta later today.
- jph_wacheski
- Posts: 1005
- Joined: Sat Feb 16, 2008 8:10 pm
- Location: Canada
- Contact:
wow,. I been working with this new setup and it is quite very cool,. one thing i'm wunder is could the blur component's Amplify function work with a blur.radius of 0 ? I know I could do an expresion like this.pixel*=2; to get the same effect but the slider and realtime feedback are what makes this nice to work with,. .
also a sorta bug in the graph system; if you drag a bitmap componenet out of the tree and drop in in say a Group folder (outside the bitmap entierly),. it appears works in the tree and not in the graph,. perhaps this is a silly thing to do, but I would like to keep some components while building stuff and not have them conected,. so, that was my test method but it makes the graph seem buggy,. see attached. when you put it back it no longer functions,. . guess it's a monkey thing to do,. however I would like some sorta way to do that sorta thing,. . or course not crucial!
also a sorta bug in the graph system; if you drag a bitmap componenet out of the tree and drop in in say a Group folder (outside the bitmap entierly),. it appears works in the tree and not in the graph,. perhaps this is a silly thing to do, but I would like to keep some components while building stuff and not have them conected,. so, that was my test method but it makes the graph seem buggy,. see attached. when you put it back it no longer functions,. . guess it's a monkey thing to do,. however I would like some sorta way to do that sorta thing,. . or course not crucial!
- Attachments
-
- bitGraph2.zgeproj
- some tests,.
- (1.66 KiB) Downloaded 1035 times
iterationGAMES.com
Not sure about this, but a couple of things might have changed from april the 4th and 5th build (the latter being in svn). I had really lesser problems with the components recently.
To Ville: I have no idea of why I wrote the amplify that way... Perhaps I was not thinking about the fact that one might want to use the amplify without the blur... so could you change this line:
to
This is the only thing that must be changed in order to get the ampl. work even if radius is zero.
To Ville: I have no idea of why I wrote the amplify that way... Perhaps I was not thinking about the fact that one might want to use the amplify without the blur... so could you change this line:
Code: Select all
VecDiv3(Tot, Power(Radius*2+1,(IsHorizontal+IsVertical)/Amplify),P^)
Code: Select all
VecDiv3(Tot, Power(Radius*2+1,(IsHorizontal+IsVertical))/Amplify,P^);
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
-=Hugo Rossi=-
- jph_wacheski
- Posts: 1005
- Joined: Sat Feb 16, 2008 8:10 pm
- Location: Canada
- Contact:
Glad to be of service jph! You know it strikes me that in the current situation when the only known releases of ZGE games comes from you then this place is like a small indie game developer team with you building the games and me, Francesco and Kjell building the engine. I mean really what's the difference? And that's fine by me, I'm happy and proud to supply the engine for games of such quality as Vector Locust.
- jph_wacheski
- Posts: 1005
- Joined: Sat Feb 16, 2008 8:10 pm
- Location: Canada
- Contact:
yeah I am happy to be able to work with this fine engine that you and the boys are continuing to amaze me with all the cool improvments and expansions,. it does feel that way a bit like we have a nice and tight little causal dev. team going,.
I sure do not know why we dont see more ppl working with the ZGE,. and perhaps they are and just lurking, but why more dont participate in the running discutions we be having etc. . and thanks for noticing that I did a lot of work on that game and I am proud of it and the ZGE as well
also in the promo areas these guys [http://handeyesociety.com/ ] havve asked for me to come down and present "a game in progress" at the next social, so of course I will be showing it right in the ZGE ide!!!
I sure do not know why we dont see more ppl working with the ZGE,. and perhaps they are and just lurking, but why more dont participate in the running discutions we be having etc. . and thanks for noticing that I did a lot of work on that game and I am proud of it and the ZGE as well
also in the promo areas these guys [http://handeyesociety.com/ ] havve asked for me to come down and present "a game in progress" at the next social, so of course I will be showing it right in the ZGE ide!!!
iterationGAMES.com
just found this:
http://mierendo.com/software/3d_filter_blurring/
This is really inviting... Ville, you can agree with me that if we are able to get this working properly, we can just delete the actual blur component and get the whole stuff working with this. We are getting (I think) size-indipendent blur, zoom blur, radial blur. And I'm pretty sure it will be FASTER
The ONLY concern is about tileing. This should "just work" if we are going to underzoom the image a little, or look up some other tricks
http://mierendo.com/software/3d_filter_blurring/
This is really inviting... Ville, you can agree with me that if we are able to get this working properly, we can just delete the actual blur component and get the whole stuff working with this. We are getting (I think) size-indipendent blur, zoom blur, radial blur. And I'm pretty sure it will be FASTER
The ONLY concern is about tileing. This should "just work" if we are going to underzoom the image a little, or look up some other tricks
In the fall of 1972 President Nixon announced that the rate of increase of inflation was decreasing. This was the first time a sitting president used the third derivative to advance his case for reelection.
-=Hugo Rossi=-
-=Hugo Rossi=-