you are slowly turning into egomoose and I love it
I feel like the fisheye adds for effect to the PS1 style since the fat TV’s we’re square and curved
I am unsure if the fisheye lens fix will even work for your method. But when I was working on my 2D Raycast Renderer I also asked for some help, here’s what @edenojack had to say:
Specifically, the video relating to Wolfenstein’s way of clearing the effect. It’s been a while since I last watched the video, so I am no longer sure what the fix was but I do know that you can see major improvements from my first rendition to my second version of the raycaster:
https://www.roblox.com/games/3608191441/2D-Raycast-Renderer
Also, Grazi
The video in the linked post should help actually, specifically from here;
It sounds like you’ve found the position you’ve hit the object, and are just having a little bit of issue with the adjustments to the FOV, this video should help descibe the equations and reasons behind what you’ll need to do next.
I’ve almost fixed the fisheye effect
But there is a new distortion now.
It appears that the higher the angle is, the taller the walls will strech.
This is more obvious with higher FOV
Anyone know why this is?
local Distance = (ViewRayOrigin - ViewRay.Position).Magnitude
-- Remove that fisheye effect
local RayAngleX, RayAngleY, RayAngleZ = RayAngle:ToEulerAnglesXYZ()
Distance = Distance * math.cos(RayAngleY)
I know this isn’t relevant right now but does this support meshes?
yes, but you wont get a 3D model. You have to remember that this is actually a 2D top-down map.
It is just being rendered to look like its 3D. This explains why you cannot look up or down as well.
Ah I see, that would make sense.
I seem to have a major FPS drop when I walk into walls.
That’s odd. I can’t seem to reproduce that issue.
I’m also planning on redoing wall collisions overall. Hopefully that will fix your issue.
I just rejoined and it didn’t happen this time, weird.
It may have happened after I messed around with settings and then I reset my character.
Hey so I was playing around and found that you can get the equivalent of CharacterAngle
by simply:
local CharacterAngle = math.rad(-CharacterPart.Orientation.Y)
This is actually intended behavior.
Imagine that your FOV is 360, you would be able to see all around you. The problem then becomes how could you possibly represent those straight lines all around you without curving them? You can’t.
That sort of opposite fish eye effect happens when your FOV is too high for the width of the screen. Frankly I reccomend you just widen the viewport.
Wow. That is cool. How does it run so well?
I am trying this thing out as soon as I get on my computer in the morning!
Bet it would be possible to create a awesome Puppet Combo game remaster.
Great job!
huh. Well I finally got your formula to work, but I get the exact outcome as using my other method. Which means curve on the outside.
local Distance = (ViewRayOrigin - ViewRay.Position).Magnitude
-- Remove that fisheye effect
local RayAngleX, RayAngleY, RayAngleZ = RayAngle:ToEulerAnglesXYZ()
local CameraAngleY = math.rad(-CameraPart.Orientation.Y)
Distance = Distance * math.cos(RayAngleY - math.rad(CameraAngleY))
Is there a way to fix this without changing the viewport size?
Okay just had an idea.
Aside fomr keeping your FOV low, you could possibly simulate a wider viewport but only display the box.
That would remove the effect.
Although now that I’m thinking about it, that’s literally just the same as keeping your FOV low.
Even with low FOV there is still slight distortion on the edge of the screen.
I feel like we could use math.sin()
to fix this issue somehow.
I honestly don’t see the issue.
With an FOV of 60 the distortion should be dismal and only in corners.