Forum > Webcomic & Art discussion > Ideal drawing program features
Pages: 1 2 3
25th Jan 2020, 11:57 PM #21
User avatar
I use PaintTool SAI2 ...no complains.
_______________________
image
-=: jokercologne.deviantart-twitter.com/JoKeRcologne-Katran-Online Discord :=-

Expect the unexpected. Never take anything for granted. Scrutinise everything. Be open-minded. Learn.
26th Jan 2020, 12:11 AM #22
I can explain
User avatar
Robotwin.com:PDF, ODF, SVG and HTML can accommodate a lot of those ideas, if I understood correctly. Open-source compositor examples might be Inkscape, Scribus, Synfig, Pencil2D, Natron, and Blender.


Sort of, but that's not their principle workflow (at least of the ones I've used). Inkscape and other SVG editors just do it by embedding an <image> tag, Blender does it as part of its own workflow (that's really more focused on 3D and video than on 2D). And document editors (PDF, ODF, even HTML) don't generally output to static images, nor are they at all a good tool to use for comics. Like, I'm sure someone could edit a comic in Microsoft Word, but people have also made a playable XCOM game in Microsoft Excel, and neither of those sound like a pleasant experience.

The more I ponder this, the more I think the most powerful part is the automated speech/thought/narration bubbles. Like, given text in this sort of format:
Alice: Oh no, what are we going to do?
Bob: Don't worry, I have a plan.
Narrator: He did not have a plan.

and a document level definition of styles for Alice, Bob, and Narrator, having it auto-generate bubbles and all you have to do is drag them to the right spot, drag the tail to the right spot, and maybe drag some handles to get them to the right size... that would be really efficient. And then having it be able to refresh itself based off the original text file, that's even more utility.


TanteiSakana:One thing I've had trouble finding answers about is this: it seems a lot of image editors divide larger images into smaller "tiles," presumably to make editing them more efficient. I'd like to find a writeup on the rationales and pros and cons of this, but I haven't had much luck. I suspect that dividing images into excessively small tiles can be diminishing returns for performance, but I'm not sure. I'm probably at least going to tile images up to the maximum texture size of the computer's GPU, though, to ensure displaying the canvas on screen can be done very quickly and easily.


I've not considered them in the context of 2D image editing, but tiles are used in the rendering process of most 3D drivers now. The utility is that you can limit memory bandwidth usage - if you do the operation "draw this triangle", you can know ahead of time how many tiles it's going to affect. With a small one, it will only touch one or two, and that can save you from having to copy too much data around.

If you're doing ALL rendering GPU-side, you can probably avoid it entirely. I think most drivers now allow 65536x65536 textures, and that should be more than enough for the foreseeable future (and by the time it's needed, GPU drivers will have increased that limit anyways). But if you're doing some edits CPU-side, and others GPU-side, a tile system seems appropriate so that you don't have to re-upload the entire image when you do a CPU-side update. CPU->GPU bandwidth is a lot more limited than GPU->VRAM or CPU->RAM bandwidth, makes sense to not waste it.

TanteiSakana:…the thing is, though, while this could completely revolutionize how people work with computer graphics if it worked, if it didn't, it would be particularly bizarre and awful, both for me to implement and anyone else to use. The biggest problem is that I'm not sure how well this would scale to elaborate pictures in practice. This paradigm would allow infinitely nondeductible editing, but at the cost of defining this in terms of time rather than space—navigating the edit history of a detailed picture could be difficult. And the ways this could potentially be a performance and memory nightmare are obvious. But it's a sort of interesting idea, isn't it? :p


Beyond the performance issue (which can probably be managed with good caching and GPU rendering, I mean my computer is drawing images like this in 5ms), an issue I see is just selecting which edits you want. Most editors implement undo/redo the way you're describing, but the workflow of "undo the last 50 instructions, skip four of them, add these six instead, then redo the next 46" is hard to wrangle. How is someone supposed to find the exact change in the stack they want to modify, out of a huge history?

