RetroRaster | The Real-time Raytracing Solution for Pixelating Roblox!

smart move.
Keeping the original price while giving a chance to get it lower.

1 Like

since this is now public can you upload a “demo” place of this on your account so people (like me) who are interesting in buying this can test it before we get it?

3 Likes

Hi! Im intrested in buying this, however im concerned with the limitations of EditableImage, specfically the last one listed on your web page here:


What does this mean? ‘explicitly opted-in to using the API in published experiences’
Does this mean in order for players to see the effect they need to turn on some setting first?

These were just points I copied and pasted from the roblox announcement post, the last one I was also confused about, but I think it just means you have to enable it in Game Settings or something.

All players should be able to see it no problem

3 Likes

Alirghty thanks! Also are you going to support particles sometime in the future?

basic particle support is planned for a future update!

1 Like

Hi! I was wondering if it’s possible to use higher resolutions, or is the limit set to 100x100?

1 Like

Hi. The resolution is completely adjustable along with many other graphics and rendering settings!

Let me know if you have any more questions

1 Like

Cool, sorry for being silly, would something like 320x240 work? Also, how well do higher resolutions perform on weaker devices like phones?

2 Likes

Hello. 320x240 is a very hefty resolution for any roblox raytracer. This would perform really really slowly. Especially on a mobile device.

I don’t recommend you go any higher than 140x100, otherwise it will start to feel too sluggish for gameplay without major rendering artefacts.

Hope this helps

1 Like

Why stop at 100x100? I would go to 200x200 and jt should look way better.

Unless ray casts are specifically scripted for 100x100

Have you done any tests on higher res?

I understand, thank you for the help and for the amazing job you’ve done :slight_smile:

Well, 100x100 is already quite tasking on the CPU with all graphics settings enabled.

200x200 would quadruple the performance loss and will run at most around 20-40 FPS on my on machine with all graphics settings enabled

2 Likes

Does it use gpu at all? Or does Roblox limit rendering to cpu?

All roblox script execution is done on the CPU. The GPU isn’t really used at all except for rendering the actual roblox scene and textures. The EditableImage itself hardly affects the GPU in this scenario

2 Likes

can u make this open source? this will be the best ever raytracing engine and this will fly up to the sky with popularity in my opinion

why is there no option to buy with card, please add that option asap because i really want to get this while its on sale because 60 dollars is insanely high priced but 20 isnt that bad but i can’t buy it because i dont have paypal :confused:

edit: i bought it its really cool

Decided to come back to this for messing around purposes and made a portal shader.
It was actually surpisingly simple.Screenshot 2025-01-03 103916
If anyone wants to mess around with it, heres the function:

local function ProcessPortals(Hit, HitPos, Direction, R, G, B)
	local PortalWorld = Hit:GetAttribute("Portal")
	
	if not PortalWorld then
		return R, G, B
	end
	
	local Offset = PortalWorld + (HitPos - Hit.Position)
	local PortalRay = workspace:Raycast(Offset, Direction * RenderDistance, Params)
	
	local HitR, HitG, HitB = 1, 1, 1
	
	if PortalRay then
		local PortalHit = PortalRay.Instance
		local HitMaterial = PortalHit.Material
		local HitColour = PortalHit.Color
		
		HitR, HitG, HitB = HitColour.R, HitColour.G, HitColour.B
		
		if HitMaterial ~= NeonMaterial then
			HitR, HitG, HitB = ProcessTexture(HitR, HitG, HitB, PortalHit, HitMaterial, PortalRay.Position, PortalRay.Normal)

			local PreR, PreG, PreB = HitR, HitG, HitB
			HitR, HitG, HitB = ProcessShading(HitR, HitG, HitB, PortalRay.Normal, HitMaterial)
			HitR, HitG, HitB = ProcessLight(HitR, HitG, HitB, PreR, PreG, PreB, Hit, PortalRay.Position, PortalRay.Normal)
			HitR, HitG, HitB = ProcessFog(PortalRay.Distance, HitR, HitG, HitB)
		end
	else	
		HitR, HitG, HitB = ProcessSkybox(Direction)
	end
	
	return HitR, HitG, HitB
end

Im not going to show you how to insert it, learn it yourself. :slight_smile:

If you want me to make a more in-depth version (potentially with a portal A to portal B scenario) I’d be happy to. Thats if this gains enough attention.

5 Likes

This works amazing! Just bought it and 100% recommend it, especially for the price (there’s a 40% off sale rn when I bought it)

New project:
Billboards!!!

This could be the start of all things rendered in 2D (That includes particles).
Theres still plenty to work on, but this small breakthough should hopefully make the process alot smoother from here.

Who knows, I might even be able to hand this to the OP at some point.

1 Like