PDA

View Full Version : frustum versus clip and fov


michaelrepucci
08-28-2008, 02:55 PM
I'm not understanding the difference (if any) between using the MainWindow.frustum call and the MainWindow.clip and MainWindow.fov calls. I would have expected them to give the same result in the following code, but they don't. Does anyone know why?

clipPlanes = (0.1,10)
fov = 2*degrees(atan(screenHeight/(2*screenDistance)))
aspectRatio = viz.MainWindow.getSize(viz.WINDOW_PIXELS)[0]/viz.MainWindow.getSize(viz.WINDOW_PIXELS)[1]
topBottom = tan(radians(fov/2))*clipPlanes[0]

viz.MainWindow.clip(clipPlanes)
viz.MainWindow.fov(fov,aspectRatio)

viz.MainWindow.frustum(-aspectRatio*topBottom,aspectRatio*topBottom,-topBottom,topBottom,clipPlanes[0],clipPlanes[1])

michaelrepucci
08-28-2008, 03:10 PM
Oh, nevermind. My bad. These two commands do give the same result. But if you use viz.MainWindow.getSize(viz.WINDOW_PIXELS) before calling viz.go() you (obviously now) don't get the correct numbers. I'm actually glad I had two screens, and two different resolutions, or I might never have noticed that silly mistake.

tobin
08-28-2008, 11:50 PM
Yes, there are very few commands that are valid prior to viz.go. Thanks for posting your answer.