Pretend for a moment that every single edit operation is its own layer. Every stroke of the pen, every fill, new layer. How would you be able to find anything? You'd need something like folders to sort them all, and now you're just adding more work for the user, not less. You could try to merge a chain of similar edits into a group but that breaks once people start really taking advantage of this workflow. It's a nifty idea but I've never seen an editor that made it work.
_______________________
Watch this space
Watch every space
26th Jan 2020, 1:10 AM #23
User avatar
If it renders a thumbnail of each event in the history, or renders just that event as you scroll through, then it might be easier to browse. But time is our perception of moving through space, so it seems more realistic to follow the traditional Cartesian layer space. The event history is a log of the artist's movement through space, so it's unnatural to imagine the layer space as a log of the artist's time.

The automated script-to-word-balloon idea is great. ComicLife comes close. There's a markup language called Fountain that's neat--maybe custom tags would be useful to automatically direct the interpreter program to fill the word balloons.
26th Jan 2020, 2:16 AM #24
User avatar


TanteiSakana:Alignment - Will keep in mind for future. If you could describe your use case and specifics of how you would like this to work, that would help.


Like the alignment feature on Photoshop and Inkscape, when you can align to vertical or horizontal axis, edges (top, bottom, left, right).

image
_______________________
image
26th Jan 2020, 5:11 AM #25
I can explain
User avatar
An additional good idea: a way to define multiple "outputs". Like a setting in the document to output both a 1200px-wide PNG web version, and a 600dpi PDF print version. That way you can just set them up in your template, then keep one set of files without worrying about accidentally writing over your original with the web-scale one, and to handle multiple resolutions better (for when CF finally gets HiDPI alternatives support).

An additional useless idea: HDR support. I've been thinking on and off about what sort of cool stuff webcomic artists could do with high-range images. No more must colors be limited to just 0-255, let's make them all FLOATS. Or at least 12-bits per channel, logarithmic gamma, because outside of PBR who really needs that much detail? Blacker blacks, whiter whites, more colorful colors, what's not to love? Oh, right, browsers don't support HDR images yet. Some of them do HDR video but I couldn't even find a proposal for static images. And most people, even me, don't have an HDR display yet, so at best you could do some sort of funky javascript tonemapping to simulate it. And a lot of editors already support HDR formats, so this is the hurdle that least needs solving.
_______________________
Watch this space
Watch every space
26th Jan 2020, 5:50 PM #26
User avatar
That reminds me of the HEIF and BPG formats, based on HEVC video codec, so you can use the video card to decode them. But that's patented so OpenEXR is a better open-source standard HDR format. Artists and filmmakers need that 32-bit channel mastering to reduce the color banding that occurs after a few edits.

For undo history, how about making it an animation timeline, so artists can playback the drawing process or export it as an MP4 for speedpaints on Youtube or Patreon or something.
26th Jan 2020, 8:26 PM #27
User avatar
TanteiSakana:Currently I'm working in C, with SDL2 as my main dependency.


C?? Wow. Respect, man.

As an artist that does a lot of lineart by hand and only uses the program to colour, what I'd really like is an easier way to make changes to the colour of the lineart itself. Gimp has two ways of doing it and both are pretty uncomfortable to use.

Also, er. Possibly a selection of brushes that are actually useful XD.

Edit:
TanteiSakana:• Krita/GIMP's line art coloring tools (grouping these together since they are based on roughly the same algorithm) - Not planned, since developing my own alternative to those is actually pretty much my number one priority here lol. I'm hoping my gap filling flood fill is good enough to replace these tools for most use cases. However, there are some fancy things their algorithm does, like automatically flatting heavily anti-aliased and sketchy artwork, that I'm not planning to support.


