Help with sight reflection

I am trying to get the same results in games such as Weaponry and Phantom Forces with sights. I followed through a tutorial (also linked below) but everytime I look in the opposite direction of the sun it reflects on the sight and makes it impossible to see anything because of the reflection.

Is there anything I could do to fix the reflection other than setting the Brightness to 0?

Ive tried:

  • Putting the Reflection property to 0
  • Messing with the Transparency
  • Messing with Lighting properties such as EnvironmentSpecularScale

I used this video to make the sight:

If you’re fine with the glass not distorting the image then you can mess with the mesh’s normals to achieve a less noticeable specular highlight:

By reversing the normals of a plane, the specular highlight appears on top of the light source which helps hide it.
Here’s a place file for it: Non_Specular_Plane_Test1.rbxl (57.9 KB)

1 Like

It seems to work, although when I try it in my game, the highlight doesn’t seem to make other Meshs seethrough. I have no clue what I did wrong.

*Edit: After a little bit of digging i found out that my highlight doesn’t work because my part is parented to a tool, how can I fix that?

1 Like

Sorry for the late response.

I welded the plane to a tool and It seems to work for me:


Non_Specular_Plane_Test2.rbxl (61.4 KB)

If you don’t mind, can you send me a place file with the faulty gear?

1 Like

I’ve tried to play around with the settings and all and I found out that the transparency wont set because of the humanoid.
I need to have a humanoid in the Viewmodel in order to play animations.

here’s the file for the faulty sight with my lighting settings in game:
Sight reflection.rbxl (114.1 KB)

and for some reason, there are still reflections on the sight

without the humanoid:

with the humanoid:

Oh yea the glass mesh’s transparency has to be less than 1 (I used 0.9999999) when parented under a model with a humanoid. Also here’s the scope with a new lens which should work. I edited the lens’ normals to point forward in Blender:
Edited_Scope1.rbxm (64.1 KB)

This actually works PERFECTLY, IF on 3 graphics or above, is there a way I can fix that? If not it’s fine

On >= 3 graphics:

On 1-2 graphics:

Unfortunately Roblox seems to calculate the specular highlights differently on lower graphics levels. I’m not sure if there’s a way to fix it sadly.
I’ll try later experimenting with other normal configurations and see if any of them help.

I made a quick way to fix it using scripts, although it does fix it, its not ideal for low graphic lighting but it works

if anyone wants to try the code for themselves make sure to have in a ColorCorrection to the Lighting

local defaultBrightness = game.Lighting.Brightness
local defaultColorCorrection = game.Lighting:WaitForChild('ColorCorrection').Brightness

local function fixLighting()
	local qualityLevel = tonumber(string.sub(tostring(UserSettings():GetService("UserGameSettings").SavedQualityLevel), 38))
	
	if qualityLevel ~= nil and qualityLevel <= 2 then
		game.Lighting.Brightness = 0
		game.Lighting.ColorCorrection.Brightness = 0.15 -- how much the ColorCorrection's brightness is gonna cope
	else
		game.Lighting.Brightness = defaultBrightness
		game.Lighting.ColorCorrection.Brightness = defaultColorCorrection
	end
end

UserSettings().GameSettings:GetPropertyChangedSignal('SavedQualityLevel'):Connect(fixLighting)
fixLighting()
1 Like