How can I render a photorealistic 3D scene in memory on JVM?

156 Views Asked by At

Here's my problem space:

Render a 3D scene on the JVM (we're using Clojure) into a JPG/PNG image.

  • renders need to be high quality and preferably photorealistic
  • renderer needs to be an in-memory lib or a shell-based invocation that is very fast to start up (as we'll be paying for this constant startup time on every invocation)
  • needs to support raster or vector graphics as a 2D texture map
  • needs to be fast. Obviously render quality is pretty subjective but we're trying to find a solution where we can get photorealistic images as fast as possible.
  • ideally CPU-based but GPU-based renderers are not out of the question

What we've tried:

  • invoke POV-Ray CLI for each render on AWS EC2 c4.2xlarge boxes via a Clojure web service
  • our 3D models are in mesh2 povray syntax, converted from Wavefront OBJ
  • we're using radiosity for our renders with pretty conservative settings. Traditional scene lighting with area lights were too slow and we couldn't get the shadows the way we wanted them (I'm admittedly quite new at this)

We've also tried JMonkeyEngine and screenshots-as-renders but they were not high quality enough. We're considering giving Cycles a look. Overall I don't have enough knowledge of high end rendering (game) engines to know if they're applicable, and I haven't yet been able to glean this information through my research.

we're hoping to produce 1-2s renders.

0

There are 0 best solutions below