Home› Technical Talk

image Manipulation Tool

polycounter lvl 15
Offline / Send Message
arrangemonk polycounter lvl 15
Update:
MY Surfacing and terrain generating tool is now officially alpha
(but keep quiet about it for now, still gotta figure out some licencing stuff, for example for the gaussian blur
which is a dummy copied from a webpage and some command handling stuff from code project)

anyway
WHAT IS IT?
its a surfacing and terrain generating tool which has common filters like blurring, sharpenig, etc.
i copied 2 concepts from photoshop and 3dsmax and merged them to a modifierlayer:
it can be executed and modified like a 3dsmax modifier, but is adjustable in alpha and blendmode like a layer

WHAT THE HELL IS ITS USE FOR?
and the kicker application is the terrain generating feature:

i implemented a hydraulic(brute force) erosion algorithm which gives reasonable results after about 8 iterations
and a thermal erosion (shader like) algo, which talkes about 50 iterations to look good alone, and after a hydraulic erosion about 3 iterations

what you have to do, to generate kickass terrains is:
create a perlin clouds map with some setting, erode it with 8 iterations of hyraulic erosion and after that 3 iterations of thermal erosion, now you have a good looking but somewhat boring heightmap. you need to save .
after that you select the cloud modifier, klick on the gear and change the seed. after some calculations you now have a different heightmap, and so on until you feel like you have enough maps( about 3 to 8)

then go to a modeling package of your chouce which supports displacement
now displace a highly tesselated plane with height around 10 and tiling 1 and some blur
then to the next map with height around 5 and tiling 2
and so on

then you have a kuckass terran which is usable for all kinds of stuff
presentation%20terrain.jpg
[here is a terrain with 3 maps described as above]

HOW DO I USE IT?

its simple, open the image processor exe in the given zip file
hit file new, and select your base modifier (noise, clouds, from file or color)
then hit filter and select a filter of your choice, adjust it in the popup and hit ok,
then the new layer is created
now you can change the layersettings (alpha, blendmode)(due to some wpf crap you need to hit the play button after you changed the settings, except for the setting that popup after hitting the gear button)
if you dont like the result of the modifier, you can change it at will or delete it
after a modifier is executed the selection always changes to the upmost modifier, buft if you select one below and add a new modifier, its pops up ontop of the selected one, pusthing the others upwards

and when you'Re satisfied, you can save the result to a file.
(further releases will also support saving and opening project files)

CAN I HELP YOU?

yes ofcourse
first of all, i need a real name for the application (i had Photojob in mind, but that could give angry people)
and i could use some suggestions regarding new filters and other improvement and such stuff.

also i would appreciate some people testing it, for when it crashes and stuff


anyway have fun testing it, and tell me what you think
http://dl.dropbox.com/u/1484680/Builds/Release.rar
(and a gui shot in action)
guishot.jpg








[OLD POST}
as You might know ive done some image filters lately which were all standalone exes.

now im starting to merge them in a Gui with the ability to stack the filters (like the modifier stack in 3dsmax)

at the moment this application is just an imageviewer.
so open save, copy paste , close and the zoom buttons work
the filter system is a bit more tricky and will come later

as addon i will implement seamless filters for surfacing purposes (like the basic ones on photoshop, but dont mess up the border)

suggestions appreciated.

edit: ok, i managed to implement a pluginhost
so filters can be dropped in teh plugin folder and work
poroblem tehre is the filter dlls need a specific data structure, and is nor as versatile as i want jet
anyway, i implemented a testfilter, replacing the current image with a picture of the annoying orange
http://dl.dropbox.com/u/1484680/Builds/Programm.rar
screenshot.jpg

