Jump to content
You must now use your email address to sign in [click for more info] ×

How do I warp text in Affinity Designer?


Recommended Posts

9 hours ago, firstdefence said:

How many vector apps have vector Warp and or envelope features, Free or Paid barring Illustrator?

Serif’s very own DrawPlus has those, as well as a Perspective Tool and a Mesh Fill Tool. 

Alfred spacer.png
Affinity Designer/Photo/Publisher 2 for Windows • Windows 10 Home/Pro
Affinity Designer/Photo/Publisher 2 for iPad • iPadOS 17.4.1 (iPad 7th gen)

Link to comment
Share on other sites

1 hour ago, R C-R said:

How do you know how similar this existing functionality really is to what would be needed for vector (or text) warping?

I know, since I can see what AD already offers here in terms of vector node manipulations and transformations in 2D space. Further I worked and used in the past certain other graphics APIs which deal with vector graphics primitives too. So that I can assess what AD offers and already supports from the 2D vector domain.

Quote

Whatever it might be, it has to work with both single & multiple curve ("Curves") vector objects, & ideally with a mix of text, curves, & possibly raster objects (both image & pixel types). Warped text should remain editable, not converted to curves. Above all else, it should be bug free, something that even now after all this time cannot be said of several vector based operations in Affinity.

You are expecting a little too much here, others would be satisfied with just half of that. Also you should not mix raster and vector graphics here, otherwise everything will only be rasterized again in the end. Further for free form distortions, the needed transformations are usually performed on enhanced curve (node) representations of shape objects and text, meaning the shapes/text will usually have to be converted to curves first.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

1 hour ago, Alfred said:

Serif’s very own DrawPlus has those, as well as a Perspective Tool and a Mesh Fill Tool. 

Fine now we need that for AD too on a vector base!

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

3 hours ago, v_kyr said:

I know, since I can see what AD already offers here in terms of vector node manipulations and transformations in 2D space.

AD offers a severely limited number of 2D, vector node based manipulations. If you are seeing more than that please explain exactly where you see any that could be applied to warping text (like the title of the topic asks about) or to arbitrary shapes.

3 hours ago, v_kyr said:

You are expecting a little too much here, others would be satisfied with just half of that. 

Many users want at the least for warped text to remain editable.

All 3 1.10.8, & all 3 V2.4.1 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.8; Affinity Designer 1.108; & all 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

2 hours ago, R C-R said:

AD offers a severely limited number of 2D, vector node based manipulations.

That's pretty much enough and the base to do distortions! AD can move (transform)/add/delete/select single and multiple nodes, it can group a bunch of curves (nodes) and transform all of them or selected node parts, that's all you need here. The rest is matrix/array point coordinate, aka math based, point transformation to the dragged/distorted new coordinate position and redrawing/refreshing the whole.

Here is some simple SVG text as path and JS code sample, you can distort the enclosed paths dynamically via the set around blue circle handles. Give it a try and inspect the JS code too, see the comments on the specified JS code sections for move, update and point transfer of coordinates etc. It shows you the needed algorithm (maths) to distort the source to destination coordinate points here by the usage of corner handles.

2 hours ago, R C-R said:

Many users want at the least for warped text to remain editable.

For warped (aka envelope) text that's possible, since the whole text follows the envelope form/shape then (it's then like a bounding box bending where the inner path nodes follow the outer shape form). I've seen some vector implementations in vector graphics libraries which offer text to be kept editable then. Some of the previously named third party vector tools do use and offer this.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

2 hours ago, v_kyr said:

That's pretty much enough and the base to do distortions! AD can move (transform)/add/delete/select single and multiple nodes, it can group a bunch of curves (nodes) and transform all of them or selected node parts, that's all you need here.

From what I can tell, everything Affinity can currently do to single and multiple nodes is done uniformly (linearly, if you prefer), which is not enough for all but maybe the simplest warps. 

2 hours ago, v_kyr said:

Here is some simple SVG text as path and JS code sample...

I don't understand. What does that have to do with Affinity's code base? Are you suggesting that 'under the hood' it is based on SVG and/or JS code?

All 3 1.10.8, & all 3 V2.4.1 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.8; Affinity Designer 1.108; & all 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

3 hours ago, R C-R said:

I don't understand. What does that have to do with Affinity's code base? Are you suggesting that 'under the hood' it is based on SVG and/or JS code?

