 Mijn naam is Pieter Baanenrecht en ik ga nu over een collega radie in vector graphics en hoe je dat gebruikt om te creëren. Ik ben bijna al te realiseren over de illustraties. Voordat ik begon, dacht ik dat het leuk zou zijn om meer persoon te vertellen. Ik begin met Inkscape. Het was 10 jaar geleden. Ik werkte op een project in mijn wedstrijd. En ik heb mijn supervisor gezegd. Waarom gebruik je later? Inkscape voor je report. Ik vind uit hoe Inkscape werkt meer of minder. Later op mijn discovererde ik dat je kan maken expansies en schrijven in Python. En ik begon met... of probeer je te modificeren. In mijn geval was het Linnemeyer, of L-System extensie, zoals je hier ziet. Ik probeer deze drie te creëren, die nu de Pythagoras drie is. Maar ik weet niet hoe het gaat. Want mensen die het L-System extensie weten, weten niet deze box hier in het bottom. Je ziet een soort schrijvingfactor om dit te krijgen. En op de Inkscape-vorm, ik heb het gecheckt en de publiek is eigenlijk nog steeds op. Het is 2010. Dus hier zie je mij pambeling en probeer je te kregen hoe het werkt. Maar in de eind, het werkte. En er zijn meer dingen. En ik heb dit gekregen en ik dacht, dat is een beetje meer extensie. En als ik de ijzerwet, en misschien de kleuren, of de vormen van de drie en eventueel heb je iets zoals dit. Dus je krijgt gewoon één grote command in je L-System. Blijf in. Dat is het. Dat is leuk. Dat was 10 jaar geleden. En nu ben ik nog steeds aan de extensie werkt. Maar meestal, ik gebruik Inkscape nu voor laser cutting en laser engraving. Ik heb ook een paar examples. Dus er is een engraving op de slag en engraving op de woest met een beetje groei van mijn schijf ook. Dat is een beetje anders. En dit is ook als een warner of een disclamer dat sommige slag-slaatroom een beetje mathematically geïnvolgd. Hier heb je gewerkt. En wat andere dingen. Kutting en misschien iets meer artiestes wat meer gebruikbaar is als plantstand. Er is veel andere dingen. De meeste van de dingen in mijn huis is nu later gekut in laser engraving. Ik begon 100 kilo's aan laser engraving. Dat was te veel van mijn vrienden. Dus dat is hoe ik Inkscape gebruik in spare-time. En nu voor research. Ah, ik heb er nog een beetje. Ik heb dit gewoon gemaakt voordat ik kom van de zijkant. Ik doe hem met mij. Als je wil kijken dan later. Er is hier. Oké, ik ben nu van hobby naar research. Ah. Het was zo'n plan te gaan dat ik vond dat er iets is called a gradient mesh in Inkscape. En ik dacht dat het interessant zou zijn als een part of my Ph.D. om dat te helpen. Niet in Inkscape met de modus, maar met de context van op. Kommergradients in vectorgraphy zoals je weet, de linier en de radial gradients. Dan is de gradient mesh waarin ik het meer of 20 jaar ingewikkeld heb geïnterviewd control, volgd op Quikly en Inkscape en in Inkscape. En dit belpepper is een van de komende exemplen om te expliceren de gradient mesh. Dat zal ik later doen. En doorgaan, dit belpepper is niet de gradient mesh. Het is nog steeds een veel linier color gradients op de top van elkaar. Dus de gradient mesh is een van de manieren om color gradients in vectorgraphy te doen. Dan, 10 jaar later, een alternatief waarschijnlijk de diffusion curves, die gaan wel van een verschillende manier zijn. Waarschijnlijk ook met de intersectionen van de metes. Dus beide metes zijn geweldig op curves. Dus hier, de diffusion curves ook, de color gradients. Ze zijn eigenlijk curve networks die je hebt zo'n colors te doen. Dus curves, wel, dat brengt ze naar bezet curves. Uit de kerositeit weet niet hoe een bezet curve werkt. Nou, eigenlijk zijn deze cubic bezet curves en wat je ziet is dat de zwarte punten worden interpellated op de witte punten en er zijn handels. En ze zullen de curve opzetten. Ik heb ze genoemd tangent handels omdat de curve tangent op de witte handels zoals je moet. Dus je kunt wel veel shapes doen met een single curve, maar natuurlijk als je iets wilt doen met meer series, dus je wilt dat connecten. Eigenlijk wil je dat connecten in een meer of meer of minder smooth way. Dus dat gebeurt als je een curve hebt, je wilt dat connecten met iets smooths naar de eerste. Je creëert of extend de handel aan de botten zodat het prolineert op dezelfde lijn met de andere. Je add random other points in handel aan dan de tweede curve dat is beveiligd is tangent continuous met de eerste of g1 continuous. En je kan extend deze curve in deze fashion met wat je wilt en wat je wilt. Dus dat is de geometrie. Dus remember de gradient mesh je hebt deze mesh met off-off curves. Dus eigenlijk alle deze curves zijn connecten of kunnen worden interpellated als die connecten van de curve. Dan wat is de color? Dus de color liet op de top van deze curves en eventueel ook in de interior van de mesh. Dus wat je kunt denken is dat je een separate red met een blauwe of zelfs een alpha channel is een hoogte op de top van je mesh. Dus als je op een van die curves en uiteindelijk de red color field voor dit moment je moet iets hebben als je een paar control points hebt en je deze colors aanbiedt in de red channel en nu wil je het interpelleren. Sommige een ding om te doen is gewoon een lineaire interpellatie en straks het is oké maar je kunt veel beter doen als je wat cubische interpellatie kunt doen en eigenlijk is het heel simpel naar wat Roth op vrijdag je hebt wat griezerfreedium hoe je interpellet is dus dit is een cubische interpellatie van de color dat betekent dat het either gaat hoe je het moet zeggen de red bio-increases in de monoclassie of decreases er zijn geen wiggles die er op en daarom te veel maar dit is nog niet zo mooi dus er zijn alternaties iets zoals dit en dat faciliteert je met popular interpellatie op je curves nu heb je alle curves je assembly je curve-network en dat is eigenlijk de begrijpstelling van de griezerfreedium iets anders dat je wilt denken is welke color space wil je interpelleren dat is eigenlijk SRGV maar zoals we horen een heel mooie volk van meestal van vijf vader er zijn veel color spaces dat het meer moeilijk is te werken voor nu is het op SRGV maar eventueel wil je een geweldige space dus om de griezerfreedium met de control points je hebt de color die je kunt opzetten en de handels je kunt het eigenlijk niet doen maar het wordt automatisch update dus dan heb je cel in je mesh de interpellatie van de color ook dat gebeurt automatisch based op die 12 punten van de boundary in een matematische term het is called transfinant interpolation en het leeft op een certain service specie dan om misschien te verhalen of te verhalen over linear versus cubic remember we had the line with linear color interpolation and the cubic color interpolation of we now apply this in the studio setting we have the same control mesh on the left and on the right on the left we get this linear interpolation which is nope, that's great I mean you get this kind of cross look that is not so nice to to the eye and the cubic is much nicer I'm actually banding the color on purpose here to see or deduce to continue to have the color so where you see kind of sharp transitions the color is well only linear time for an example if you now just combine lots of these mesh parts and you have a lot of time en talent you get something like this this was not made by me and even though the result on the right hand side is nice the left side is not that nice I would say can anyone see or say or tell me what is or what could be improved on the left hand side there are a couple of things ok, so on the left is only the geometry and then the colors are assigned to the point and then the rendering or the result is the right hand side one of the things that are not so nice about this mesh on the left is that you have a lot of density here you might locally need some detail here but the graded mesh it wants to keep this structured grid look so what happens is that if you have your graded mesh and you want to have some local details you click and you have an entire new line or column of points that is inserted you only want maybe two or three points locally but the points are inserted all the way through the mesh and that very quickly clasps up the mesh because if you want to tweak this now it's not here so that is something could be improved not global refinement but only local refinement also graded mesh is for that to work with them they are rectangular in nature you can deform it but still it is rectangular and a lot of shapes are simply not rectangular so rectangular is not the optimal shape for all of the objects to model so the first thing I worked on is that instead of this global refinement so that shape this line was not here before you want a point here and that results in all these points being inserted so instead of global refinement would be much more effective I mean it requires a bit of a more complicated data structure to work with but in the end you only get the points that you really want to work with then the topology so that means the connectivity of your mesh you want to ideally would like to have this more flexible so instead of just rectangular have some space to change this a bit and finally sharp transitions in color are not very easy in the traditional graded mesh basically to collapse an entire column or row of cells and that results in well, a sharp column transition but it's not a very elegant way to do it so I worked on these three things and I will demo this shortly so again this is not an inkscape all the improvements could be actually added to the inkscape not yet not yet that is the right way to say it again klink op press it again we have a very basic graded mesh and what we cannot do is we can refine it only locally so we get a point here which we can assign some random color to and here the line stops here it's only local so we can just have another point or do something like here right you only get points where they are needed so we get this then for connectivity or topology if you want you can extend some parts of the mesh for now this is very basic but you can extrude it a little bit play with this a bit and then also for the sharp color transitions I will take an actual example it would take too long to demo so here you also see local refinement you see some extension of the mesh en if you zoom in on the control points you see that some of them have multiple colors assigned to them which result in your sharp color transition so usually a very coarse mesh is just a few number of points you are getting more or less close to something that includes two words photorealistic one of the challenges with this was that local refinement introduces these t-sections in your mesh right and then if you want to disparage this or render it that complicates things a little bit because if you don't use this or don't render this in a pixel accurate way you basically rely on your triangles that might come from OpenGL or whatever other environment so if you take a look at the triangulation that is happening on my need you see that we have to do certain things to make sure that I left on the right side of your patch matches up with the triangulation what I mean by that is that here we have a big patch here we have two of them and they share a curve each patch individually has its own triangulation but of course here at the t-point the triangulation has to match up if it does not you will get cracks in your mesh would look something like can I show you this should be some cracks appearing now but ah, there was one and this is not what you want so crack free although there is no artifact here but ok so that is pretty much what I did with gradient meshes it's still based on bi-cubic patches, so cubic interpolation in both directions so this could be added to inscape at some point these are some more examples so these are first the meshes with the color points on them and then if you render them something like this and again if you look at the control net it's only a few points but it allows you to model things out look hopefully nice so gradient meshes there is still quite a bit of other resources that can be done one of my colleagues is working on noisy gradient meshes allows you to add local detail without having to add points I think one of these examples is you have a banana and you have these brownish black spots on the banana and you get added not through control points but has some kind of noise so some parallel noise or something like that which is then used in control other interesting directions are merging patches so if you took the example mesh from the actress there is a whole density here maybe you can reverse it and actually merge some of those patches that makes it easier to work with yeah, there is a whole list of other topics that could be worked on factorisation issues so that means the automatic generation from a roster in which to a gradient mesh so you just take a picture of something and you feed it to some smart program and it factorizes it into a gradient mesh but still all those methods used traditional gradient mesh and all those and finally it would be very nice to have this in SVG2 point x so if anyone who is affiliated with web processors listening or watching video later it would be very nice to keep working on this keep pushing this so that was the gradient mesh part the second part is on diffusion curves it will be very short because I only started working with this a couple of months ago it is a process much more artistic I would say because you start with the outline of your object you don't have to fiddle around with the mesh you start with your outlines you assign colors to your curves that can be different on both sides and then by some diffusion process the color diffuses to the interior of your mesh or of your object traditionally this is done by solving a partial differential equation partial model of diffusion there are a lot of different methods how you could approach that and lately this one has come up ray tracing which doesn't really solve this PDE but it uses a different approach that results in something that looks very much the same and the nice thing about ray tracing is that we can easily parallelize this on your GPU this is a super basic interface we have 4 bg curves here with some colors assigned to them we sample some points on each curve we use those points to have or to create a triangulation so there is a constraint to the long triangulation that you create this is this thing so we have some density close to the curves and elsewhere we have bigger triangles and for every point in a triangulation you should arrive in some rays you intersect the curves and you can move things around let me disable the triangulation you can move things around and intersect things and well if you have more curves in a more reasonable way you can hopefully see that it would also be a nice way to well create nicely looking factor images you might be aware that Adobe I think was last year introduced this free form gradient this is more or less based on this or maybe the other way around diffusion curves were introduced about 10 years ago originally it was that you assign color to the curves like this way later on people thought hey that's not very intuitive let's just use those curves as a boundary and then in the inside of those curves have colors or points that act as a color source so then the color assigns to those points and curves and it comes out from those sources and it feels short but the idea is still the same you have some curves in triangulation and you use ray tracing to get to the result so that is it for diffusion curves also there are a couple of things to work with it is used for factorization but not a lot at this moment is a very interesting topic and the thing that you have to use or some other software might make it a bit more difficult to incorporate it somehow in SPG because then probably also the software should be uniform when you can imagine if someone uses software A and software B result might be similar but not identical but that is not very desired so with that I would like to conclude thank you for your attention last presentation