Replies

  • DrunkShaman
    Options
    Offline / Send Message
    DrunkShaman polycounter lvl 14
    .....you actually posted this orange.. =.=

    you have got to get this off before your plug in's release.
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    this is just a ptototype without any commercial intent
    sure im ditching the orange once real filters are there

    at the moment the part im focussing on is the host application
    im still searching for a proper solution for the file and clippboadrd handling

    edit: i got rid of the orange (atleast in the screenshots)
    i want no copiright infringement shit
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    dont get me wrong, i find stuff like this awesome, but whats the plus?
    why should i use this instead of photoshop?
  • Stromberg90
    Options
    Offline / Send Message
    Stromberg90 polycounter lvl 11
    xXm0RpH3usXx: because it's free and photoshop dont have the filters arrangemonk makes.

    Looking cool arrangemonk, looking forward to seeing what kind of filters you come up with :)
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    im going to implement the most common photoshop filters, but specialized for surfacing
    (seamless, means a tilable image is still tilable after the execution of the filter, ulike photoshop) , some perlin noise implementations , and some terrain specific things like erosion and such stuff...
    you could suggest filters you would like to have
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    am i supposed to click "wpfapplication1.exe"?
    because if i do i get

    "Image Processor found a problem and has to be closed"

    i am trying it on my computer at work, gotta give it a go at home then...
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    im afraid you gota download the release.zip unzip it and start wpfapplication1.exe, its not that interesting yet thou.
    im working on it this evening, so its hopefully going to be more interesting tomorrow

    edit: its a.net application so one needs .net framework 3.5 installed
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    Update:
    i cleaned the pluginhost, so every class that implements the plugininterface in a plugin dll gets linked to the host application,
    there is stil a problem with the plugin names but thats just a minor bug
    anyway i implemented a simple 3x3 blur and a median filter, which both follow my seamless concept
    http://dl.dropbox.com/u/1484680/Builds/Programm.rar
    requires .net runtime 3.5
    the copy/past now only supports 24 bit rgb images (supporting alpha is too complicated at the moment)
    and i havent implemented a worker tread model yet so while the filter executes, the application doesnt respond

    tell me what you think, and i would appreciate suggestions for filters you would like to see implemented
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    I'm at work, so havent got much time, wanted to post here though:

    A "save as" button would be cool because i could then compare the original image with the new one, i think the filters didnt do anything to my pic...

    A progress bar would be nice, the program got unresponsible and i didnt know if it still worked or not... (for at least 2 minutes i think)

    Also having a shape detection would be awesome for generating quick masks
    (like currently i am working on some brick textures, throwing them in this program, detecting the bricks (without the mortar in between) and importing the mask back into ps would be awesome.)
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    its still in early development stage, and unoptimized, filterig a 640x480 image takes about a minute

    so i recomend testing with small images at the moment
    edit: i updated the processing a bit, should be much faster now
    http://dl.dropbox.com/u/1484680/Builds/Programm.rar
  • DrunkShaman
    Options
    Offline / Send Message
    DrunkShaman polycounter lvl 14
    Finally done bro..lookin good!

    After getting an A in your term project you should submit it to Polycount swag.

    Amazing work!! :)
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    Calling it done is a bit too much
    everything i wanted to have in the prototype is done ;D
  • Sage
    Options
    Offline / Send Message
    Sage polycounter lvl 19
    it be nice if you could create system that lets you create a sequence with the filters that is loopable. the would be awesome.
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    you mean batch processing?
    defenately possible, but not in the gui host
    im doing a command line host for that
  • Sage
    Options
    Offline / Send Message
    Sage polycounter lvl 19
    well ti be easier for the artist if they had a visual way of doing it. i was thinking like after affects does it. you set some parameters and there is a phase or sequence that can be looped together easily. This is saved to a folder to be used however the artist wants.
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    when the modifier stack works i could probably implement such things
    i still got to learn a lot of things about wpf for it, but saving a modifier is just like saving the filter and the parameters to a file. that shouldnd be to hard
  • Sage
    Options
    Offline / Send Message
    Sage polycounter lvl 19
    that be awesome, especially if you could figure out how to make it loop easily.
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    i updated it, now it supports new file, and some noise functions
    i also tried rgbnoise which is mapping a 24 bit integer to the rgb channels
    and a corresponding rgb terrain erosion filter (which takes rgb as the 24 bit height, and the alpha channel as terrain hardness, -> the harder, the less eroded it gets)
    the noise generator creates a value of 2/3 for the hardness -> 170 which is the default setting on the old terrain erosion filter

    looking at the image though got me strange headache and im fearing brain damage, but also feel like a pussy :D

    anyway

    here is the updated programm

    edit: the int -> rgb thing isnt really working
    sorry but the grayscale noise generator work pretty well
    http://dl.dropbox.com/u/1484680/Builds/Programm.rar
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    just stumbled upon this:
    http://sourceforge.net/projects/pixelitor/

    had to think about you, maybe its getting you some inspiration?
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    thanks, i pretty sure it could help improving the code
    even thou its not really fast
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    just wanted to try out your latest verssion and it gives me the following:

    EventType : clr20r3 P1 : wpfapplication1.exe P2 : 1.0.0.0
    P3 : 4d8253fc P4 : presentationcore P5 : 3.0.0.0 P6 : 488f03e4
    P7 : 42e P8 : b P9 : system.io.fileformatexception

    and closes... (its a winxp x64)
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    i would need xp64 to replicate that error
    what i can tell is that its using .net framework 3.5 and , if i didnt do anything wrong runs on both 32 and 64 bit (MSIL)
    but its only tested on win7 so far
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    well. i downloaded and installed .net 3.5, just as you recommended a few posts above...
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    weird
    have you installed .net 3.5 x64?
    i just seen i had compiled for x86 instead of multi platform
    fixed that now, but hadnt uploaded yet
    im going to improve the error handling a bit more
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    o guess i did install x64, but need to check tomorrow when at work, i do have win7 here at home and it works fine!
    the filters definatly take waaay too long though :P
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    Its been a long Time since the last update, i pulled some all nighters and now the modifierstack seems almost to work as excepted
    i also added a global exception handler which displays the exception message and stacktrace in a textbox for further analysis

    but please dont send me exceptions caused by the "Experiment" filter
    its ment to trow an exception for testing pruposes, atleast at the moment

    Dokumentation:
    klicking on a modifier shows the result, openig a file doesnt add a modifier yet
    so testing only works with new image
    modifiers with properties open a properties page if execute you can change them also using the gear icon on the modifier
    heres the link
    link only for archives or whatever

    im triing to add a modifier for the file open as soon as possible since its not much of an use without that

    so happy testing then, i hope you like it

    [edit]: also the opacity slider doesnt do anything yet
    [edit2]: Now loading images adds a new image modifier
    so filters can be applied to loaded files
    Use this link
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    Update:
    MY Surfacing and terrain generating tool is now officially alpha
    (but keep quiet about it for now, still gotta figure out some licencing stuff, for example for the gaussian blur
    which is a dummy copied from a webpage and some command handling stuff from code project)

    anyway
    WHAT IS IT?
    its a surfacing and terrain generating tool which has common filters like blurring, sharpenig, etc.
    i copied 2 concepts from photoshop and 3dsmax and merged them to a modifierlayer:
    it can be executed and modified like a 3dsmax modifier, but is adjustable in alpha and blendmode like a layer

    WHAT THE HELL IS ITS USE FOR?
    and the kicker application is the terrain generating feature:

    i implemented a hydraulic(brute force) erosion algorithm which gives reasonable results after about 8 iterations
    and a thermal erosion (shader like) algo, which talkes about 50 iterations to look good alone, and after a hydraulic erosion about 3 iterations

    what you have to do, to generate kickass terrains is:
    create a perlin clouds map with some setting, erode it with 8 iterations of hyraulic erosion and after that 3 iterations of thermal erosion, now you have a good looking but somewhat boring heightmap. you need to save .
    after that you select the cloud modifier, klick on the gear and change the seed. after some calculations you now have a different heightmap, and so on until you feel like you have enough maps( about 3 to 8)

    then go to a modeling package of your chouce which supports displacement
    now displace a highly tesselated plane with height around 10 and tiling 1 and some blur
    then to the next map with height around 5 and tiling 2
    and so on

    then you have a kuckass terran which is usable for all kinds of stuff
    presentation%20terrain.jpg
    [here is a terrain with 3 maps described as above]

    HOW DO I USE IT?

    its simple, open the image processor exe in the given zip file
    hit file new, and select your base modifier (noise, clouds, from file or color)
    then hit filter and select a filter of your choice, adjust it in the popup and hit ok,
    then the new layer is created
    now you can change the layersettings (alpha, blendmode)(due to some wpf crap you need to hit the play button after you changed the settings, except for the setting that popup after hitting the gear button)
    if you dont like the result of the modifier, you can change it at will or delete it
    after a modifier is executed the selection always changes to the upmost modifier, buft if you select one below and add a new modifier, its pops up ontop of the selected one, pusthing the others upwards

    and when you'Re satisfied, you can save the result to a file.
    (further releases will also support saving and opening project files)

    CAN I HELP YOU?

    yes ofcourse
    first of all, i need a real name for the application (i had Photojob in mind, but that could give angry people)
    and i could use some suggestions regarding new filters and other improvement and such stuff.

    also i would appreciate some people testing it, for when it crashes and stuff


    anyway have fun testing it, and tell me what you think
    http://dl.dropbox.com/u/1484680/Builds/Release.rar
    (and a gui shot in action)
    guishot.jpg
  • DrunkShaman
    Options
    Offline / Send Message
    DrunkShaman polycounter lvl 14
    Dude this is amazing!! You make me want to start programming in C# again >.<
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    hmm.. just a quicky, how about PixelMagic?
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    my bachelor thesis is done and now i kind of see this program useless as is
    and i was toying with the idea of making it node based and transform it in some kind of compositor.

    with a bit of rework i could change the interfface and the modifiers that i made until now so they can be used as nodes

    here i made a quick gui mockup of what i had in mind:
    gui-mockup.png

    i would apreciate some feedback on the new idea, since i want it to be usefull especially for polycounters
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Will it have realtime preview when it makes changes? That would be a great plus.

    Also, how are you going to categorize the nodes and modifiers?
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    i thought of inheritance
    each class of nodes has its baseclass which implements the category property
    so derived classes can be sorted, subcategorys could work that ways too (but displayed in treeview)
    so say meanblur is category filter and subcategory blur
    color is category generator
    and multiply is category blendmode
    and so on

    edit:

    preview window shows result,
    if im able to speedup calculations so processing an image takes about 1 to 2 seconds, a special preview calculation is not nececary, otherwise working with reduces resolution images to generate preview is possible.
    also im thinking of adding a viewer tab for every output node, so results can be vied in a bigger window

    speeding up calculations has great chance to happen thou, at the moment a modifier is single threaded, so implementing multitreaded modifiers could atleast quater the execution time, but im planning some research on using gfxcard (gotta nag santy for some help then)
  • cholden
    Options
    Offline / Send Message
    cholden polycounter lvl 18
    This is pretty nice! Looking forward to how this goes.
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    i may be mistaken, but it sounds as if it would do (almost) the exact same thing like this here:
    http://www.polycount.com/forum/showthread.php?t=86188&highlight=node

    i think this is in the same line:
    http://www.spiralgraphics.biz/genetica.htm
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    Kind of, yes
    but free

    edit: the genetica video is kinda strange thou

    the idea of this program is to create and modify tilable textures
    without fucking up the tilability(like photoshop did atleast in v7).

    as i found the need of a reference modifikator to blend in some previous image, i thougt making it node based would be better and less complex to code and use
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Genetica is WAY overrated, and Texture Designers progress has been halted (lack of buyers). In all cases, MapZone is better and with ArrangeMonk's Image Tool, I would say we have a powerful set of procedural tools.
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    despite of redesigning the programm, i should release the final version for the bachelors project too, since its bit less buggy than the previeous ones
    and has a simple diamond makeseamless algorithm (like gimp),i did today for relaxing, onboard
    Bachelor edition

    im kindof horny for doing some "make tilable" algorithms now
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Nice, tilable aloga's are fun, any other ones you plan on including other then the diamond?
  • ev149
    Options
    Offline / Send Message
    It won't run on my laptop (Windows XP x86 with .NET 4), so I won't be able to try it out until I have access to my desktop. In the meantime, I decided to try and revamp the UI based off of your sketch.

    jCbZP.png
    You can download a PSD version here.
    If there's any changes you want me to make, tell me and I'll do my best. :)

    EDIT: I just realized I put the terrain model in as the preview. Oops.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    That is indeed, awesome!
  • ev149
    Options
    Offline / Send Message
    Thanks!

    Here's an example of how it would work (YouTube quality is crappy, sorry about that):
    [ame]http://www.youtube.com/watch?v=6YPwXIIL_Y8[/ame]
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    thanks ev149, this is indeed eye pleasing :D
    i was all for the baby blue thou, but if you all agree, i can mak the gui manly
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Maybe give two options? Baby Dark and Baby Blue? It would be great option for those of us who like to sit up late and have a dark background on our screens.
  • ev149
    Options
    Offline / Send Message
    Here's a lighter version:
    isVVR.png
    PSD here.
  • xXm0RpH3usXx
    Options
    Offline / Send Message
    xXm0RpH3usXx polycounter lvl 13
    just gave it a try, one suggestion would be implementing a loading bar somewhere.
    seems to take a lil bit to render the stuff and it would be nice to have a visual identification wether or not it is still working or done .

    i'd be for some polycountish colors :)
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    as i thought in the first place, colorsheme support defenately wanted

    i think its smarter to collect suggestions and focus o the datamodel first
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    doublepost

    i tried around a bit with gui, and thats about what i came up with
    gui.jpg
    and the icon i came up with
    splendid.png

    and the name i thought for it is (in mind of the unlimited detail euphemism)
    sBLEMDit from splendid and blend it


    here the gui mockup as exe file
    http://dl.dropbox.com/u/1484680/Image%20Composer/Image%20Composer/Image%20Composer/bin/Debug/Image%20Composer.exe

    and the colors are about to be configurable, but not yet (gotta get my mind about external xaml resource files)


    more hopefully next week because i finally have real vacation^^
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Nice one, and love the icon.
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    I personally dislike the UI direction it looks like web design, not professional application UI design.
    The difference between the 2 directions are that web designers design in a way to attract and scream more towards the audience in a bold way because its all about short visits and commerce on the short term - they are not designed for the long term or frequent use.

    Professional UI's on the other hand need consistency, and reduced in every possible way from visual clutter or distractions such as reflections, patterns, flashy colors or just anything that is not necessary in a functional way.
    Even more if you design a UI for a information heavy application or one that can scale up easily like here with nodes, consider every little detail 10 times- wage it off like if its really needed - or if it can be used in a less obtrusive way.
  • arrangemonk
    Options
    Offline / Send Message
    arrangemonk polycounter lvl 15
    so no round corners and gradients

    well then i think im going to mimic visual studio style
    with just shades of blue
Sign In or Register to comment.