Jump to content
How to Install Plugins ×

Dynamic Draw v3.3 (7/3/22)


NinthDesertDude

Recommended Posts

7 hours ago, HyReZ said:

I get defensive when I run into prejudgmental people!

Next time ask for clarification before jumping to erroneous conclusions! 
Your attempt at 'simple logic' was a total failure and completely unnecessary.

Well, I never prejudged anything, again it was merely and assumption based on VERY common situations, again because language is naturally a tricky thing.
Being offended by every little thing only serves to stress yourself out, so feel free to go that route. Makes no difference to me. No one else here seems to have taken a simple misunderstanding way too far, as they seem to have noticed it is just that: a simple misunderstanding.
 

4 hours ago, ardneh said:

Don't know whether this will be helpful.


Make a New Layer, then copy image.
Ctrl Shift C


Open Dynamic Draw, right-click the canvas and choose to have clipboard as background.
Apply the brush, then OK.

 

Duplicate and merge the brush layer several times until all partially transparent pixels become fully opaque.
 

This seems like it could, in theory, work, but would take more time and effort than brushes save. I will give it a try to see how it works and flows, though. Thanks for the tip!
 

3 hours ago, Red ochre said:

Perhaps Alpha-threshold could help with that?  (Though I'm a bit confused as to exactly what @BobGrey is trying to achieve).

Now THIS seems handy! I'm not the best with getting plugins working (as evident by my situation yesterday that had an obvious solution I couldn't figure out at first), but I really want to try this out! Thank you for sharing that.
Basically, what I am trying to achieve is drawing a terrain map for a project. The system that renders it uses color codes to specify which texture is applied to each pixel. The blue you see here is a lake while the green is bare grass (grass texture, but no vegetation). Each pixel has to have a specific color. Changing the transparency, or mixing colors with that of nearby pixels, changes the hex value, which makes the render crash or the terrain to be invisible (it doesn't recognize the color and has no idea what to do about it). I made some brushes  that have only pure black pixels and invisible pixels, so the ground color behind the layer is shown on the edges, and the entire brush area is a solid color. However, Dynamic Draw made these edges somewhat transparent (when I flatten the layer, I get the blue, the green, and then varying shades of blue-green on the edges).
Here is another lake with the same blue color found elsewhere on the image (I didn't draw this part). You can clearly see the edge of the lake, and there is no blending.
OXtN6rk.png
 

3 hours ago, AndrewDavid said:

@Red ochre

I see the anti-aliasing Dynamic draw is rendering. @BobGrey is identifying a minor glitch with the plugin. @NinthDesertDude is having issues with newer versions of Paint.Net trying to recompile his plugin with attempted fixes.

 

@BobGreyThere are a few workarounds with the antialiasing. You could use Transparency to make them all opaque or select the center of your stamped image with magic wand at %20, invert selection and press delete to get clean edges. Most of the brushes I have downloaded have antialiasing built into them, so it has never been an issue for me. Hope this helps :)

 

Yeah, I've already did a bit of "clipping". I would paint with the brushes, then confirm. Then once back to the main image, I'd do this inverse selection to remove the transparent parts. This works, but adds some unnecessary steps, which can be a pain when each action takes a while for Paint.Net to confirm in my 12000x12600 image
The brushes I am using also had aliasing built in (well, more like gradient, or whatever it's called). I edited them quite a bit to remove it.
The brush I posted earlier originally looked like this: 
5vk3tDg.png
I inverted the colors, making the vast majority a white with a little bit of black and some grays in the middle. I then selected all of the white, changed the tolerance to get a nice shape, and deleted the white areas (and some grays), then painted the rest a pure black. I then selected the main body (removing any little "islands" around the edges from the selection), then inverted and deleted the rest (all of the background and little islands) and resized the canvas to fit the new shape.

 

  

23 minutes ago, NinthDesertDude said:

Worked for me last night. Open paint.net, press Ctrl+A and delete. Switch to the pencil tool, draw anything. Crop. Save. Open DynamicDraw, click Add Brush Images. Locate the saved file wherever you put it. It will be free of antialiasing as long as smoothing mode is jagged (which is default). Rotation will not be free of antialiasing at the moment.

 

This is true. I'm not sure what you're getting at; maybe you're thinking pressure = hard edge? It wouldn't be the case if so.

I created a custom brush, and it is in the set of available brushes. However, the edges remain transparent, despite every pixel inside the brush image being pure black. Dynamic Draw simply changes the transparency on its own, it seems.

Link to comment
Share on other sites

1 hour ago, BobGrey said:

 it is just that: a simple misunderstanding.

 

 

I will accept your weak apology this time, but now that you know better you should do better!
Enough said!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 hour ago, BobGrey said:

 


 

Link to comment
Share on other sites

@HyReZ 🙄

 

Hello @BobGrey,


Thanks for the explanation as to why you need two exact colour values (and no anti-aliasing).


Providing you are only dealing with two colours at a time and they are sufficiently different in tonal value, you may also find my Two-tone threshold Adjustment useful.
If further colour 'keys' need to be added this should be possible by first adding them as object layers above the two colour layer.
Any introduced object edge anti-aliasing can be removed using Alpha-threshold. Good luck!

 

MapAliasingQuestion.png

 

If by chance both of your 'key' colours have exactly the same tonal value (eg. BGR = 255,0,0{pure blue} Vs BGR = 0,255,0{pure green}) then Two-tone threshold will not work. However you could use the magic wand in global mode and zero tolerance to select all the green and all the blue, invert the selection and recolour or remove the anti-aliased pixels.

 

Red ochre Plugin pack.............. Diabolical Drawings ................Real Paintings

 

PdnForumSig2.jpg

Link to comment
Share on other sites

5 hours ago, HyReZ said:

 

I will accept your weak apology this time, but now that you know better you should do better!
Enough said!

Honestly, I don't care if you accept it or not. I wasn't apologizing to you, because there is no need. For one, the original message you are so offended at wasn't even meant for you (so, it really isn't any of your business), and for two, I really didn't do anything wrong. I only made an assumption that, like I said, was based on countless previous experiences I have had on both sides of a translation error. Nothing wrong with it, it was merely a possible explanation to the misunderstanding. Here's one way to think about it: let's say you roll up to a stoplight and the light between red and green is on. You call it amber and I call it yellow. If I were to assume you simply chose the first fitting name that came to mind, would it offend you? It would be one possible explanation, right alongside location of origin (and how they name colors), colorblindess, or the fact that you might recall the legal name for that specific color of traffic signal (some jurisdictions list it as amber while others list it as yellow). None of these are bad, rude, or hinting at you being wrong, it is merely the first explanation that comes to mind based on previous conversations and situations.
Be upset all you want, I don't care. No one cares. All it does is make you more upset. You being offended doesn't upset me, and I don't need you to approve of anything I do, so how you feel about it is irrelevant to me. The only thing I am sorry about is your inability to move on from useless rubbish that has no effect on you, and even then, I am sorry for your sake, not mine. Funny thing is, you are acting like I should feel bad, or be grateful for your acceptence of my non-existant apology. Truth is: I actually find entertainment in watching people cry and complain because they lack the self-control to determine when something useless and petty isn't worth fighting over. If that's really how you chose to spend your precious time, be my guest! The rest of us have a life to live and hobbies to work on. Thank you for providing a brief moment of entertainment. I do sincerely appreciate it.
.

5 hours ago, Red ochre said:

@HyReZ 🙄

 

Hello @BobGrey,


Thanks for the explanation as to why you need two exact colour values (and no anti-aliasing).


Providing you are only dealing with two colours at a time and they are sufficiently different in tonal value, you may also find my Two-tone threshold Adjustment useful.
If further colour 'keys' need to be added this should be possible by first adding them as object layers above the two colour layer.
Any introduced object edge anti-aliasing can be removed using Alpha-threshold. Good luck!

 

MapAliasingQuestion.png

 

If by chance both of your 'key' colours have exactly the same tonal value (eg. BGR = 255,0,0{pure blue} Vs BGR = 0,255,0{pure green}) then Two-tone threshold will not work. However you could use the magic wand in global mode and zero tolerance to select all the green and all the blue, invert the selection and recolour or remove the anti-aliased pixels.

This seems useful. Is this a separate plugin or a part of the Alpha Threshold plugin? I haven't really had a chance to mess with my project today to test it out.
I have a couple colors that have matching values, such as this horrid pink color (FF00FF) which is 255,0,255 and a nice red (FF0000) with 255,0,0. The red represents a forest of dense tree cover while the pink represents a mix of trees and bushes with some clearings. I might also end up having one color meet with several others. For example, a forest of various densities (so both red and pink) could have a lake in it (that blue you've been seeing) as well as some sand (D2C8A0) and dirt (784614) along the edges is some spaces.
Even if this might not work perfectly for these specific cases, it could still save lots of time in the cases where it does! This and the transparency settings should give me some options to work with! I look forward to trying it out. That'll have to be tomorrow, though, as it is already after 22:00 and I only got a few hours of sleep last night while trying to get this all figured out (and subsequently got distracted in another YouTube rabbithole for a few hours).

Edited by BobGrey
Link to comment
Share on other sites

@HyReZ and @BobGrey - stop sniping at each other. I mean it.

Link to comment
Share on other sites

17 hours ago, BobGrey said:

And yet he continues, in direct disregard for the administration...

 

The administration has stopped him in his tracks. Game over man.

  • Haha 1
Link to comment
Share on other sites

On 3/26/2022 at 1:08 PM, BobGrey said:

I created a custom brush, and it is in the set of available brushes. However, the edges remain transparent, despite every pixel inside the brush image being pure black. Dynamic Draw simply changes the transparency on its own, it seems.

Can you share the test image you used as a brush? Then I could iron out what's wrong or fix it in the program if it's a problem :)
One thing that comes to mind is if the brush is large or loaded from a photoshop .abr file, it might be getting resized when it first loads. Sharing the pic will let me know for sure. Thanks for the feedback.

Link to comment
Share on other sites

I did share it on the previous page (the black island thing).

When I paste the direct link, the forum automatically shows the image. This link should take you to the imgur page that has the image:

https://m.imgur.com/0AVklzz

 

Or... maybe the "display as link instead" could help! Sometimes, I just don't see things.

https://i.imgur.com/0AVklzz.png

 

Well, now there is two links!

It was taken from an abr file. I found a PNG brush (Grayslake heightmap style) that someone made for Minecraft's WorldPainter, which I then edited (details on previous page) to make it pure black on an invisible background, still in PNG format.

 

I don't recall the actual size right now, but I do remember making it quite large because I recall seeing a post saying that Dynamic Draw would cause aliasing by upscaling the brush (if I chose a size larger than the brush itself). Maybe I misunderstood it, or I am thinking of an entirely different topic, though.

 

Also, while I'm here, I've got a suggestion!

Is there a way to make it possible to see other layers of an image while in Dynamic Draw? I like to apply new features onto different layers and merge it once I have what I want (so I can more easily tweak things without accidentally messing something else up). In the case here, I use Dynamic Draw with my brushes to draw things like lakes and forests to look more natural, but I'd like to be able to see roads and grass (on a different layer) while drawing the lakes and forests.

Edited by BobGrey
Link to comment
Share on other sites

4 hours ago, NinthDesertDude said:

One thing that comes to mind is if the brush is large

@BobGrey This was it. That's because brushes of 1000+ pixels in width or height get resized on being loaded to a max of 1000 pixels, since that's the largest size brush you can draw with at the moment in the plugin. So the problem is that the resize logic when loading a brush, if it's large, doesn't account for jaggedness on resize and just applies antialiasing. That's a bug, thanks for identifying.

 

Meanwhile, reduce the width by 8 pixels so it's 999 total and it will work (tested).

Link to comment
Share on other sites

2 hours ago, BobGrey said:

Is there a way to make it possible to see other layers of an image while in Dynamic Draw?

 

Copy a layer or the image to the clipboard, Open Dynamic Draw,

right-click the canvas and choose to have clipboard as background.
 

Link to comment
Share on other sites

Oh, that's an odd work-around way of doing this. Paint.Net really hates when I keep copying the entire 12000x12600 layer...

Link to comment
Share on other sites

  • NinthDesertDude changed the title to Dynamic Draw v3.1 (3/31/22)

Version 3.1 released

This is a minor update that comes out of @BobGrey's comments. Thanks.

Smoothing: Jagged is no longer treated as a fast/lower resolution draw mode, but as a mode that guarantees aliasing by forcing every pixel to be fully opaque or transparent (well, as opaque as the brush transparency setting if that's in use). Either way, hard edges as they should be. It will make any brush in use hard-edged. Note that brushes that are mostly transparent will probably end up fully transparent while drawing, but then most of those are dedicated to painterly styles, not pixel art styles anyway. Basically, I wanted Jagged smoothing to serve pixel art better.
 

On 3/28/2022 at 2:24 AM, BobGrey said:

Oh, that's an odd work-around way of doing this. Paint.Net really hates when I keep copying the entire 12000x12600 layer...

No other way, unfortunately. Plugins like this can only access the active layer, so until that changes, we're stuck with clipboard copy tricks at best

  • Upvote 1
Link to comment
Share on other sites

Ah yeah, I noticed that just after publishing earlier today. Sometimes I forget to increment the version number. I'll probably increment it shortly, but I won't bump the thread again for it. (It's still the newer one right now, whether the version is lying to you or not 😛)

 

(Also, thanks @toe_head2001for pointing out the versions are tied to Visual Studio 2022. It was recent enough that I wasn't up-to-date, and it was that simple.)

Link to comment
Share on other sites

Quote

1: Size Shift: The size of the brush increases or decreases by the chosen amount as you draw. When it's as large as allowed, it begins to shrink, and vice versa.

What do you mean by "When it's as large as allowed"? What exactly specifies as the "allowed" size here? Random Size Min and Random Size Max for Jitter don't seem to affect this.

Link to comment
Share on other sites

6 hours ago, xchellx said:

What do you mean by "When it's as large as allowed"? What exactly specifies as the "allowed" size here? Random Size Min and Random Size Max for Jitter don't seem to affect this.

brush size max is 1000. If the size shift considered random size jitter, it would be very erratic to use. It only checks the brush size property, which is the one that permanently changes as you use it. I like alpha and rotation shift, but the size shift is really only useful for things like drawing a meteor, and it's easy enough to do that without it. Eventually I'll have an overhaul of the dynamic constraints that gives you more flexible behavior, and this will go away.

Link to comment
Share on other sites

  • NinthDesertDude changed the title to Dynamic Draw v3.2 (4/15/22)

Version 3.2 released

This update includes adding RGB channel locks and also HSV channel locks! All remaining blend modes have been added, and the concept of transparency has been separated into two topics, common among drawing programs:
- Brush Opacity is transparency the way it works in paint.net. That means flat, transparent sections as you draw
Brush Flow is transparency the way it was previously implemented. Everything "builds up" until it's totally opaque. (This works with opacity too, so if the opacity is 50%, nothing will "build up" past 50%). Both flow and opacity are part of this plugin, because both have proven useful in most drawing applications.
 

A square brush has been added. A checkerboard dithering option has been added under Special Settings for pixel art.

Overlapping lines in every blend mode:
DMOBKZh.png
(Also, the last release included a bugfix for where pixels are drawn + snapping of the brush indicator to pixels, for pixel art drawing. Forgot to mention that.)

  • Like 3
  • Upvote 1
Link to comment
Share on other sites

  • 1 month later...
On 12/11/2016 at 4:48 AM, NinthDesertDude said:

Drawing with brush dynamics (similar to Krita/Photoshop), but within Paint.Net! Everything in the pic below was drawn with it except the letter shapes
Additional thanks to TechnoRobbo, Null54, Pyrochild, Toehead, and xchellx for valuable code contributions

 

lebxav4.png

Using Dynamic Draw

LZZyHlY.png 

1. Pick a brush image (and add your own under Settings - Brush section -> Brush Image Locations)
2. Change settings (don't forget you can scroll down for more settings)
3. Draw on the canvas (with some tablet support for huion/wacom via WinTab)


You'll see explanations & keyboard shortcuts in a tooltip as you hover over settings.

Note: If you're working with multiple layers, you can merge down all the layers below to copy it to the clipboard and use it as the background in a right-click menu on the canvas itself.


Installing

xJUovIl.png

Extract the Dynamic Draw folder to the Effects folder of your paint.net installation, which for me is at C:/Program Files/paint.net/Effects. Leave it in the folder. Then restart paint.net.

 

What's New? changelog

  • new Added brush opacity. Brush transparency is now called brush flow. They work together
  • new All remaining paint.net blend modes added. They work with channel locks. Works in all modes except eraser tool
  • new Added RGB and HSV channel locks. Works in all modes
  • new Added a dither drawing mode under special settings. Works in all modes
  • new A default square brush was added
     
  • tweak Uses user's primary color and alpha every time the plugin loads
  • tweak Recolor brush preset changed to use saturation and hue channel locks
  • tweak Max draw distance seemed restrictive; increased to 500
  • tweak Pressure is interpolated between applications of a brush stroke based on brush density. Smoother
  • tweak Shortcuts updated for: brush flow, opacity, rotation, panning, tool shortcuts, zoom
     
  • bugfix Erase mode now respects seamless drawing


Get Dynamic Draw v3.2
  optional extra brushes 64.48 kB · 6,381 downloads  

How to use Dynamic Draw
old downloads
Source code

Whenever I go to Effects > Tools > Dynamic draw a message about errors appears, which advices to restart PdN. Is there a bug? (Installed v3.2)

Link to comment
Share on other sites

1 hour ago, toe_head2001 said:

 

What are the details of the message?



Error detail says:

Bestand: C:\Program Files\paint.net\Effects\DynamicDraw.dll
Naam: DynamicDraw.EffectPlugin
Versie: 3.2.0.42777
Auteur: NinthDesertDude
Auteursrecht: Copyright 2021 NinthDesertDude
Website:


Volledige foutmelding: System.IO.FileNotFoundException: Could not load file or assembly 'WintabDN, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null'. Het systeem kan het opgegeven bestand niet vinden.
File name: 'WintabDN, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null'
   at DynamicDraw.WinDynamicDraw..ctor()
   at DynamicDraw.EffectPlugin.CreateConfigDialog()
   at PaintDotNet.Menus.EffectMenuBase.RunEffectImpl(IEffectInfo effectInfo) in D:\src\pdn\src_4_3_x\PaintDotNet\Menus\EffectMenuBase.cs:line 848

 

Foutmelding.JPG

Link to comment
Share on other sites

9 minutes ago, IngridFJ said:

Volledige foutmelding: System.IO.FileNotFoundException: Could not load file or assembly 'WintabDN

 

Make sure you're installed the plugin correctly.  You should have 3 files within a subfolder.

 

image.png

  • Like 2

(September 25th, 2023)  Sorry about any broken images in my posts. I am aware of the issue.

bp-sig.png
My Gallery  |  My Plugin Pack

Layman's Guide to CodeLab

Link to comment
Share on other sites

38 minutes ago, toe_head2001 said:

 

Make sure you're installed the plugin correctly.  You should have 3 files within a subfolder.

 

image.png

Thank you very much! This solved it!!

Link to comment
Share on other sites

29 minutes ago, Pixey said:


Dynamic-Folder.png

 

And, inside the Dynamic draw folder are these:

 

content-of-folder.png

@toe_head2001mentioned it too. That was indeed the cause. It works now. You both are very helpful. Thank you both!

  • Hooray 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...