I have a working version that allows you to exceed that limit by capturing the full viewport instead of a cropped area. You can use this mode in conjunction with the emulator to create any size capture (even 4K if you desire).
I have a few qualms about releasing this though.
The larger the image the slower the processing. I have written some parallel luau code to speed up this process significantly (and it works amazing!) however, using parallel luau in published plugins is currently broken (roblox said it will be fixed in the next update or two though)
The UX here is a bit janky. Without going into a lot of details, using photobooth and the emulator only works when you capture at actual resolution. Communicating that to the user is very difficult as afaik thereâs no way to detect when/if the player is using an actual resolution emulated device.
The method itself for exceeding 1024 x 1024 is not something I can guarntee will continue to work as roblox may choose to patch it. Having official support for this so this feature doesnât get rug pulled would be way better.
I purchased it today and while I am still figuring out what will be the best workflow for me utilizing it, I already know that I am going to save hundreds of hours going forward. Gone are the days of putting a greenscreen as the skybox, and needing to use a third party editor to make the image perfect. This plugin does it all.
Thank you for all the time you spent developing this! A real game changer!
At first, this plugin might seem âuselessâ since, sure, you can take screenshots like youâre suggesting, but thereâs one thing regular screenshots will never capture properly: translucent (semi-transparent) pixels and objects. Take this cute cup model I made a few years ago, for example:
I used my old method for this image; I used the Device Emulator to take a 4K screenshot of the model, then used Photoshop to remove its background color. While this kind of worked, the cup itself now looks inaccurate, as itâs usually translucent.
If anything, this is the main reason why I think anyone saving renders of Roblox models needs to buy Photobooth; When I used it to take a picture of the same cup with the exact same lighting, it captured this much more accurate image:
So yeah, screenshots and, Device Emulator, and green screens wonât create as nice images as this plugin. If a later version supports larger captures, Iâll never go back to that inferior, older style for object/character renders.
Speaking of thatâŚ
Even with the things EgoMoose pointed out below the section I quoted here, I still think that update would be great! Iâm used to switching to âactual resolutionâ in Device Emulator so I would do that before capturing images larger than 1024Ă1024, anyways.
I donât mind questions / constructive feedback about the plugin, but this just comes off as passive aggressive which I donât appreciate.
Photobooth differentiates itself from the standard screenshot button in a number of ways:
It captures as an editable image which can be used directly in game whereas the screenshot button saves directly as a png to your filesystem.
As Mary pointed out it removes the background of images for you. This saves a lot of time and effort such that userâs donât have to greenscreen their captures and manually edit out the background.
The plugin offers bindings which allow you to capture via code. This allows you to write scripts that will capture multiple images without the user having to line up every camera angle and move every model etc.
It can be used in conjunction with other lighting effects for useful effects. For example, using a color correction with brightness set to 1 and the blur effect will capture a blurred mask image. This can be used for things like drop shadows:
It can capture UI elements directly. This allows users to do stuff like take a text-label and convert it into a decal which allows for surface wrapping (something a surface gui doesnât do)
This list is not exhaustive, but my point is that this plugin offers a lot over the standard screenshot button.
Yes you can! There is a textbox on the bottom where you can type in the specific size you want. I would recommend 512x512 instead of 522x522 though. Its definitely worth your money.
Robloxâs position on this has been that by enforcing USD they can maximize the revenue share of the creator. However, in my opinion itâs a bit more nuanced than that.
Letâs say for example that Roblox offered the ability to price in both Robux and USD and let the buyer choose which payment option they wanted. Anyone willing to do the math will quickly come to the conclusion that for the creator to get the same earnings from a sale the Robux cost will be substantially more than directly purchasing for USD.
For example, selling a something to earn 9.99 in robux:
-- current devex rate is 30,000 for $105.00 USD
((robux_cost * 0.7) / 30000) * 105 = 9.99
robux_cost = (30000 * 9.99) / 73.5 ~ 4000 robux
If we look how much it would cost to buy 4000 robux itâd be $49.99 USD which is comically overpriced compared to just buying it outright at $9.99.
Now of course I donât want to rip off buyers, but if Roblox gave me the option to price in both robux and usd it would sure feel like I am.
I obviously donât know the full details of why Roblox chose a usd only policy, but it wouldnât suprise me to hear that this pricing imbalance is a reason for it. Robux buyers would likely notice this trend and feel like second-class citizens. This would lead to them directing their ire at either the creator or Roblox so they may have landed on the current policy to avoid that debacle entirely.
I have been messing around with Photobooth for the past few days and Iâm genuinely impressed. This has speed up the process of rendering items out by a LOT. This is a game changer and a life saver. With Future lighting existing I can confidently say goodbye to the days of rendering items out in blender.
One of the best features about this plugin is the ability to automate rendering. Alongside the black magic you do to calculate transparency, automation just makes this plugin perfect. The only limitation which I encountered is the fact that you canât export multiple images at the same time to PNG format. This is most likely on Robloxâs end and out of your control.
This method does work but you have to export each capture one at a time. Regardless it worked out well in the end, since for my use case I would have had to do image processing after exporting from Roblox anyways. So I just sent the image data via localhost to VSCode and compiled the data back into a PNG with the image processed. (If you plan to do any image processing and are coding in Node.js I recommend using the âjimpâ npm image processing library.)
When processing the images I applied a more aggressive alpha bleed algorithm to fix some aliasing issues. I honestly didnât think there was any alpha bleed at first, but after looking at the patch notes I noticed there was one implemented in version 0.2.0?
Please keep in mind that this is an extreme worst case example. Where the image itself is dark on top of a dark background .I understand the decision to minimize the amount of alpha being bleed, as alpha bleed does take up a bit of processing time. In my case the images were downscaled from 1024x1024 to 256x256 and even then it still took a few seconds to process the alpha bleeding. As an alternative for those who are bothered by aliasing you can use this amazing site made by @XAXA to process the alpha bleeding.
TLDR: Really amazing tool 10/10 would recommend. It is genuinely a game changer especially for those who need background transparency and automation. Thank you for all your hard work!
Itâs funny you mention this as I had similar tooling in my repository, but it requires a bit more setup so itâs not something I included out of the box. Iâd like to provide a sample workflow repository for this built w/ lune, but I noticed the net.serve function seemingly just dies. Maybe whenever that gets fixed or as you say Roblox provides another alternative altogether.
The alpha bleed algorithm I use is the same as whatâs listed here. Iâm going to delve into it a bit more though to make sure itâs doing the job right b/c I agree that based on your images it doesnât quite look right.
Edit:
I looked into the alpha bleeding more and it seems to be working in unreleased v0.3.0. I havenât changed the algorithm other than itâs now written in parallel so I assume it should be working in v0.2.2
Hereâs the same 500x500 tree capture scaled to 1000x1000. On the right is the unbled image and on the left is the bled one:
I can see a noticable difference here and it seems like the alpha bleeding is working for me.
If youâd be willing to share a reproduction of a capture where youâre getting unbled (or badly bled) results via DM I can take a look and try and get this sorted.
I didnât know lune even existed, it looks like an amazing tool. I used node.js since I already did something similar for a different project. Compared to Node.js, lune might be much easier to use considering its in lua. When I tried exporting multiple images and it didnât export them as PNG I was so confused. Since the funny thing is Roblox exports multiple images for materials when exporting a model. I genuinely expected them to export without issue. But, I still enjoyed the little coding adventure in image manipulation.
Regarding the alpha bleeding I donât mind sending the place file I just had to remove assets that I unfortunately canât share. I did some of my own testing and it doesnât matter if its captured normally, via emulator, or via code the issue persists. Perhaps itâs my lighting settings? Not sure. I exported these by using Export Selection.
I tried it using a black sphere so its easier to see the aliasing. Running it through the alpha bleed website makes the issue completely disappears. Itâs really dark I know, but trust me the sphere is there in workspace haha. If you move the camera, you can copy the code in ServerScriptService to reorient the camera back.
One thing to note is that I havenât uploaded these images to Roblox and Iâm using XAXAâs Local File Importer. I have a lot of experience using this plugin and I really doubt it will be at fault. Especially considering the fact that the images that were ran through alpha bleed didnât have any issues when imported through that plugin.
Okay some interesting findings. I did some analysis on your image. The alpha bleeding is working as far as I can tell. I turned the circle itself green and made every transparent pixel fully opaque. You can see the bleed pixels on the edge which are black.
Similarily when I load this image into studio and scale it up/down I do not see any issues.
I have two more questions for you and if I donât get any leads from these then idk where to even approach this
For this image you posted. What were the exact steps you took start to finish to create this? The place file you linked only has on sphere in it so I assume you took the result of that single capture and used some image editing software to create this?
Hereâs the same image bled 2 pixels as opposed to one. I wonder if for some reason youâre sampling more than just the direct neighbors and I have some misunderstanding of how bilinear filtering works. Let me know if this image causes the outlines for you.
The image I posted used raw images produced by the plugin. I did not use any image editing software. The reason the sizes are all wonky is cause I used a 100x100 ImageLabel and I didnât bother making the captures perfectly square.
As for replication I just clicked Photobooth > Viewport and clicked the capture button. After the capture was created and parented to StarterGui, I selected it and did Export Selection. Then I just imported it into Roblox using XAXAâs Local File Importer and put it into a ImageLabel.
2 pixels did the trick! I made the background a bit brighter so you can make out the other sphere. I guess its best to apply 2-3 pixels of bleed? The difference is even visible in the Local File Importer plugin too.
Really not sure what the root cause could be? Perhaps its hardware related, like Nvidia Control Panel shenanigans. I did try it on a laptop and it had the same results. Granted it also has an Nvidia GPU just a different generation. But the 2 pixel bleed does the trick, for me at least.
A bit unrelated, not sure if you already added or have plans to add this. But being able to select the background when previewing the capture might be nice. Similar to how XAXA allows you do in the Local File Importer plugin.