This idea has stalled before (here and here), but thought I’d start it up again. I’d like to create something similar to the Rhino.UI.Controls.ViewportControl that also supports non-standard projections such as fisheyes. One approach would involve using a cubemap, as described here. Transforming (up to) six perspectives into an arbitrary 2d projection is quick using GPU kernels. My question is… how to get a cubemap out of Rhino in the first place, in something close to real time? The existing capture methods are tied to RhinoViews, so it would seem difficult to use them silently. The ViewportControl, meanwhile, is obviously capable of rendering a perspective view, but doesn’t make its painting method public. Is there any way to access (or, in the future, make accessible) what’s under the hood, in order to rapidly generate a set of perspectives?
There is, of course, the alternative of using OpenGL (or one of its wrapper libs) directly, but I expect that would involve duplicating the model in memory, listening to changes, and otherwise reinventing wheels that I’d rather borrow, if possible.