I believe the example is to show that implementation specifics don't really matter (Affinity/svg/whichever), it all comes down to Vector math and matrices. No one is reinventing the basis for these manipulations, they are all well established mathematical principles. Regardless of the data/code a 'skew' matrix is always a skew matrix and so on. Serif know the formulas, they don't change just because they have a new file format.

Link to comment
Share on other sites

6 hours ago, R C-R said:

I don't understand. What does that have to do with Affinity's code base? Are you suggesting that 'under the hood' it is based on SVG and/or JS code?

That SVG/JS is just one quick implementation SAMPLE, done in SVG/JS here since it can be then easily demonstrated for tryouts on the fly without much effort. This SAMPLE shows what is needed in code/math and how it's be done for some plain vector distortion. It can be programmed of course in any programming language and your so called "Affinity C++ graphics code base" already has everything needed for that. - If you can't see, abstract and understand that, I suggest you educate yourself a little bit (just for fun if time permits) with some basic programming concepts. Take some easy to follow programming language and environment (maybe Swift Playgrounds, or a Python interpreter etc.), beside the choosen programming language read some books/tutorials about graphics programming and algorithms. Tryout some of graphics drawing programming stuff, so that you get some deeper understanding of how these things generally work and are done in programming. 

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

3 hours ago, BofG said:

I believe the example is to show that implementation specifics don't really matter (Affinity/svg/whichever), it all comes down to Vector math and matrices. No one is reinventing the basis for these manipulations, they are all well established mathematical principles. Regardless of the data/code a 'skew' matrix is always a skew matrix and so on. Serif know the formulas, they don't change just because they have a new file format.

Yes, that's basically the point and the overall quintessence here!!!

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

23 hours ago, v_kyr said:

VectorStyler has a very large repertoire of these 

I just tried the latest "release candidate" again, among others playing with the distortion effects which can be applied on live artistic text.

Oh man, so many nifty tools to choose from!
So many options!
Where to start?
Nurse! My brain hurts!

And then, how do I edit the original text after I have distorted it? I can see a cursor but it's totally elsewhere, in the voids outside the text.
No idea, haven't found out yet.

The tools are there, but the UX is a p.i.t.a.
At least on El Capitan with 2.6 GHz Intel Core i7 inside. Perhaps it runs great on Silicon Macs and Big Sur? I can't tell.

Still, it's usable as an "intermediate tool":

  1. copy artistic text from ADe & paste into VectorStyler (be aware when pasting: if you copied the text object, you'll lose whitespaces; if you copied as text selection, you'll lose font formatting…)
  2. if you need to adjust the text to a shape, make sure to copy the shape as well
  3. distort
  4. copy & paste from VectorStyler to ADe, the result being curves that can be grouped, merged, colored etc.

That's VectorStyler a.k.a. Affinity Vector Distortion Persona for the time being. :D

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

16 minutes ago, loukash said:

At least on El Capitan with 2.6 GHz Intel Core i7 inside.

That one doesn't run on my old CPU hardware under El Capitan. Thus I tried and looked at it only shortly once (some time ago) under a Macbook Pro with Mojave. AFAI remember it offered and had implemented a bunch of different distortion methods.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

5 minutes ago, v_kyr said:

That one doesn't run on my old CPU hardware under El Capitan.

Haven't tried on my 2008 MacBook Pro yet.

This one is a 2012 MBP.
I can literally feel its limits when applying heavy pixel stuff like live perspective filter in APh.

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

12 minutes ago, Lagarto said:

Affinity Boolean operations (leaving hundreds of residual nodes after division, and failing to add objects that have common bordering line after such an operation)

Yep, that's the one which is rendering boolean operations almost unusable.

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

5 hours ago, v_kyr said:

This SAMPLE shows what is needed in code/math and how it's be done for some plain vector distortion. It can be programmed of course in any programming language and your so called "Affinity C++ graphics code base" already has everything needed for that.

What makes you think the Affinity apps use a conventional C++ code base?

All 3 1.10.8, & all 3 V2.4.1 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.8; Affinity Designer 1.108; & all 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

5 minutes ago, Murfee said:

Maybe this

OK, but does that mean as @v_kyr claims that Affinity "already has everything needed" to implement text and/or vector warping?

