How to tell if any point of a part can be seen by a player

I used Raycasting to make a simple way of seeing if a part was in sight of a player, but if the middle of the part is obscured and nothing else, it still doesn’t think the player can see it. How would I make it so i can tell if any point of a part can be seen by a player?

Maybe try using :WorldToScreenPoint(). It will return a boolean if a world point is within bounds of the screen, you can just use a for loop to iterate around the parts you want to be monitored - or if it’s the entire workspace, use a for loop with GetDescendants on the workspace.

https://developer.roblox.com/en-us/api-reference/function/Camera/WorldToScreenPoint

Would that check every point though? Or just one position?

That’s where the for loop comes in to play.

What? How would i use a for loop for each point on a part?