Just want to make sure, if all the experts agree that jitter exportImage sucks.
It is a bit mysterious that there are a few threads where people ask about exporting images and pixelation and those threads have no replies.
It would be great to settle it all here so that others don't have to spend hours trying to find a way of exporting high def images to find out that they can't without external hardware.
As you can tell I am a bit sad since I thought jitter could do better image exports than the ones I am getting
Iam going from jit.gl.asyncread foo @layer 1000 to jit.matrix 4 char 11800 8850 @interp 1 and even though it takes me a couple of minutes to save it, the quality still sucks.
the fsaa 1 option does not work.
I haven't been able to find any other workflow,
if you do know of one, please enlighten me
Is there anything I can DO?
That a pretty small graphic you posted – yet you have a huge jit.marix? How big is the source ‘foo’?
High Def images need high def import – 640 480 will not scale up to 11800 8850 very well at all . . .
Really not sure what you are trying to achieve? Readback to a matrix or export an image . . .
Really need a lot more info here – maybe extract of patch
yeah its a small graphic because its just a very small portion of the actual image 11800 8850. In other words, THis is a portion of the Actual Pixel of the 11800 8850 image.
even if I where to zoom out 50% that pixelated portion would still be visible. You can try this by downloading the image and zooming out.
I am not importing anything. it is all OpenGL graphics.
that is why I am capturing to matrix
here is an example of the patch,( might make some computers very slow)
----------begin_max5_patcher---------- 735.3ocyWtsiaBCDF9ZxSgEpWlFgALG5UaeNpVsxA7R7JvFANMIc09tWyXHa RafklhX4h.xmhm4yy+3gWWYYuUdjUai9F5GHKqWWYYAc0zgUaaK6B5wjbZML M6W3pMkG3hT4A60lwE6K3hblBl.98Nk6Uc8511qoK0oRlYOssWq+gdrc3xJV MSnnJtT7TEKQYlUryFm0sOifmA5muuJpJYGWjcwJBBIMSyyMr4EwwCZQvWrJ dJ3Oxsu7URrcSeusZUyi0ijDEr5ZZFqiBJ1QXys4BEqJmQ+IK8lDpiEOKEJA s.Hg82q3zb6axNbur6ruz7WUy+EL.FugDSvQgCPm.bCOv9.VB.FgitMa7wSI apKy4pkJULAKsTwycCY.pDbOTQvNnW7eAEcTeISjhJjorA0Te9QLAwfFDDWt N8vl6RMojYY4r+gTJ85jZ8m8P4Fh7gTHtdm8h98Eh2DdNmQULDFgWnw+cbg. mwD2A4h+x9LNj3Cwqdti3LNbJyvQ2qjE5KvRPeYodP2AmfnlWgCl9eJi+aJc HKeCs9jHohQSQOKknGxomXUHriiyjj6q2JMz69S5ClJ9wqq43NgWLnRvgACl J7dn218JkTLEpjsTQ1fxDeLjV2EG8wxj.moTlvNVJqT7B8XnWJYYeJRkljC8 yFi7.S.pfMkP1mLw8tzIeF0RiIFuxbT6b1EGLLw2TMc6ED2ZUWvBbzDmyvnZ Q9njcTclBbjiCJJh3fd.J0trmaTm2LGCGK4aDXsENg8FRncUA2vDry4h+7qz fcoo+qYZsbeURmgaRfuF891jxpUbADSbwb7uZN63ooLX3NOpfmVJ0rt0DPOd yy2wZQ9ivhHMSBOdSJLvqobcWWHcbTj64V+uFa7zyufPG3aKhAiMz2bSxMaY bKn0LPc7rFGnuPYoYR5RA+XSxadMoQIWhmWaxarR3YLqRvXDpyKm7wKOax0a wo5FCkzEUb+ljtwaq9MuV6bN -----------end_max5_patcher-----------
to tell you the truth I don’t think it is even possible to get good quality since, we can only export 72 dpi from jitter.
jit.gl.asyncread’s output matrix is as a large as the render destination’s size, i.e. a jit.window. So it would make sense that connecting to a larger jit.matrix with @interp 1 would not give you the results you want. You need to make the jit.window larger, or use an image editing program like Photoshop or other special purpose plugins to do enlargements after export.
I do agree, however, that it would be nice to be able to set the dpi of the exportimage from jit.matrix to values higher than 72.
thanks for both replies Jesse. So if I get an external 30" monitor and capture from that, it would give me the best jitter results without getting a 500 capturing hardware. Up till now this seems the best solution
I think you need to do some research on dpi vs ppi. they are very different things
Your 11800 x 8850 image is over 100megapixels = roughly 40 x 30 inches @300ppi 160/120 at 72ppi
Screen metrics are a funny thing and 72dpi gets thrown around willynilly without regard to screen size or resolution. ! 512 pixel image is half of a 1024 pixel screen whether on a 17 or 27 inch monitor.
Your image is actually ignorant of dpi resolution – you can manipulate that in many ways post facto.
Your patch did not include foo, which defines the size of image that asyncread reads from as Jesse noted
It would want to be close to eventual size to avoid the artifacts you are seeing
What are you trying to achieve through all this? Output to a massive video wall? Large poster prints?
Edit: I don’t think the exportimage function sucks; it is simply misunderstood . . .
Yes, Macciza is right — render destinations (i.e. jit.window) can be any size, irrespective of the monitor size or its native pixel resolution. It’s easy to understand why you’d confuse these because typically you’d make a jit.window the same size as your monitor, or go fullscreen.
Jitter is ultimately very flexible in these cases – you can render therefore at arbitrary resolutions, but if you go as high as 11800 x 8850 your real-time frame rate will suffer. You may need to explore non-realtime rendering for this purpose.
Macciza thanks for the help. Iam sure the exportimage function is not that bad, nevertheless I am still getting better results capturing from my 1920 by 1080 screen with the fsaa on and zooming in , than turning fsa off and exporting an image using jit.matrix 4 char 7680 by 4320 with the foo also at 7680 by 4320, and seeing it actual pixels
It is for large prints, maybe I am still not getting what you are saying, am example patch would help.
cool Jesse, thanks for the help. Ill keep on exploring. I am already getting better results than I got when I started,
First – do a google search of ‘dpi vs ppi’ and read a bunch of the results . . .
Second – forget 72 dpi, it’s a misunderstood myth relating back to early Macs and typesetting standards
Third – research pixels, pixel aspect ratios, square vs rectangular etc
Confused still, probably, . . .????
As stated above Your 11800 x 8850 image is over 100megapixels = roughly 40 x 30 inches @300ppi – 60in@200dpi, 118in a@100dpi etc . . .
What size poster do you want to print?
What software are you using for viewing/ post-processing your image?
If you are rendering at 1920×1080 and you are reading back to a cpu side matrix/ "image" that is 7680×4320 you are *going* to get resizing artifacts. You are not rendering at your destination size, rather you are rendering at 1920×1080 and *resampling* up to some other size. Its like doing a resize in photoshop with linear or bi-linear filtering (thats probably what Jitter would do via @interp 1), and if you are not doing @interp 1, you are doing nearest neighbor which will give you jaggies up the wazoo.
You realistically have 2 options:
Continue using hardware OpenGL (ie, your graphics card) and render tiles (google will help you on how to set up tiled rendering for OpenGL), and then you export each tile and put them together post-process in say, Photoshop or image magic, etc. Basically you just render a portion of you scene, output an image, render another portion, output an image, etc.
Or use software OpenGL by rendering to a matrix, which is slower, but can support insanely large destination contexts, and do it all in one go.
Also, as others have said, DPI has nothing at all to do with it. A specific video frame/resolution has a constant number of pixels irrespective of the size of the output device (ie, screen). A 1920×1080 frame of video is the same frame, the same pixels, the same exact image on a 5" HD TV and a 60" HDTV. Its just that the TV is bigger, and thus the pixels….
Macizza- I want to print the biggest I can without jagged lines, but I guess I could settle with more or less 22" by 10", Iam usign – photoshop, photozoom(for upscaling)
Vade- thanks for the reply it was very helpful, and let me also thank you for all the open software you have developed (like syphon amongst others)
tile rendering seems very interesting indeed, since image capturing(command shift 4 ) a portion of 3071 x 1728 a at 1920 X 1080(size of my screen) seems higher resolution than exporting a whole image 3071 X 1728 and looking at 1920 x 1080 of the exported image.
the other solution would be like you said to export at higher rates but as soon as I try 7680 by 4320 if I am lucky and get something in the jit.window I get some weird very big bars across the screen (probably indicating that the nividia geoforce duo cannot support that export size) the bars are like a glitch thing.
but then again I might be doing something wrong.
----------begin_max5_patcher---------- 1541.3oc0ZsrjhaCEcM8WgJprj3RukbV0YU1j+fTS0kADztGiMwVLMSlZ92i dfogN1FaiwP5tJ.IC3y8ny8gthe7zjoyy1qJlB9MveAlL4GOMYhaJ6DSNLdx zMQ6WjDU3daS2nJJhVqlNyeMsZu1MeQ7+n.BtDBnDLr7xo61jsSmnztOL5vr aizKdMNc8K4pEZ+MmIoAvY.DEZeRfcCXAPvWN7YhW5tMYye6WEke6qxR0oQa Ttq764wQIkWweS0eeqx+0Oc5wuH6GxBV6EBM2li.MNsDmX6b+7omrOLaH3EB Tf.HAV1CdA4nBg6oPOuHqlWPH4fwLH7vQM5r0qSTc1zodSmJrOxokOVkkSp0 5hS0eXfmYInAbQdUQTD3WPc2DC8qtXmMR4tA7ZrQTkKt+4tEwKi.+QdT5RUW WjgC2h7pjLy2Q0L.tdF.6v..4U1L2.LoZF.SY8Pea.Vjd5Lvz4QoqqgGnUyC CoDQkGUndYQVRVN.59uG5ETHwQPXeb.hzMBUGcwGtvAzgSojpd2.u+afRvx7 n2qlRJu2yW6HPOTgARLggCmYdESBIgX6qjHjfyLjyIjRELYnLPJwBo4yfMod XXpPV5AhgUSnsfNaSHTz3EB0HABjLNCxMDhYMTh4RJw5t4c5pQ3vGovo0oDT I.rnygRPRh0XoBt20nzXozlVTw8oZBWnjYiQtyZy3rKIoXQtRk1m3HmoKnni TkT1T8E3GyxKpQE8VrN383zkYuCVkkAddoZq9046VsRkCPfm+VbQ77DE.0cc Fm8A4wCORdXeV7ZEZgilPa.8E+p56USPzV5HdRTGVX.qd9g.6A+XiGMqpm5D eA6CesaybUdyhmOmtha9SLqxWcgzUHrKwOxTbngBIMJzH3RT8pcY7bHHfLob Vku5THz8kfFpt5CVWmGWrHJwMMLH7NmcTHNgSaNkHgbeSI92aT57LvGvnqFI EaMRSjqlDNz9Fg5dEiWCla92UZc0DC4hDSnmXZ1ihcEgtKe1ix6Ubba1v0IA 4JytDysID6bZOOegYj.AhFBstLvFqrhvenS3U6F01uMKWGuwbMvaaUq6rGGW 3Bkf4981CIMVSE4grlJqbYqu5oNKT39V4wfNZfv86omViJAwp2LOSGrMWUnR 0Q53rzSkkdZlII0d2tZohkMVssX8t3tSFgGZsiCdRnGj0nE5iT3dVbnkW1DY RpuG77tBUQ9hkwarEW6eUgNJWCf1FeJJmyD+w2MTXOzUttdPItEbBMrwpsQ8 fLM1yKd6oAZEEvBYHoXD1DbsrTCo0X9NnS7sHp4FZfnCPdsQhlluSqyR6d+y 8Gk.16+ggMpYXsrJma1ZNXdy8+pJuBJ6z.eMtdy5XCrF50vdVmtAD91BKu7Z n79VmtufzKTTJ6xlpuQLxFKWGQF.u2tTk5HE46vdcv8Vm3OqHVyg9F1s5zD0 fuIIb+lo7USJBJXwqQ41Tp3FNfwVjUEx7koRZj0j+OOq5gsAU7UkgH78ELZm Ny.u3E8njDIyUcGwWwOhiaj7F356FZJqtMDYq6VOCrNIWEsba7dURwA0Wm8P kbWbMBy2mYJp4iyd31ZTa8Oce5oIwoe9GEgyXryeNAVjsKeQ4893YvC9vdVp JzwotMsbx6x1K3SdSuFuboJ8zD8ahWtMyjw5.J.eox0y1BJ7s.SXS.Vxw1fS 93rkDrJl+Js.6ge+nwphGOHQZAj9DUdy0d1Cs+x7j8rpGUTwaCUMxfpMX5S9 x2bL0JU93xS1SJ5xXRLtXB2F8jY+1lM0OZXhzVLMh7DsMXhMtXxd6vCbr.Dg 5NsSS0MLXHDZOcc94yLDv9AKDlCSnKfotxjHni2L0UHDDJ2dTkPY.o7muyw4 uRr2lhjPczagC8p.laCBLZ3wQiAXG2LEsQNhHiKlZSDPzHmQsUkx1QYVHxJr n9l.Jf7iiFCvhF2v0saGViq3G0lzZnNhoCgKH99dJEhiitVzZcKHW.si7h5s vS8PzWh+TPN3j3FMDn8Ro4Pc0IF6OXKnqmRRt+m5icz0h1V4D2QzVJGEmgVw .f1acZDyfe9z+BD2CtlO -----------end_max5_patcher-----------
I just noticed that the limit for osx Hard ware is 4096×4096, that would explain the glitches I am getting.
So to keep the fsaa on, I would have to tile it using jit.gl.sketch and viewport, frustum, modelview etc the problem is I am not gifted at opengl and don’t know exactly how to do this and it might be a steep learning curve.
The other solution like i stated above would be to use command shift 4 in my 1920 x 1080 screen and rotating the gridshape/meshes in the x and y axis by 180 and then doing another 1920 X 1080 screen capture, this seems a little tedious and might be a hassle to put together after, but seems like the only "quick" solution…. or doing this same thing an using exportimage with the fsaa on.
well thanks anyways, ill keep on working on the this technical stuff even though I rather work on some images!! :).
hi tsiwt. i think you are making this more complicated than it needs to be, unless i’m misunderstanding what you are trying to do.
rendering a frame of opengl to a large matrix, and then exporting that matrix as a large image is pretty straightforward.
see if this patch helps. please be aware, 10,000 x 10,000 takes a while to render and than export. obviously the actual dims of the matrix can be anything (limited only by the amount of memory in your computer).
----------begin_max5_patcher---------- 507.3ocyU1rabBCDG+L7TX4yjUXaTSRO0mhbIJJx.SYczhMx1nk1n7tWvFxt zvWpMY0pUxFlwl4u+syL90v.bppALXz2QOhBBdMLHvYpyPP+6A3RdS1AtwsL bZs0pj3HuqJtMauPV7rFxr9OSR7t3Hz2biz2GQO0uCUs8.Xs+pB7KGmxkE32 cKxcQQk9xMD1PTj0kBY6tbJfbxn+a4s1Y7svvtgnMdTjvw13LDDKz3NA3WD1 cEG1UnE4l87J.oAYNnK4VsnA8CuMqRWaF15AgDxT0R29YyiFxcNdPhOeJgsD cZEyy9HiiP3I4zcCx3mJoUxKcaE+.ny4R949Lhe67Q5h6lIK8efrcHr5nPlq NtZlB81O.k4wwrPHYwbkJMX.okaEJ4YBvEw4i9+OGlICyhRa+AZtAVEOiSVH 2uZoTzoYeDlBWru1bF1ma0Xeo2n5vDT1dttiKww9w0yzX8Sz0Q4Fp6nWe0cK 2QyyuQXbAl46fS5mX2u8zuo6le8QqRvX3EvGvEzTozVQYqOjEL1abOtJpn8k nLha51E6iMIh9zXDc06Hcw2cw0ec6u630YeL3LpZc1f5GtcFc5Dl2xIgz0f8 rEMdM6E44fy8fnKE4UJgz1qAzSS9u3lkDYCRhdQkDcCJJ4hpH1UGi5TDcEEQ t3Jh7Epn1WdK7OPUfTKn -----------end_max5_patcher-----------
Exactly, Rendering to a named matrix forces software OpenGL. OpenGL hardware limitations are completely dependent on your *Hardware*, and change based on what GPU you have installed, and possibly driver/OS revision. Mac OS X is not limited to 4096×4096, your computer might be however.
To check limitations and support, see the Mac OS X OpenGL compatibility matrix here:
Looks like 16384x 16384 is the software GL drivers limitation.
thanks guys, yes Rob your patch works, the problem is that once I include it in mine I get the jit.gl.texture : error attaching texture readback mechanism for capture, it seems to be a problem with the slab, it is name correctly.
ill keep on trying to debug it.