-
Notifications
You must be signed in to change notification settings - Fork 345
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(Bug): [Transform] Pixelization of primitives (ex: Rectangle, Radial, Text) #970
Comments
It's up to each OFX plugin to support concatenate transform. |
Does that mean it should be reported to the individual OpenFx-Misc repos? I'm new to the project. For example, the Rectangle issue should change this file, right? And the same for Radial and Text, I presume. |
We can move this issue to openfx-misc if needed. It's been years since I looked at concatenate transform, so I don't know what supports it or not.
Correct. I will not support it in I have been working on a new and improved ofx text plugin that could support it, but that plugin is not part of Natron (it's a generic plugin) or done yet. |
Not an issue. |
It is an issue. Of course the examples I made were exaggerated to highlight the issue properly. But imagine you have a primitive and you scale it with a transform to 1.4x. It will look pixelated. That's how I discovered the issue. The only solution would be always overscale the primitives and then never transform scale to be bigger than one. This is clearly an undesired behavior, unless otherwise specified (like with a 'pixelate' option, for example, but not by default).
That's the point, it should know what's downstream and only rasterize the result after applying all transformations. it should know what's going downstream and evaluate rasterizations only at the end of the pipeline, to avoid getting double or triple pixelation. This gets even worse if, for example, you keyframe an animation to shrink in a transform node and then use another transform node to make your components bigger down the graph. It will ruin your resolution. Marking this as not an issue would render Natron as a weak option for motion graphics, that use these kinds of transforms a lot, and only render it useful for compositing. |
A simple example that shows why this can become an issue really easily: Screencast.from.10-06-2024.18.55.39.webm |
Yeah, I misunderstood the question, I though we where talking about concatenation. Output from the OFX plugin is raster, you can't to anything about that, you can scale up the source nodes and scale them down and them work on them, but it's not a good workflow.
Natron is not for motion graphics, it's a compositing application. |
One feature you could ask for (and @rodlie is the right person to ask) is having the capability to apply a transform inside the ReadSVG node. That way, you could transform the SVG before rasterizing it, rather than after. |
Then we should remove "Open Source Compositing Software For VFX and Motion Graphics" from the website. |
While that's certainly an improvement (and a big one), we would still have an issue with grouped elements, for example. Maybe apply the merge after the transforms in some way? (Like transform each input of a merge node individually and then combine them later?) |
Added a new class for common cairo functions. * #25 * NatronGitHub/Natron#970
Will add transform support in ReadSVG (NatronGitHub/openfx-arena#25).
Maybe, but it can be used for motion graphics, it's just not designed for it (so you have some limitations). You probably want something more similar to AE etc (https://github.com/friction2d/friction/releases/tag/v0.9.6-rc2). |
Add transform support (WIP) * #25 * NatronGitHub/Natron#970
Transforms seems to work ... Only tested on Ubuntu with the Natron logo. * #25 * NatronGitHub/Natron#970
Make sure to follow our issue report guidelines
Natron version
Natron 2.5.0
Operating system
PopOS 22.04 LTS
System specs
CPU: Intel Core i5 4460
GPU: NVIDIA Geforce GTX 750 TI
RAM: 8GB DDR3
Did you install Natron using the official installer?
Custom installation path
No response
What were you trying to do?
Currently, when inputting primitives (such as Rectangle, Radial and Text) into a Transform node with scale > 1, the inputs get pixelated, as though they were rendered before getting into the Transform. Ideally, such primitives should be position and scaled before rendering takes place. This could help with getting #264 to be better supported in the future, even if not the primary goal of this issue.
What did you expect to happen? What happened instead?
What should happen: transform of position and scale should take precedent on rendering.
What happens: transform of position and scale happen after node rendering resolution, which locks them to their previous resolution and can generate pixelation.
Rectangle (with corner radius):
![Rectangle with corner radius when scaled by transform node, gets blurred out and pixelated.](https://private-user-images.githubusercontent.com/32345702/337746882-d750590b-0015-4747-aeb1-d6176c4c48e4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NDAxNTUsIm5iZiI6MTczOTUzOTg1NSwicGF0aCI6Ii8zMjM0NTcwMi8zMzc3NDY4ODItZDc1MDU5MGItMDAxNS00NzQ3LWFlYjEtZDYxNzZjNGM0OGU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDEzMzA1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY5MTNjOWQ0MjIyNjIwYmE4MmE1ZDg0N2ZjNDlhYWY1NTY4OWM1ODE2MTAxYmExYzFiODM3ZDM3NGZjM2M1NzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.vZ5Z54-U33fq4MaMBXu2AKw1hAfcQFvNgA3AaQS_0Vg)
Radial:
![Radial when scaled by transform node, gets blurred out and pixelated.](https://private-user-images.githubusercontent.com/32345702/337746350-cf84040c-e569-41c7-9b7c-92ce73bb6e65.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NDAxNTUsIm5iZiI6MTczOTUzOTg1NSwicGF0aCI6Ii8zMjM0NTcwMi8zMzc3NDYzNTAtY2Y4NDA0MGMtZTU2OS00MWM3LTliN2MtOTJjZTczYmI2ZTY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDEzMzA1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU4ZDkyNzcwZjNlNDc2ZWQ1NzE5NDE3NTgwMDUyMTMwZDQ0YmE1Y2Q3ZjY3NzdkMWI2MGFmZjE5ODg0YmExZTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5jslPTmFvsL3bzxjLvA8UnawLzWIKMy55PljXfDadBU)
Text:
![Text when scaled by transform node, gets blurred out and pixelated.](https://private-user-images.githubusercontent.com/32345702/337745957-023955c9-f1be-46b9-9b97-408f1c3cfb85.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NDAxNTUsIm5iZiI6MTczOTUzOTg1NSwicGF0aCI6Ii8zMjM0NTcwMi8zMzc3NDU5NTctMDIzOTU1YzktZjFiZS00NmI5LTliOTctNDA4ZjFjM2NmYjg1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDEzMzA1NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJjYzNhYTRiOWMwZWI2YTM1NDNhYTE5OTIyZjUyY2Q4Mzk5NGQ0MDYyZjkzYWNiYmJlNjc4ZjI1MDRiMGFhYmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SdM0XpJtxpsMNF-QQXh2IB0u9-3ybYxcFk0yKep-qbA)
Step-by-step reproduction instructions
Additional details
Thanks and best regards.
The text was updated successfully, but these errors were encountered: