Is there any high level 3D engine capable of displaying movie texture on both iOS and Android?
This would be for a project close to a virtual museum with video playing on some walls. The engine would also be able to import 3D model from 3DS Max.
I checked major 3D engines but did not find the ideal one. Unity3D for instance does not support movie texture.
I am wondering if I can avoid coding low level OpenGL code on each platform.
Unity does not support movie textures on mobile out of the box, but this Mobile Movie Texture plugin works quite well:
http://u3d.as/content/defiant-development-pty-ltd/mobile-movie-texture/2w1
p.s. I think it requires Unity Pro
Unity3D supports movie textures. Update: only for desktop, it seems.
An alternative that does appear to work is Bink from Rad Game Tools. This is just a (proprietary) video decoder library though that you'll most probably have to incorporate into your own engine (I believe I'm right in saying that you can specify the memory buffer the video is rendered to, so once you have the frame you can do whatever you like with it).
Related
I am using Qt 5.9 based app which runs on embedded linux & android. The application processes real time data using OpenGL ES 3.0 & displays OpenGL textures at real time. I am displaying at the rate of 30+ frames per second which makes it pretty much real time & appears like a video.
I need to save an mp4 from a 30 to 40 frames that are displayed using OpenGL textures. As I understand, I can leverage Qt Multimedia to do this. But I lack the knowledge of how to do this. I am trying read & understand the how part from links like here & here.
One the mp4 is saved, playback can be done using QMediaPlayer as explained here. That looks darn simple. But I am struggling to figure how get my OpenGL textures saved into a .mp4 when I need them to.
So, How do I save a .mp4 video out of the OpenGL textures that are displayed on a QML item?
Pointing out to any basic example that exists would also help.
I don't think Qt will do you any favors when it comes to content creation, Qt's multimedia facilities are purely for content consumption purposes. You can play MM, not make MM.
You will have you explicitly use one of the many available MM libraries out there - vlc, ffmpeg, gstreamer, libav to name a few.
I need to play a video on a OpenGL surface. I think I will need to render each frame of the video to a texture in a loop and then render it via OpenGL. is this possible under ios and/or android ?
It is possible on iOS, but it's pretty tricky business to get it to run fast enough to keep up with a video stream.
There is an old demo app from Apple called ChromaKey that takes a CVPixelBuffer from Core Video and maps it directly into an OpenGL texture without having to copy the data. That makes performance MUCH better, and is the approach I would suggest.
I don't know if there is more current sample code available that shows how it's done. That code is back from the days of iOS 6, and was written in Objective-C. (I would suggest doing new iOS development in Swift, since that's where Apple is putting its emphasis.)
I have written an app which loads, saves and displays 3d models. They won't have sophisticated Textures but propably extreme meshes (+200MB). The engine i am currently using (jpct-ae) runs completely in java which is slow and very limited on RAM.
So can anyone tell me or point me to information, how to use libGDX as JUST a 3d engine (render, transformations...) and not as full blown gameframework. I want to render to only one view on an layout. Does libGDX store its mesh data to c++/jni RAM or to JVM?
Can anyone please tell me that will libgdx supports 3D like Unity3D and please tell me some games which are built on libgdx 3d if possible.
Your question is pretty general, but the libGDX 3D API is pretty stable, easy to use and has many features.
It can not only render basic 3D shapes like spheres and boxes, but also load complex models via .obj or .fbx files. It supports animations, normal and specular maps, a basic lighting system with point lights and directional lights. The latest version also added a high-performance 3D particle engine, including an editor to create those effects.
Furthermore it supports bullet physics which is a 3D physics engine which works pretty well with the 3D API of libGDX.
I'm currently developing a 3D game myself and I can only say that everything works really nicely. The performance is great and with my old laptop I can render several million textured tris with lighting at 60FPS. One example of an already published cross platform 3D game made with libGDX is Delver (its graphics are very simplistic though and do not show the capabilities of libGDX that well).
I have some 3D objects stored in 3D editor application specific (Blender/Solid/3DS) file format exported to OBJ+MTL files with optional textures in PNG/JPG files.
I would like to load these objects in OpenGL ES application on mobile phone (today for Android and in the near future for iOS too). And I don't want to write my own OBJ+MTL (or any other 3D format) parser. So I would like to use some 3D engine with support for loading 3D models (from OBJ+MTL or exported to 3D engine specific header/resource files from within my 3D editor) to achieve this.
I have some experience with Min3D framework, but it's a bit buggy at loading the files (also won't load material colors, only texture images), doesn't support OpenGL ES 2.0, and Obviously doesn't run on iOS.
I've seen the popular blender export script for C header files (http://iphonedevelopment.blogspot.com/2009/06/using-3d-models-from-blender-in-opengl.html) but I believe it doesn't support material color export (when texture image is not used).
Lately I've started to look at Unity 3D, but it seems to be a lot more than I need. I would need to pay for the features I won't be using (animation, game specific features, etc.) and also I'll need to integrate it with other parts of my mobile application.
What 3D engine/framework would you recommend ?
To summarize the requirements:
Ability to load 3D models + textures from OBJ+MTL(+PNG/JPG) or exported from 3D editor application (using plugin ?), with support for colored materials without textures
Supports Android (additional iOS support is very welcome)
Supports OpenGL ES 2.0
Free / Cheap
Easy integration with native code (Java is preferred for Android)
OpenSceneGraph supports loads of model types. I haven't tried to build any mobile apps with it, but there's a lot of chatter and some tutorials on the forums/mailing list about doing it, for both iOS and Android. Open Source.
http://www.openscenegraph.com
http://forum.openscenegraph.org/viewtopic.php?t=10076
EDIT: as a side note, if all you want to do is view your models, and you don't mind storing them in the cloud, you can just upload them to SketchFab:
http://sketchfab.com/faq
And view with Firefox mobile. iOS support would come whenever iOS browsers support full webGL.
They're using osg behind the scenes to read models, and I think OSGjs for front-end.