Trying to find out if Unity will fit my requirements - who best to ask?

Hi all,

I’d like to write a live-preview view for a compositor application that makes use 2.5D composition, plays back [quicktime] video, works with images, makes use of reflections and shadows. Part of the reason I’m asking here is that I believe Unity might fit the bill to get this done (heck; its very likely overkill).

My options so far are to;

  • write this all myself, using opengl (painful and slow - no thanks)
  • use a framework, like Unity or OSG (don’t know either of them - looks like it could work for this type of thing)

The question I’ve got first is this: where is the best place to ask “can Unity do this?”. Here?

If here is indeed the correct place, my spec is below - and I’ve read the unity docs and come up with these questions:
1 - can I embed the Unity renderer into a normal (non-game, non full screen) app?
2 - can I add/modify/delete scene components at runtime?
3 - what computer graphics card does the Unity engine require? What features are tied to specific GL versions - is there a reference list somewhere?
4 - can I put my own opengl texture onto scene objects within Unity
5 - I’d like to have mouse selection of objects in the scene, does Unity support this and/or help with this task?
6 - how does the Unity system integrate into non-game apps, e.g. the Qt event loop or the NSOpenGLView elements?

— and here’s my outline idea of what i want to do with this live-preview compositor UI —

Goal: to have a live-preview view that displays a composition/scene containing:

  • video
  • images
  • text
  • custom shapes

Target platform is Mac 10.5+ and Windows XP

Each of these items in the scene can be rotated in 3D space, and have its geometry changed by dragging its size handles and have graphical effects applied to them.

I want to be able to apply the following effects to any item in the composition:

  • color filters e.g sepia, monochrome, bloom/blur
  • reflection
  • shadow
  • border with a width and corner radius (for rectangular items), the border clips the content

Content is in some cases already being generated as OpenGL textures - so there needs to be a way of using that content on a quad within a scene within unity.

The items in the preview window will be moved by using the mouse to click on them and drag them around the preview window.

The mouse is also used to directly manipulate drag handles around the object to modify its size and or orientation.

All of this has to happen at liquid smooth FPS - which is one reason why I’m considering Unity.

– here’s a moc up of the UI, showing how the preview window would be used –

Thank you.

John Clayton

Sure, this is as good a place as any.

I’m sure you’ll get some better replies than I’m able to give, but the first issue I see is that Unity doesn’t actually use Quicktime videos, it converts them to Ogg Theora ( http://unity3d.com/support/documentation/Manual/Video%20Files.html ).

Otherwise, this sort of thing is probably possible, but it wouldn’t be very easy to do (I can see a couple other issues in the list you’ve posted, but as I’m not an expert on those topics I’ll let someone else reply to those). Here’s a resource that I use to search all the Unity related sites for info which might help you find some info that will help you decide if Unity will work or not:

http://www.google.com/cse/home?cx=002470491425767499270:iugs1ezlsfq

I’ve continued to read about how Unity works - and one stumbling block I see is perhaps gonna be the interaction between the tech layers - Unity seems to take the (nice) approach of having almost everything encapsulated in the Unity environment - its not a framework as such, more a platform for game content + logic delivery - whereas I’m looking for a fast rendering engine that I can fit into some existing C++ code.

Is it possible to have Unity embedded into an existing app, and to drive its scene programmatically?

Unity isn’t a renderer, it’s an engine, and as such is its own thing and not something that is embedded into other apps.

–Eric

Maybe it’s worth having a look at OGRE?