Options for Interactive 3D models on web
Could anyone tell me what my practical options are for publishing interactive 3D models on the web?
I would think either Flash or Silverli开发者_高级运维ght would be the way to go, but even if this is the case, perhaps there are some frameworks already available based on these that will help.
Details:
- Fairly simple models
- Must support 'bones' and joints etc.
- Some level of user interaction required
- Some animation required.
In the past year, publishing 3D Objects has become a lot easier.
Silverlight can't do it yet. There have been promises but its soon to come.
When it comes to Flash - building a 3D object viewer is really very simple and its possible to produce a 3D object viewer within a few hours.
I'm aware of Papervision 3D. Of which you can simply drop a collada file into the viewer and it'll be displayed.
there are many other 3D engines built for flash. Alternativa3D, Away3D and Sandy to name a few. They all have their own strengths. Papervision is the general pick as it is been around the block and its at a level of which you can do pretty much anything you need.
Away3D is acclaimed for visual excellence and a prefab app that can assist in building 3D scenes
Alternativa3D has some beautiful examples and it has the ability to smooth render a scene whilst the camera is stationary.
Papervision3D - in my experience this is the fastest rendering engine. I've rendered speed of 60 fps with complex scenes. Its also the quickest on to set-up for view. Unfortunately at times it can be its own odd syntax and workarounds.
All these will assist you in your requirement.
I'm not sure if this does exactly what you need but I've heard really good things about Papervision 3D
I've been using Unity with it's Web Player and it is very good, and it runs in most major platforms.
It has all the features you want, and it's pretty easy to use.
Hope this helps!
As it was previously stated, there are quite a few out there.
Balder - Silverlight 3D library: alt text http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Balder&DownloadId=123000
Java and Javascript were not mentioned. @maffel touched on that.
Processing is easy to get started with. The only problems I see there are the annoyances of Java applets(java runtime ubiquity isn't great, plus you get the annoying 'Trust' dialog as you will be using Sun's JOGL bindings).
You could try WebGL. Dennis Ippel wrote an WebGL exporter for Blender. The advantage is you will not need any plugins/runtimes, but the disadvantage is that only a few browsers currently support WebGL as it is experimental. It takes a bit of setup to get something on screen. Mr.Doob is working a javascript 3d engine, but currently there isn't support of importing 3d models.
With Flash, there a lot of options out there. There are examples
out there for what you need using Away3D.
Loading and animating a model seems to be possible using different technologies(Flash,Silverlight,Java,WebGL,etc.), so it depends on the target you're trying to reach and any other technology/cost constraint from the stakeholder.
HTH
You could try Alternative3D. According to the site it will support invese kinematics - although it is unclear if it is a future feature or if it has already been implmented. I did find this however http://blog.alternativaplatform.com/ru/files/2009/02/bones.swf. The downside is the engine is a commercial project.
I've played around with Papervision3D myself and found it quite easy to use. I don't know if it (or Flash) does OpenGL currently, haven't been keeping up on that one properly. There is a related post on Stackoverflow though.
I recently had a chat with a friend of mine who works for a games company that has a history in Flash and 3D. He told me that they are moving more and more into Unity and talked very highly of that.
If you are interested just overall what's available or in the works then there is also the WebGL project which is supposed to connect straight to the OpenGL hardware and thus be very fast, but so far I think the only browser that supports it is the Chrome's developer build Chromium so not really a distribution option yet, but could be fun to play with.
Last there is of course Java with it's OpenGL bindings. One option would be to use the Processing libraries to abstract the OpenGL setup. I've done this myself although for a desktop application but it makes managing everything easier if you just want to try stuff out.
WPF can do 3D within certain boundaries, so if cross-platform compatibility isn't an issue, you can build an xbap. You'd end up either writing your own bones library or exporting pre-baked animations from a modelling package, but neither of those is a particular challenge. Then again, it's been a couple of years since I was involved in this ecosystem, so there may be more suitable libraries that would be worth looking at.
There's an old WPF app at http://www.bl.uk/onlinegallery/virtualbooks/index.html that shows one possible approach.
You might be able to use copperlicht which sounds like it might do what you want. It uses webgl which is experimental in browsers at the moment but it might be an interesting option to look into at least.
Demicron's WireFusion is excellent and I've used it to deploy an interactive model of a Scotsman in full highland dress for a client. It's Java based with the full underlying engine accessible and customisable, so potentially extremely powerful. Importing models from Maya or 3DMax is very easy and there's even an plugin-level integration with an excellent mesh reduction tool - Simplygon - integrated right on in there.
Unfortunately there are problems, just not with the software itself...
- It's Java, which only has 75% or so browser penetration. This may be an issue, but then again there is no other plugin for your users to download and interaction with the host webpage is straightforward.
- It's ridiculously expensive. Although deployment is royalty free the cost of the software itself is outrageous. The professional version is $1700 and that doesn't give you full access to the model (although was, just, sufficient to deploy the example above). The enterprise version, which is needed to access all nodes in the Java engine and really unlock the potential of it, is $4000.
- The mesh reduction tool which you are likely to need is another $800 and the company that sells that has a bloody awful licence policy - it's linked to PC, and when I upgraded my PC it took me a half dozen emails before they agreed to give me a replacement licence, initially they were insisting I'd just need to buy a new licence.
Which unfortunately means that I cannot see how this truly excellent system with a lot of potential and a lot of good ideas is ever going to achieve any significant traction. It's been around now for several years and is still virtually unknown. If money is no option, the Java based nature isn't an issue and you're prepared to spend time with it then despite that I would still recommend it as one of the best systems available, BUT if Demicron had any sense they'd be offering this at under a tenth of the price they do or even lower. I've pointed the system at dozens of people who've been wondering about experimenting with 3D models on their (usually e-commerce) websites and all have baulked when they've seen the price.
Still, I strongly recommend you download the trial version and give it a run - that gives you a month at enterprise level to see how it works. As mentioned support is good and the community, small as it is, is great too.
精彩评论