I am really struggling to understand the connection between what could be coded into Affinity (whatever the programming language & mathematical models used) & what actually has been built into it. After all, there are still significant issues with how the existing code handles certain seemingly straightforward vector based operations. That tells me that no, not everything needed is already there, that in fact a lot of work remains before it will be.

All 3 1.10.8, & all 3 V2.4.1 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.8; Affinity Designer 1.108; & all 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

3 hours ago, R C-R said:

What makes you think the Affinity apps use a conventional C++ code base?

First of all I don't think, instead I know, next it's obvious that you have absolutely no clue about programming (and therefor no knowledge about compilers, libraries, linkers, debuggers and exe formats etc.) otherwise you won't ask such limited questions. Though the most funny or sad part here is always, that you don't believe if somebody who is a long time senior software engineer and developer tells you some insights about certain things here, then you always question everything and do insist on your limited knowledge of things you heard. - But if an Affinity representative told you about it instead, you would take it for granted right away and stop fiddling with it.

However, even I get always tired and listless with the fruitless and endless discussions with you and just in order to give you a short idea so you can prove it yourself here. Ever heard that you can inspect executable files and libraries etc. That you can tell with what compiler and language a specific software has been build and compiled against, that you can analyze a software also that way, that you can determine what functions certain libraries do contain and how the execution call hierachy is at specific application states ... and so on... ? - You can also look into by people supplied dump and log files here (execution backtraces) to determine what libraries and calls have been performed. Or throw the whole into some good rev eng debugger and inspect whatever you are interested in.

But hey, as always don't take my words for it, ask an Affinity employee maybe they are in the mood to tell you.

For the other theme parts about already available graphics primitives for implementing distortions etc. as I said before read some book about graphics programming or look at some introduction materials about vector graphics ( a pretty simple intro here, see the last part about non affine transformations).

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

@v_kyr, first please understand that I was just asking how you know the Affinity apps are based on C++. I wasn't challenging your expertise or making any assumptions about that, in part because it has literally been close to 50 years since I did any serious programming & I don't have much interest in doing any more of that this late in my life.

That said, I still wonder what exactly you mean about everything needed already being there in the code. There still seems to be quite a few unresolved long standing problems in the implementation of several features in Affinity, including several related to vector geometry. There are still almost no real vector brushes, no true circles, & only a few simple vector transforms. Call me crazy or just poorly informed but it certainly seems like something is missing, & I do not think it takes a senior engineer to see that.

All 3 1.10.8, & all 3 V2.4.1 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.8; Affinity Designer 1.108; & all 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

58 minutes ago, R C-R said:

That said, I still wonder what exactly you mean about everything needed already being there in the code.

I try one last time to explain, then I give up here and let someone else explain it to you!

Affinity already has and supports a rich set of vector graphics primitives, which do build the base for other common vector objects they support (for example various shapes etc.). Their library also offers all needed methods/functions for performing affine (scale, rotate, reflect, shear and translate) transformations of vector objects (and combined objects aka groups of vector objects). It also supports less structured alteration to paths, by moving their anchor- and control points (so anchor points can be moved and direction lines be modified). For vector distortions one has to modify the anchor- and control points of paths, either by interactive moving them around, or by applying them to some related given form (envelope). Some distortion operations might add additional anchor points here then. And so on ...

Thus Affinity has and offers all the needed base graphics related functions/operations here in their libraries, they just need to define and implement some of the common distortion types with those, which in turn is algorithmic math. Or in short, distortions are non affine transformations of vector points (via mathematical equations) in a given coordinate 2D space.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

The frontend part (GUI integration, interaction & usability) will be mostly depend on the specific supported distortion type then, if free form, or warp/envelope etc. They have frontend devs, also since nowadays most developers are skilled in both (frontend & backend development) and thus that shouldn't be usually a theme here. They also have the knowledge about all that, since they offered such things long time ago in their corresponding legacy windows app and are overall pretty long time in that graphics business. - So the overall problem will be more to put some time and resources on these feature implementations, when everyone was and currently is busy with other things.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

9 hours ago, Lagarto said:

I would say that something is still missing, though.

Only the developers really could tell us what if anything is missing that is preventing them from implementing vector distortions, true vector brushes, & everything else people keep mentioning that have been in other apps for years.

All 3 1.10.8, & all 3 V2.4.1 Mac apps; 2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.8; Affinity Designer 1.108; & all 3 V2 apps for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

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.
Note: Your post will require moderator approval before it will be visible.

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.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.