You are not logged in.
Pages: 1
I'm troubled. Perhaps there's something I'm missing.
Pixelated .pngs are just that, pixelated. When pixelated .pngs are then shoved through a pixelated LCD or projector, those pixels are never going to exactly match up. But an .svg, being clean, perfect lines, when shoved through an LCD is going to be much, much better. I know there's no antialiasing with .svg but at tiny, tiny layer heights, that doesn't matter much.
Why do we not use .svg?
Offline
I guess (Shahin will know better) because what you are going to project to resin is an array of pixels (your projector resolution). So generating PNGs with the exact resolution of your projector should ensure projector pixels will match the slice image pixels. This enables to exploit at maximum your theoretical resolution.
If image resolution is readapted at the projection time, you will never know if pixel correspondence would be correct.
Offline
I see that .png files have the exact pixel depth as the LCD. But pixels in LCD and pixels in .png would never, ever match up exactly.
Even more so as they are different shapes.
Offline
Not sure if all I am going to say applies to LCD technology, as all I have read is about DLP, but in theory should.
With DLP you just have an array of pixels (micromirrors) , so projected matrix of pixels should match in theory.
What can be happening is that your pixels have diamond-orientation (45º inclination relative to the matrix frame). I think this is more common on general purpose screen/projectors, as they can give a visual perception of better resolution.
In this case the projector usually remaps the input image to your screen (Great simple explaination in this video). This give the kind of aliasing you are seeing.
Some projector have a "pattern mode", so you can directly control each pixel value even if diamond-oriented. Anyway I am not sure changing input image could solve the problem.Not at a physical level at least, you will always have a remapping of your HDMI video output to the real screen matrix.
PS: I take the chance to ask, in case Shahin will answer the post: does NanoDLP make use of grayscale to obtain sub-pixel resolution? Would it be possible to add this option to the slicer or use an external slicer and upload it as a plate? I mean something like this.
Offline
I believe anti-aliasing does what you ask in that Autodesk Ember video. Does it not?
Thank you, Rob. The Ember video and links from this Instructable has given me much to read. I should go quiet for a few weeks while I digest it all.
Thinking aloud. I use a 2k, 1440 x 2560pixel 5.5" screen, a pixel density of 534.038 ppi. I wonder if, and I'll have to test it, if I double the apparent resolution of my .png files, if I would get sharper models? Though, I may just get models that are twice the size.
Offline
Rob,
As Steve mentioned it is same as AA. Or atleast result should be very close.
Any vector (SVG/STL etc) graphics will get converted to raster format before could be displayed on GPU.
However the way raster get converted to raster format could affect image/print quality.
Offline
Rob,
As Steve mentioned it is same as AA. Or atleast result should be very close.
Any vector (SVG/STL etc) graphics will get converted to raster format before could be displayed on GPU.
However the way raster get converted to raster format could effect image/print quality.
Yes, I get the point but I would like to be sure about how NanoDLP works. I will explain how I understood it, correct me if I got any part even slightly wrong.
You push STL to NanoDLP and slicer generates the Plate (a stack of images, -PNG I guess-). All images in the stack would have the same resolution of the projector setting (let's say 1920x1080).
In that case, when using a projector with straight-oriented pixels (non-diamond oriented) PNG pixels will coincide with projector ones.
So I ask, do generated image only have black and white pixels or are there different grayscale values to achieve subpixel resolution? Something like in this example:
If images are only B/W, could the same effect be obtained by increasing resolution of projected image (so GPU will anti-alias border pixels making them different grayscale value)?
Offline
Rob, yes there are always grey pixels on a sliced png from NanoDLP. Here is the top slice from the 3dSLA_Test, the model that is giving me this angst. The top is with anti-aliasing on, bottom off. The dots are vertical cylinders, but still, there are solid pixels and grey pixels. Even in the walls of this model, there are halftones in the AA version, which result in my model looking a little soft, out of focus.
Shahlin, my point with svg is that these would be perfect circles, perfectly straight lines. Then, it would be up to the LCD's GPU to decide the best way to pixelate those circles. "Best in, best out."
Currently, NanoDLP decides first, then the LCD does it again. "Rubbish in, rubbish out."
Here is the same top slice, but at double the resolution. "Better rubbish in, better rubbish out."
I've not yet been able to print my theory of doubling the screen resolution in NanoDLP's set up page, along with a similar 'cheat' in the profile's 'R D Override X/Y Resolution.' I think my troubling dots/tiny cylinders would come out better, they look better in the above slice, this surely would allay my woes. Though I'm sure there will be a gotcha somewhere, otherwise, you would have designed NanoDLP to do it this way: 'better rubbish in, better rubbish out.'
Again, I understand that the LCD's GPU cannot understand the depth of the model, cannot add anti-aliasing in the right places - that's the slicers job. But, at very, tiny, tiny layer heights anti-aliasing loses its wonders.
Offline
Rob, yes there are always grey pixels on a sliced png from NanoDLP. Here is the top slice from the 3dSLA_Test, the model that is giving me this angst. The top is with anti-aliasing on, bottom off. The dots are vertical cylinders, but still, there are solid pixels and grey pixels. Even in the walls of this model, there are halftones in the AA version, which result in my model looking a little soft, out of focus.
You are right, sorry for the big mistake. I can only access the printer when at lab, but usually I find time to post here when not there. I should have double checked but I never downloaded the plate images. So I was relying on visual memories, and without being able to zoom the image enough from the UI. Thanks for the clarification.
I've not yet been able to print my theory of doubling the screen resolution in NanoDLP's set up page, along with a similar 'cheat' in the profile's 'R D Override X/Y Resolution.' I think my troubling dots/tiny cylinders would come out better, they look better in the above slice, this surely would allay my woes. Though I'm sure there will be a gotcha somewhere, otherwise, you would have designed NanoDLP to do it this way: 'better rubbish in, better rubbish out.'
In theory, doubling resolution might help only with diamond oriented pixels. In practice, by the way, I guess it should not work. I try to explain why, please correct me if I am wrong.
HDMI port will be set at a given resolution, your display maximum. So, even if projecting a bigger image, NanoDLP outputs it to HDMI; this means it goes through Raspberry Pi GPU which will adapt it to HDMI resolution, making a first anti-aliasing. I guess there is no way to send a double resolution image to your LCD without being first rasterized to its maximum resolution.
Last edited by rob (2017-11-24 11:44:58)
Offline
HDMI port will be set at a given resolution, your display maximum. So, even if projecting a bigger image, NanoDLP outputs it to HDMI; this means it goes through Raspberry Pi GPU which will adapt it to HDMI resolution, making the first anti-aliasing. I guess there is no way to send a double resolution image to your LCD without being first rasterized to its maximum resolution.
Wha? Oh no! You're saying my 'correct sized' 2k, 1440 x 2560pixel 5.5" screen, a pixel density of 534.038 ppi slice - the one that currently is made by NanoDLP - gets mashed through the Raspberry Pi GPU, and then is re-mashed through the LCD's GPU?
'Rubbish in, rubbish mashed, worse rubbish out.' Three levels of pixelisation. Hell's bells, no wonder I'm having trouble getting those tiny cylinders to print. Humph! I thought there would be a gotcha somewhere. Thanks, Rob ;-)
But surely, HDMI can take 4k, why would it crush my double sized slice? Wouldn't that be up to the end user - the LCD's GPU? Is there no hope? Can I not lie to the Pi's GPU, tell it to send 4k, and let the LCD's GPU to sort it out? Sigh, I'm out of my depth here, telling lies to a computer is not my area of expertise. Honest Steve, they call me. ;-)
Last edited by Stevehoo (2017-11-24 12:22:04)
Offline
But surely, HDMI can take 4k, why would it crush my double sized slice? Wouldn't that be up to the end user - the LCD's GPU? Is there no hope? Can I not lie to the Pi's GPU, tell it to send 4k, and let the LCD's GPU to sort it out? Sigh, I'm out of my depth here, telling lies to a computer is not my area of expertise.
HDMI can support up to 4K, but the limitation depends on what you plug in (i.e your screen). When HDMI sets up upon connection, it asks the external device which operating modes (aka resolution+freq+other setting combination) it supports, then choose the best option. On RPi you can manually override it, but always choosing between the available ones (or port will not sync and you will have no valid signal). So, AFAIK, there is no way you can output to a screen with a higher resolution than its maximum supported.
You can check all combination supported by your screen issuing the commands:
tvservice -m DMT
tvservice -m CEA
and current selected mode with
tvservice -s
(CEA and DMT are two different standards. For projectors I would recommend DMT as black level is represented as 0 while in CEA is 16, which might lead to background ilumination on black areas.)
Offline
Thank you, Rob. Though bearer of the bad news - that I cannot lie and cheat to get 4k through to my 2k screen, you've been a great help.
pi@nanodlp:~ $ tvservice -s
state 0x120006 [DVI DMT (87) RGB full unknown AR], 1440x2560 @ 50.00Hz, progressive
All is well with my RPi, at least, it thinks so.
Offline
Pages: 1