How could I accomplish making an optimal Camera that renders out the only descendants that can be seen in within the camera's radius?

Hello, I’m trying to make a Camera that renders out all of the Descendants that are applicable for rendering so such that it needs to be within the dot product angle of the x & y of the Camera & throw a raycast from the Camera’s origin to the Descendant, if nothing intersects we’ll assume it can be seen & thus we render it out. Now here’s the problem, what if the Origin can’t be seen but some pixels of the Descendant can be. Would I throw multiple raycasts? (Which ultimately would be inefficient imo).
This might be a silly question & irrelevant to some but I seriously can’t figure it out myself. Thanks.

(Please note : I’m making a camera tool that instances each eligible descendant on a viewportframe)

There is a property for this.

Oh I don’t think we’re on the same page here, sorry for not putting an in more depth explanation on my post. I’m making a Camera Tool that renders out an image on a viewportframe.

Hello, I got some help from outside this website.

It seems that ray casts aren’t appropriate for the this initial problem, but this shouldn’t be worried about since Roblox is already handling this on viewport frames. It’s also not feasible to do this kind of culling in luau and with the limited geometry information you can extract through Roblox API. The best optimal solution I was suggested to aim for was to replicate all the descendants onto the viewport frame & Roblox automatically checks if each descendant can be seen, thus it won’t get rendered resulting in not much Client Memory Usage being added.