Home Technical Talk

Krita--Master Thread and Google Summer of Code 2014

JedTheKrampus
polycounter lvl 8
Offline / Send Message
JedTheKrampus polycounter lvl 8
Looks like KDE has chosen my proposal for a Google Summer of Code spot on Krita. For those of you not familiar with the program, Krita is a 2D raster program primarily aimed at concept artists and digital painters. My proposal benefits texture artists primarily and has two major parts: first, Krita is going to get a preview renderer that lets you look at your model with the textures and shader you specify. Second, Krita is going to allow you to paint on more than one image with the same paintbrush, making it very easy to keep all your maps in sync with each other. The first lighting model I'm going to be testing this with is going to correspond as closely as possible with Unreal Engine 4, so you'll be able to paint base color, metalness, roughness, and bump maps for conversion to detail normal maps. If I have time I'll make it support Dota 2 as well, but this is a big project and I don't think I'll be able to get that in before summer's end.

If you have any questions about Krita or my plans for the Google Summer of Code, please ask them! I'll begin coding for the proposal on the 21st of May, and before then I'll be finishing the semester here and finding small ways to improve Krita for texture artists.

Replies

  • Skinpop
    Offline / Send Message
    Skinpop polycounter lvl 9
    Well this is truly glorious news, I hope you make some solid progress. Is this open source? If so any place to follow the code?
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    It is an open-source project. You'll be able to get the sources and build the code yourself from git://anongit.kde.org, although I recommend that if you want to build it yourself you should build it on Linux, as building it on Windows is incredibly involved and complex and the dependencies break literally every day.

    I haven't begun work on my branch yet, but you can review the instructions for building here: http://community.kde.org/Calligra/Building

    For Windows users, I think Boud is going to provide regular builds of my branch for testing. Hopefully I can convince him to put one out once a week, but I don't think he really wants to boot Windows more often than that. (No offense.)
  • thinkinmonkey
    Offline / Send Message
    thinkinmonkey polycounter lvl 15
    Jed,
    I'm thrilled reading your proposals for Krita, an application I'm using for texturing in place of Photoshop.
    So, my questions are:
    1. When you speak about painting more images with the same paintbrush I think of 3DCoat and its feature to paint diffuse/specular/normal in one go: is that right? Will you recreate the same feature in Krita?
    2. Will the preview renderer so flexible to simulate also other shaders, for example, like Unity ones?
    Anyway, thank you very much for those efforts.
  • Ponk
    Offline / Send Message
    Ponk polycounter lvl 8
    OH MY GOD! Thank You! This will be awesome!
    1. What happen if you don't finish this tools before end of GSoC? Can we support you by paypal donations then?
    2. Any ideas on linking this features with Blender? Like painting on 3d models in blender and then transferring it to Krita and spliting to specific texture channels?

    If I may suggest something. Will be great if users will be able to specify texture channels and their relations while painting, not only choose shader type like UE4 or DOTA2. This can be used to create custom texture masks to use in complex shaders.

    Krita is a beast. I count months to day when this software replace Photoshop in my workflow completely.
  • nyx702
    Wow. I have been watching Krita for awhile now and have been really impressed. With these updates I can really see this app taking over a big chunk of the games industry. Pretty pumped about these updates. Please keep us in the loop!
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    Yes, it will be something like 3D-Coat's features. But I think I may be able to improve upon the UI for it...

    I want the features I code to be as flexible as possible. If I do everything right you'll be able to put in an arbitrary GLSL shader pair and you'll be able to paint on and define each texture sampler that shader requires at the same time, while seeing the output in the viewport. Maybe I'll make some kind of ubershader where you can toggle parts of it on and off. Time will tell. I want it to be good for big studios with TDs and individual artists alike, but maybe I'm being too idealistic.

    The reason why I'm choosing the UE4 shading model first is because the physically-based workflow makes material presets and definitions a lot more meaningful than it was in previous lighting models.

    If I don't finish the tools before the end of GSoC, they may not be finished for a while. :/ It really depends on whether I want to finish school in one semester with a seventeen-credit-hour-or-more semester, or finish school in two semesters studying half-time and work on Krita in my spare time.

    I am interested in supporting other 3D apps with pipeline scripts, but it's not going to be a real priority until after the Google Summer of Code at least. The project is gigantic as it is, and there are a lot of things on my todo list before pipeline stuff. It's about the same place on the list as projection painting (i.e. far, far in the future.)
  • boudewijnrempt
    Offline / Send Message
    boudewijnrempt polycounter lvl 5
    As for sponsoring beyond gsoc -- depending on how much spare time his studies leave Jed, there are ways and means.

    I've created the Krita Foundation so users can sponsor development. That can be done both in a general way, for instance by subscribing to the development fund, or by making donations towards a specific goal.

    If enough people donate for the development of this feature after gsoc ends, and if Jed has time (or would prefer to work in krita instead of a student job), then I am ready to set things up.
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    Good on ya man. Can't wait to see what happens with Krita in the next few months (been keeping an eye on its development as well).
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    IT BEGINS.

    DXMaL5f.jpg

    That green rectangle you see there in the bottom right is rendered in OpenGL. You can tear it off, resize it, move it around, move it to another screen, etc. etc. and it will still be just as green. Next up is figuring out asset loading and a simple unlit texture pass-through that you can use to assess UV seams and the like.
  • iconoplast
    Offline / Send Message
    iconoplast polycounter lvl 13
    This is exciting! I love Krita so much.

    I'll even offer some concrete encouragement -- I promise if Windows builds are made I'll try to break them as often as I'm able. I'm extra good at breaking stuff. It's natural QA talent!
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    It'll definitely be a good idea to test against more than just Nvidia's OpenGL, too. I know from experience with their cards that AMD and Intel's OpenGL implementations tend to turn up some problems that Nvidia's don't.
  • thinkinmonkey
    Offline / Send Message
    thinkinmonkey polycounter lvl 15
    Congratulations!
    If you need some tests I can give you an help, especially now I'm working on a game project, but, generally speaking, because I've adopted Krita as my 2d texturing program.
  • danni
    Are you working in trunk or will you have your own branch?
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    I have my own branch, origin/material-and-preview-fences. I'm having a bit of a tussle with OpenGL at the moment, so there isn't a whole lot on it besides that beautiful green rectangle. But if you want to test something and you have access to a Linux machine, you could try to build it and see if CMake can find AssImp if you install it and its header files.
  • frmdbl
    Offline / Send Message
    frmdbl polycounter
    I had the idea of Krita painting textures on a 3d model for a long time, great that it has a chance to be realized.
  • thinkinmonkey
    Offline / Send Message
    thinkinmonkey polycounter lvl 15
    Jed,
    I would be happy to help you, but I'm using Windows, I hope there will be a porting in the next builds.
    Thank you, anyway, for your efforts.
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    It'll happen soon (tm). Once I get something together that's worth building, boud will make a .msi for me and I'll post a link in this thread.
  • thinkinmonkey
    Offline / Send Message
    thinkinmonkey polycounter lvl 15
    You're very wise.
    Can't wait! :)
  • iconoplast
    Offline / Send Message
    iconoplast polycounter lvl 13
    Oh no, not Soon (tm)!

    I'm not running any Linux boxes at the moment either, so I shall have to eagerly await your progress.
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    Another way you could help me is by explaining why binormals are called binormals. Normals make sense because they're vectors normal to the surface, tangents make sense because the direction they face touches the surface, but wtf is a binormal and why is it called what it is? I know that I need it to calculate lighting and I should usually calculate it in my shaders but that's about all I know.

    Stuff has been eating at me for a day or so now.
  • alfalfasprossen
    you can call them bitangents, if you prefer and that would be the mathematical correcter term, because it is a second tangent to the normal that is orthogonal (90º angled) to the first tangent. :D

    the whole thing defines the "tangent space". it is important to calculate lighting, yes, because it is necessary on a 3d model to know... kinda in what direction you normal map bents the normal on the surface.
  • iconoplast
    Offline / Send Message
    iconoplast polycounter lvl 13
    I'll offer two math-heavy links for you: binormal and bitangent vectors. For a bonus, here's how to calculate them.

    Edit: Oh, and it's called that because it's the cross product of the normal and the tangent.
  • Denny
    Offline / Send Message
    Denny polycounter lvl 14
    iconoplast wrote: »
    Oh, and it's called that because it's the cross product of the normal and the tangent.
    That feeling... When the obvious is right in front of me, yet I did not get it until someone pointed it out. Thank you for the links.
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    Hey hey, time to revive this thread.

    As you may know, we had a kickstarter, and are adding features to Krita as decided by this kickstarter. This means: Development builds!

    In this build, the big new feature is 'liquify', this is the penultimate of the transformation features: We now have generic transform, warp, perspective, cage and liquify. The final transform feature will we 'transformation masks', which indeed, are non-destructive transforms!

    Liquify is slower than the cage-tool, and the optimisation to have it work on higher than 2000x2000 doesn't work right(we've had one person for whom it resulted in the canvas turning black on zooming on 4000x4000. The workaround it to perform liquify on selected parts).

    Mohit's summer of code has been merged, so we now have linked settings, culmulative undo(right-click the undo history to activate) and temporary tweaks to presets saved. Unlike what the page says, the sketchbrush engine has been fixed in the current builds.

    There's also a ton of little UI-changes and more settings are saved to the preferences file now, as well, we now have seperate size-memorisation for the 'e' button, meaning that you can make your eraser larger or smaller than before by adjusting size while in eraser mode.

    Other than that, if you hadn't had the fortune to use the development builds, we have a lot of new things like new colour selector options, better pop-up palette, better brush anti-alisiasing, quick masks features, straight line to hotkey, stablizer. Etc.

    As well, there's a beta mac build for your poking.

    As fr the thread starter's summer of code, we lost contact halfway through. We hope he is in good health.

    Anyway, have fun!
  • throttlekitty
    Awesome, Wolthera, thanks for the update news!
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    New development builds: https://krita.org/item/last-two-weeks-in-krita-and-development-builds/

    Many new features, amongst which(non-destructive)transform masks, multiple documents and import and export of alpha-masks!

    I don't know how to embed videos here, so please check out the link for said goodness in detail!
  • thomasp
    Offline / Send Message
    thomasp hero character
    looking good! are there any ubuntu PPA's for these development builds? also what are the OS version requirements for OSX?
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    thomasp wrote: »
    looking good! are there any ubuntu PPA's for these development builds? also what are the OS version requirements for OSX?

    OSX requirements are Mac OSX 10.9 at the least. Because that's our only building machine.

    We also have the Krita Lime PPA for ubuntu development builds:
    https://launchpad.net/~dimula73/+archive/ubuntu/krita
    As per launchpad rules, only ubuntu 14.04 and up get new builds. If you're on a lower version we recommend you build.(we have a really easy guide for this!)
    And instructions:
    http://dimula73.blogspot.nl/2013/05/krita-lime-ppa-always-fresh-versions.html

    These don't have multiple documents yet though :)
  • thomasp
    Offline / Send Message
    thomasp hero character
    cheers for the swift response! 14.04 it is indeed.
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    2.9 Beta is officially out: https://krita.org/item/krita-2-9-first-beta-released/

    Please check out the link for downloads and the full change log!

    We're in feature freeze right now, and aside from one branch that's still sorta coming, we're only focussing on fixing bugs now. So please, if you find a bug, report it!
    Bugs go here: https://bugs.kde.org/
  • Wolthera
  • throttlekitty
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    Alright, last BETA! Release is the 26th

    https://krita.org/item/last-beta-release-for-krita-2-9/

    As well, if you hadn't seen it yet: https://krita.org/item/krita-in-floss-weekly/ <<Interview of boud with floss weekly.

    Two mini tutorials on new features:
    https://krita.org/item/how-to-select-areas-with-the-paintbrush-in-krita-2-9/ << Selection painting.
    https://krita.org/item/introducing-dirty-presets-locked-brush-settings-and-cumulative-undo-in-krita-2-9/ <<Mohit's GSoC work.

    Other then that, we now have a new letter which informs you off new releases. And a countdown bar on top.

    Preliminary feature list for 2.9 will be coming soon.
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    Oh, btw, if there's anyone here who builds Krita themselves and does a lot with normalmaps: I attempted to make a tangent normal map blending mode, which substracts the base blue from the upperlayer before adding the values to the lower layer. For me it works, but I haven't done any serious work with normal maps to really test it, so it be cool if someone would like to give it a poke.

    As it won't be availeble to people using ppa's until the first 3.0 dev build, I posted the patch here: http:// https://git.reviewboard.kde.org/r/122587/

    Once you applied and build, the blending mode ought to be found under 'Misc' blending modes, and of course, make sure both normal maps are of the same type. Should work with 16bit, and 16bit f/32bit f as well.
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    krita_2_9_splash.png


    GET IT HERE!

    This means multiple documents, cage, liquify, transform masks, hdr colour selection, new colour pickers, better gmic intergration and tons of workflow improvements! Check out our release page.

    What is still missing/not possible:

    • Layer Styles: A kickstarter item, but won't be in till 2.9.1!
    • G'Mic for 32bit was impossible. This is due to the way G'Mic is written as a program: it requires a lot of memory to work.
    • In fact, some G'Mic filter's may not work on 64bit windows either...(at the moment)

    What's up next: Well, 2.9.1(or 2.9.2, we release a new stable every month) will have the layer styles+more bugfixes. Bugfixes will require your bug reporting of course :) (at bugs.kde.org)
    Also, start saving up some cash: New kickstarter coming up soon!
  • SonicBlue
    Offline / Send Message
    SonicBlue polycounter lvl 10
    There are plans to implement a proper High Pass filter?

    The G'MIC one is so hard to use and the results are literally unusable.

    For texture editing from photographs this is essential.
  • iadagraca
    Offline / Send Message
    iadagraca polycounter lvl 5
    2.9.7 came out and when i heard they release the normal brush engine i jumped on it that mess is NIIIIICE.

    http://www.cgchannel.com/2015/09/the-krita-foundation-releases-krita-2-9-7/

    Download: https://krita.org/download/krita-desktop/

    [ame]https://www.youtube.com/watch?v=qiX60EWyMF8[/ame]

    Their wiki explains how to get started.

    https://userbase.kde.org/Krita/Manual/BrushEngines/TangentNormalBrush

    I painted this after getting the settings right :D

    Admittedly it's a bit odd painting while tilting the pen like that, but just mirror the canvas if needed and it works fine. It feels like painting a form so it's not like i'm wrecking my brain to make it work.

    And being able to quickly paint and preview like this is nice too. Should be fantastic for handpainted textures and such.

    G8S87Xr.jpg7eMqiTo.jpg
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    It gets less weird the more you use it.
  • iadagraca
    Offline / Send Message
    iadagraca polycounter lvl 5
    Yeah i think i'm getting the hang of it, it helps that the tiled painting is so good.
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 8
    Have you got the tilt outline enabled? It can help a bit. Settings>Configure Krita>General>Outline Shape.
  • Wolthera
    Offline / Send Message
    Wolthera polycounter lvl 5
    Yay, I am glad you like it! It was my GSoC :p
    We came up with the idea after I was toying with the color smudge brush to make direction maps, and then on IRC someone said like 'oh, but if this could be attached to tilt...' and so the idea was born.

    I am really excited to see what kind of things people are going to do with it, because it should give the ability to do a completely different type of normal map than what was common before.

    It also works with a rotated canvas btw, (4,5,6 are hotkeys for rotating, and so is shift+space+drag). It doesn't fully work with the multibrush outside of symettry. And it'll probably never work with regular mirror symmetry mode(though it might work with multibrush symmetry mode in the future).

    This is an example I painted myself and used for the release notes:
    http://i.imgur.com/5el2227.png
    http://i.imgur.com/jBo8bRg.png
Sign In or Register to comment.