Render Model Refactoring

From K-3D

Jump to: navigation, search


There are several distinct OpenGL use-cases:

  • Rendering for modeling & scene setup.
  • Rendering for technical illustration, informatics, and scientific visualization.
  • Rendering previews for offline render-engines.
  • Rendering high-quality final output using OpenGL.

The first use-case is basically there already, in the sense that we provide special capabilities (such as the headlight) that are specific to editing.

The second use-case requires more control over the rendered scene, but is intended to provide insight into data rather than simulating "real life". I've done a couple of projects that feel into this category. I envision that this is the case where the (currently ignored) OpenGLMaterial and (hypothetical) OpenGLLight nodes would be used.

The third use-case is where we would try to reproduce the output of a RenderMan / Yafray / Foo render engine. For this case I *wouldn't* provide any preview-specific fields in the objects, nor special material or light objects, since the point is to preview the artists' existing choices. There would probably be a separate render engine in this case - as an example, the engine would be the right place to implement depth-peeling for accurate transparency. There might be a corresponding set of painters, or it might all be self-contained, I don't really know.

The fourth use-case would definitely require separate render engine, material, and light nodes specific to the model. The sky's the limit here, since the model would be defined by us, and only limited by what we could dream-up for OpenGL.