Oh wait, nvm. Didn't see that.
_______________________
30th Jan 2020, 2:26 AM #28
New Member
User avatar
Hi. The main reason I haven't responded to this thread for 3 days is because my internet has been completely dead for 3 days. I think it's okay now, though :(

However, I did get some work done on my program while my internet was down.

Basically, its extremely threadbare, but as my program stands right now, it's now possible to go from this (drawn in Clip Studio Paint):

(warning: 4K image, furries :p)

To this (filled/flatted by my program):

(same)

…by fiddling around with the gap filling flood fill for a bit.

I uploaded the images in full res so you can see the extent of my algorithm's glitchiness and the crappiness of the line art it has to deal with :p

Milestones I want to clear for first public demo are:

• Basic pencil tool
• Ability to save images as .png files, not just .bmp
• Canvas zooming/panning/rotation
• Switch from SDL2's Render API to raw OpenGL code
• Basic GUI

…although, again, still not quite sure how far this project will go :p

I'll probably try to reply to more posts here later. And let me know if you want more progress updates from me on this :p
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
30th Jan 2020, 3:45 AM #29
User avatar
Bravo! I don't know why this is so awesome to me, but please continue to post updates. I've tried studying source code for xara lx and inkscape and studying graphics libraries, but it makes my eyes bleed.

Blend2d is a beta alternative to Cairo with impressive benchmarks, but Cairo has other goodies like PDF support built in.

NanoVG and NanoGui also look really good, and they're based on openGL.
31st Jan 2020, 8:31 PM #30
New Member
User avatar
Here's a monster post, with longer sections spoilered to save space :p

I did discover, while doing some fact checking for my response to this thread, that someone actually has tried to make a completely nondestructive image "compositing" software—VEGAS Image seems to aim at this, although I can't easily find much information on it. The main use case seems to be movie posters for movie studios?

Robotwin.com:PDF, ODF, SVG and HTML can accommodate a lot of those ideas, if I understood correctly. Open-source compositor examples might be Inkscape, Scribus, Synfig, Pencil2D, Natron, and Blender.

SVG is cool because you can embed HTML and JavaScript inside it, and of course hotlink a variety of external raster images as well as describe vectors in different layers.

I have actually looked into most of those options. In particular, I actually did recently try compositing a comic in Scribus, and that's where the test art I'm currently using to test my program came from :p

I don't want to dwell on this too much, but basically… I think Inkscape, Scribus, and/or GIMP could be modded to suit my comic workflow, but trying to make my own more lightweight program sounded more fun :p

GMan003:[GPU rendering and tile stuff]



Robotwin.com:The automated script-to-word-balloon idea is great. ComicLife comes close. There's a markup language called Fountain that's neat--maybe custom tags would be useful to automatically direct the interpreter program to fill the word balloons.



Robotwin.com:Blend2d is a beta alternative to Cairo with impressive benchmarks, but Cairo has other goodies like PDF support built in.

NanoVG and NanoGui also look really good, and they're based on openGL.

NanoGui and Blend2d look interesting, but not quite interesting enough to sway me away from the more mainstream options of Cairo and Dear ImGui. I could actually use Cairo's PDF support to automate making PDFs of my comics, and Dear ImGui is just ludicrously overpowered compared to the competition, since it not only has widget UX I like, but it's also mainstream, well supported, feature rich, customizable, easy to use, and easy to compile :p

Other things:
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
1st Feb 2020, 8:57 PM #31
User avatar
8-bit indexed HDR sounds like an oxymoron, but if you can do it, more power to ya. Actually PNG is supposed to support 16 bits per channel/48-bit samples, and all the major browsers already support that and animated PNG already, so there's that.

Old school games used to cycle the palette in the image to fake animation, and at times it was stunningly beautiful:

http://www.effectgames.com/demos/canvascycle/
3rd Feb 2020, 11:59 PM #32
New Member
User avatar
Progress update!

Basically…

Milestones I want to clear for first public demo:

• Basic pencil tool
• Ability to save images as .png files, not just .bmp

• Canvas zooming/panning/rotation
• Switch from SDL2's Render API to raw OpenGL code
• Basic GUI

Details:

And…

Robotwin.com:8-bit indexed HDR sounds like an oxymoron, but if you can do it, more power to ya. Actually PNG is supposed to support 16 bits per channel/48-bit samples, and all the major browsers already support that and animated PNG already, so there's that.

Old school games used to cycle the palette in the image to fake animation, and at times it was stunningly beautiful:

http://www.effectgames.com/demos/canvascycle/


Next up, OpenGL nonsense :(

…or stalling :p
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
"Those poor unfortunate PNGs", 4th Feb 2020, 11:07 AM #33
ascii man
User avatar
TanteiSakana:also, I have no idea what these "certain image viewers" are. The only program I can see that metadata in is a hex editor. I must've screwed something up lol

You didn't screw up or anything; it's shame that not many programs actually take notice of PNG-native metadata. I've seen most image viewers only do EXIF, some of them also do IPTC/XMP, but still yet to see one that do PNG properly.

One of the "not many programs" that I know for sure is the command-line Exiftool; so I never had to resort to hex viewer for this. So, for your information:
4th Feb 2020, 12:41 PM #34
User avatar
It's been a long time since I last responded to this thread, but has anyone recommended pre-made speech/thought/shout bubbles, and 3D models that can be used for reference?
_______________________
image
13 days ago, 11:24 PM #35
New Member
User avatar
Currently studying OpenGL, trying to figure how to get that to work. Never used OpenGL before, so that's going to take a bit :p

xwindows:You didn't screw up or anything; it's shame that not many programs actually take notice of PNG-native metadata. I've seen most image viewers only do EXIF, some of them also do IPTC/XMP, but still yet to see one that do PNG properly.

One of the "not many programs" that I know for sure is the command-line Exiftool; so I never had to resort to hex viewer for this. [...]

Oh, cool. Metadata support is kind of low priority, but maybe I'll try to support those PNG fields when I get around to that :p

Reapeageddon:It's been a long time since I last responded to this thread, but has anyone recommended pre-made speech/thought/shout bubbles, and 3D models that can be used for reference?

I don't think anyone's recommended it yet, but I have considered those features myself. Basically, they're on the agenda, but hard to code, and would come later :p

Although, design ideas for text/panel/word balloon tools would be welcome. I want to make sure those are well thought out when/if I start working on them.

Also, anyone have any opinions on whether I should change the title of this thread to "Tantei's Cool Art Program" or something, since I'm using this as kind of a devlog for my thing more than a general discussion?
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
12 days ago, 2:43 AM #36
User avatar
Renaming it like that has a shameless ad vibe and it's incongruous with all the community input being solicited. maybe save that title for an ad thread when it's in beta and link to your patreon or something.

For a long time I've had a cool idea for a word balloon plugin for inkscape, but maybe more profitable plugin for Adobe Illustrator or Photoshop. I dunno, it's hard to just give away this idea even though I don't have the skills to make it happen myself, not yet anyway.

For u.i. it would be nice to have key shortcuts for zooming and canvas rotation and brushes, similar to various other programs depending on user prefs.
12 days ago, 12:47 PM #37
User avatar
Taily:Something that makes a huge difference is having an Add Text function that works!! I mainly use Procreate to make comics and OH MY GOD the Text function is absolutely the worst, for whatever reason they decided to make it so you have to adjust the font size with a slider and you can't just type in the size you want?! It makes it impossible to get the same font size twice in a row, and I hate it so much that I literally just add font in a separate program. It's a big hassle!


Agree.

I'm making animations and short films on Opentoonz since it is a great software free program (albeit tough to get used to at first).
The text has to be drawn in with vectors. There is not pure text entering mode. It makes sense I guess since having it on opentooz doesn't really work.
_______________________
Don't whizz on the electric fence
8 days ago, 12:10 AM #38
New Member
User avatar
Been fiddling around with OpenGL in a separate project, have finally actually gotten something to render to the screen.

image

That's, uh… a fish :p

Now I've got to figure out:

• How to make the code for this less weird
• How to set up the transformation matrixes the way I want for rotating/zooming the canvas
• How to integrate this into my drawing program code

One problem, though, is… (tech stuff)


And, responses to stuff…

Robotwin.com:Renaming it like that has a shameless ad vibe and it's incongruous with all the community input being solicited. maybe save that title for an ad thread when it's in beta and link to your patreon or something.

Okay. Will probably keep thread title as is then.

Robotwin.com:For a long time I've had a cool idea for a word balloon plugin for inkscape, but maybe more profitable plugin for Adobe Illustrator or Photoshop. I dunno, it's hard to just give away this idea even though I don't have the skills to make it happen myself, not yet anyway.

I don't know. For me, it seems pretty hard to beat "a bunch of vector shapes that are nondestructively fused together" as the best middle ground between efficiency and flexibility for word balloons. That combined with a few select abilities from page layout programs, like the ability to wrap text to nonrectangular shapes, would be my ideal word balloon tool (well, at least when I'm not doing this lol) :p

Vector panel tools are what make my head hurt way more. Do you treat the panels themselves as objects, or the gutters between the panels as objects? Is it desirable to mask out each panel individually? If this is automated, what should happen if you delete a panel or something? Uggghhhh :p

Robotwin.com:For u.i. it would be nice to have key shortcuts for zooming and canvas rotation and brushes, similar to various other programs depending on user prefs.

Having anything but keyboard shortcuts is going to be the problem lol

Editable keybindings is a priority, but likely wouldn't be in the first demo. The default keybindings would likely be at least somewhat Photoshop/Clip Studio Paint inspired, and hopefully not terribly difficult to get used to.

(So far, my main idiosyncrasy here is that I really like using Ctrl+-/+ to zoom the canvas and -/+ to rotate the canvas by a set amount of degrees—I'm not sure if whatever keyboard shortcuts Photoshop uses for canvas rotation are good enough to make me compromise on this :p)

Some questions regarding this…

• Is anyone aware of a single person on the entire planet that actually takes advantage of the computer's ability to distinguish between the left and right shift/control/alt buttons for keyboard shortcuts?
• Does anyone have a use case for keyboard shortcuts that are a sequence of keystrokes, like Emacs/Vi, in an art program? (As in, you could set a shortcut to be "alt+x v", which would only trigger the action if you pressed alt+x and then v.)

Red Jack:Agree.

I'm making animations and short films on Opentoonz since it is a great software free program (albeit tough to get used to at first).
The text has to be drawn in with vectors. There is not pure text entering mode. It makes sense I guess since having it on opentooz doesn't really work.

Text tools will likely come later, not quite sure when. There's some discussion earlier about this—basically, the short story is, the text tools I make may be kind of weird and domain specific for comic work for a while.
_______________________
Current project: 2 Guys 1 Laptop (pretty much just NSFW, arguably)
Other accounts: Patreon | itch.io | Twitter | DeviantART | YouTube
8 days ago, 12:36 AM #39
I can explain
User avatar
TanteiSakana:• Is anyone aware of a single person on the entire planet that actually takes advantage of the computer's ability to distinguish between the left and right shift/control/alt buttons for keyboard shortcuts?


I do not believe so. I generally use the same Shift/Alt as the key being pressed (LeftAlt+Q, RightAlt+P) but always the left Control key, for some inexplicable reason.

TanteiSakana:• Does anyone have a use case for keyboard shortcuts that are a sequence of keystrokes, like Emacs/Vi, in an art program? (As in, you could set a shortcut to be "alt+x v", which would only trigger the action if you pressed alt+x and then v.)


I could see that being useful. Like Ctrl+P to say "select palette" and then press another key to save/load a color. Actually, you might not even need mod keys - unlike a text editor, you don't use a keyboard for anything except meta commands in an art program, so you could leave off the Ctrl and the Alt prefixes. Like Undo could just be Z, Copy could be just C, Paste could be just V, and so on, with extended sequences being like (P)alette (L)oad (1). That would make it easier to do one-handed, keep the other hand on the mouse or the drawing tablet where it's useful.


PS: IIRC, OpenGL ES 2 is basically just OpenGL 2 with a set of guaranteed extensions, and some really old functionality removed. On desktop you should have access to all the OGL2 features. I doubt you'll be using any extensions that aren't universal anyways, they were all made required for mainline OpenGL years ago, 4.0 I think.
_______________________
Watch this space
Watch every space
8 days ago, 10:26 PM #40
User avatar
Vector panel tools are what make my head hurt way more. Do you treat the panels themselves as objects, or the gutters between the panels as objects? Is it desirable to mask out each panel individually? If this is automated, what should happen if you delete a panel or something? Uggghhhh :p


Not sure how you should code this, but when importing raster art into vector programs for lettering and cleanup, I do lots of boolean operations with rectangle objects to create gutters. In the end, I have one object, like a giant rectangular swiss cheese with the raster art peeking through the holes.

For automating layout from a fountain script, I guess each panel goes into a buffer or array that reference the XML id for that panel. You maybe have to have multiple buffers that cross reference each other. You might have to have both panel arrays as well as gutter object arrays, depending on how you do this. My heads hurts now, too

It's an interesting puzzle and I wanna hack at this, too. Maybe I will start my own little Fountain project in JavaScript.
Forum > Webcomic & Art discussion > Ideal drawing program features
Pages: 1 2 3