What are you working on currently?

any time i start something new i am obligated to post it here

i got a ray tracer going on. not the best but its smtn. might rewrite it to make it a little better since doing it right now is just really inconvenient (and it doesnt look amazing)

image image

image

7 Likes

“Bear with the quality” he says as he pulls up a peak model :skull:
Great job for beginner modeler. Is this going to a larger project?

4 Likes

Messing around with particles, here’s a little smoke bomb test I made

3 Likes

nah, just messing around. currently tryna get denoising to work properly before fixing other issues since the code for it was abysmally slow

(denoising the below image with the current algorithm took ~1 second. the old algorithm wouldve taken 40 minutes to denoise the same image)

image

i genuinely just disabled it for a while cause it was just that poorly written, it would individually add the rgb values of 4 pixels around the current one, average them out, then set each of those 4 pixels colours to each of their new corresponding colours and set the current one to all those averaged out

now it just adds all the colours at once and averages them out. somehow managed to speed it up by ~2400x

so it went from changing 5 pixels at once to 1

its like 1/3 the length too

OLD CODE:

function RAYTRACER.ColDENOISE(Fact : number, ScreenSize : Vector2, Iterations : IntValue)

	local totalPixels = #PixelPool
	for i = ScreenSize.X+1, totalPixels-(ScreenSize.X-1), RAYTRACER.RayTracerParameters.NumToBatch*2 do
		task.spawn(function()
			for j = i, math.min(i + (RAYTRACER.RayTracerParameters.NumToBatch*2) - 1, totalPixels) do
				if Holder[j].BackgroundColor3 ~= Color3.new(0,0,0) then
					local Pcol = Color3.new(
						Holder[j].BackgroundColor3.R,
						Holder[j].BackgroundColor3.G,
						Holder[j].BackgroundColor3.B
					)

					local FadeColRt = Color3.new(
						(Pcol.R + Holder[j + 1].BackgroundColor3.R)/2,
						(Pcol.G + Holder[j + 1].BackgroundColor3.G)/2,
						(Pcol.B + Holder[j + 1].BackgroundColor3.B)/2
					)

					local FadeColUp = Color3.new(
						(Pcol.R + Holder[j - ScreenSize.X].BackgroundColor3.R)/2,
						(Pcol.G + Holder[j - ScreenSize.X].BackgroundColor3.G)/2,
						(Pcol.B + Holder[j - ScreenSize.X].BackgroundColor3.B)/2
					)

					local FadeColLf = Color3.new(
						(Pcol.R + Holder[j - 1].BackgroundColor3.R)/2,
						(Pcol.G + Holder[j - 1].BackgroundColor3.G)/2,
						(Pcol.B + Holder[j - 1].BackgroundColor3.B)/2
					)

					local averaged = Color3.new(
						(Pcol.R+FadeColRt.R+FadeColDN.R+FadeColUp.R+FadeColLf.R)/5,
						(Pcol.G+FadeColRt.G+FadeColDN.G+FadeColUp.G+FadeColLf.G)/5,
						(Pcol.B+FadeColRt.B+FadeColDN.B+FadeColUp.B+FadeColLf.B)/5
					)



					Holder[j].BackgroundColor3 = averaged

					Holder[j - 1].BackgroundColor3 = FadeColLf
					Holder[j + 1].BackgroundColor3 = FadeColRt

					Holder[j - ScreenSize.X].BackgroundColor3 = FadeColUp
					Holder[j + ScreenSize.X].BackgroundColor3 = FadeColDN

				end
				task.wait(1)
			end

		end)
	
	end
end

NEW CODE:

function RAYTRACER.ColDENOISE(Fact : number, ScreenSize : Vector2, Iterations : IntValue)

	local indexes = {}
	local AveragedColours = {}
	
	print(#PixelPool)

	for i = ScreenSize.X+1, #PixelPool-ScreenSize.X do
		local MyColour = PixelPool[i].BackgroundColor3
		
		local UpColour = PixelPool[i-ScreenSize.X].BackgroundColor3
		local DownColour = PixelPool[i+ScreenSize.X].BackgroundColor3
		local LeftColour = PixelPool[i-1].BackgroundColor3
		local RightColour = PixelPool[i+1].BackgroundColor3
			
		local NewColour = Color3.new(
			(MyColour.R + LeftColour.R + RightColour.R + UpColour.R + DownColour.R)/5,
			(MyColour.G + LeftColour.G + RightColour.G + UpColour.G + DownColour.G)/5,
			(MyColour.B + LeftColour.B + RightColour.B + UpColour.B + DownColour.B)/5
		)
			
		table.insert(AveragedColours, NewColour)
		table.insert(indexes, i)
		
	end
	
	for j = 1, #indexes do
		PixelPool[indexes[j]].BackgroundColor3 = AveragedColours[j]
	end
	
	table.clear(AveragedColours)
	table.clear(indexes)
end

just some indexing issues to fix and itll be good

ill also need to get to commenting this 500 line monster of a module at some point which’ll be fun…

1 Like

lol thanks i appreciate it.

i dont think im really going to use this for anything. mostly for practice, and maybe something to add to a portfolio if i get into modelling seriously.

Just released my 2nd showcase

made an environment as part of an ongoing portfolio revamp (-:




24 Likes

Hey everyone, I wanted to get some feedback on my Underwater and rain effects.
Is there anything else I should add or change?

External Media
5 Likes

been working on my physics VR system!!


i’ve got a few things implemented right now

  • collider moves with any irl movement, so your camera doesn’t get offset
  • hand / head directional movement, smooth / snap turning, and jumping
  • hands use physics to align with your controllers, so they wont go through walls
  • hand pose system

i hope to get it fully working soon :33

13 Likes

first off: awesome rain and water, i really like it and you’ve done a good job with it, I personally like the speed of the rain coming down and it works well with the environment you’ve gone for. I wouldn’t change anything, not for the time being as I think it works quite well :d

1 Like

You look like a 5 year old trying to get over the block wondering how to jump

4 Likes

who’s gonna tell him that they weren’t replying to him

2 Likes

Shoulda flipped us off lmao

People using that are just gonna flip us off

I wish that were the case (lol dont ask), but no, alas, unless the developer adds a special input to do it, you cant actually flip people off :pensive:

Woah this looks great!!

1 Like



5 Likes

ong i didnt see the replied part so i thought he was talking to me

New custom hotbar to replace the roblox one, works on mobile and pc, very good, very good, really nice

4 Likes