What is the best format to use for 3D characters with the iPhone. I am looking to find free characters and did look at md2 (previous post), however there does not seem to be much free quality stuff about.
All I am after is to have a few normal 3D people walking around on my iPhone. I do have some animated 3ds / x animated characters. I am just trying to work out via what tools and format I should use for the iPhone.
Update:
Keeping this simple how do I get animated .x files or animated .3ds file on to the iPhone?
The md2 example seems like a dead end as can't convert 3ds / .x animated files to md2 successfully with jpg textures .
The choice of the file format does not depend on the target plattform but on the capabilities provided by it, the amount of thrid party libraries you want to use or the effort you want to put in writing a custom file loader.
There is no such thing like the "best file format".
Related
I require guidance on how to set up a specific server-side application.
I have a linux server (preferably) which the application will reside in. I also have Maya running currently on Windows which will be used to create 3D environments and objects.
I have a good 3D modeller and character animator and would like to translate some of his work to server-side automated scripts by adding text or objects to the animated files.
The outcome should be a server-side application that can receive command-line arguments such as
application.exe object1 environment1 text1
or just an environement and text
application.sh environment1 text1
and will result in producing an image file or series of animated images that can be converted to an animated gif.
Alternatively, I am open to using other frameworks such as OpenGL, WebGL, HTML5 etc. to produce an image or series of animated still-images that will be initiated by a command-line call.
My goal is to produce something that can create 3D images without starting up any GUI, that can take models and environments from 3D programs such as Maya, Cinema4D, 3Dstudio Max etc and preferably something lightweight that can handle an output of 100 to 1000 images per minute.
Many render engines support command line render in standalone mode. For example: Mental Ray, V-Ray and so on. But they are pretty expensive. Instead you can use some free software like Blender it also supports command line renderer. In case of WebGL you can use something like SlimerJS
It should be pretty simple to set up.
Here is a partial list of renderers you might want to try out:
3Delight
Pixars Renderman
Gelato
Pixie
Aqsis
Yafaray
Mentalray
Mitsuba
LuxRender
VRay
Arnold
Maxwell
Octane
RedShift
Indigo
Indigo RT
Keyshot
Cycles
Corona
POV-Ray
Kerkythea
VirtualLight
Sunflow
jrMan
Radiance
Some free some not so free.
I know that APNG is an extension of PNG, while MNG is more of its own format (albeit developed by the original PNG developers). MNG is barely supported in any browser at all, while APNG almost only has native support in Firefox (for various backward compatibility- and decoding-related reasons, it seems).
Except all of these behind-the-scenes things, what are the differences between APNG and MNG? Does one have features the other doesn't (for example, storing only parts that are modified instead of always whole frames)? Does one have better performance or file size than the other?
APNG can create a new frame by replacing the entire image or by overlaying or blending a smaller image over part of it. To display a "pong" game you'd need a new image of the ball in each different location. APNG has essentially the same capabilities as animated GIF, but also allowing 24bit RGB and 8-bit alpha.
MNG can do that, plus it can also retrieve an image that was previously defined in the datastream and place it over the previous frame in a new location. To display your "pong" game you'd only need to transmit one image of the ball and use it like a sprite.
Much more detail is available in the specifications:
apng: (https://wiki.mozilla.org/APNG_Specification‎)
mng: (http://www.libpng.org/pub/mng/spec/mng-lc.html)
Suppose I was writing a game which involved a relatively complex geometric game board. Something like a dartboard.
I would want a view to display the game state. What is the best way to implement that view?
For example, should I draw the board off line in something like photoshop, add it as a resource, and then show it using a UIImageView? Or should I use drawing primitives and essentially draw the board programmatically?
What are the trade-offs?
If I do use an image, what format should I prefer? .png, .tiff, .gif, .jpg?
Thanks,
John
If you decide to go the image route you should use png. Displaying any other format you pay a performance hit (as mentioned in the comment).
To decide between building photoshop vs drawing via code you need to decide how much time you want to put into learning Quartz/CoreGraphics. Apple's docs:
http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html
If you already know Photoshop then building the graphic there is probably much easier, if you don't then learning Quartz is prob a less steep learning curve than Photoshop...
If it's a simple board, it's easy enough to draw it into the view, which gives you the possibility of easily manipulating it in interesting ways. Drawing in a view is done with a set of postscript like primitives.
For something more fancy, photoshop might be the way to go.
PNGs are preferred.
Im developing an iPhone game, and I want to know how to draw vector art, right now Im drawing all my art in Illustrator + Photoshop, it looks ok, but what I do is to save my vector art to png and then I use it in my game.
What I want to do, is to use my vector art instead, how can I do this?
Thx.
(I've read that I should use Quartz2d and Core Animation.. but dunno what those are or how to use them tbh)
You should start by reading the Quartz 2D Programming Guide.
Quartz 2D is the underlying drawing technology in iOS, and is vector based.
If you plan to use art drawn from illustrator & photoshop you may have to jump through some hoops to turn your assets into something you can draw directly.
You may consider exporting your assets to pdf and using the Quartz 2D's pdf support to draw them. If it's not quick enough, you may yet be able to use it to cache stuff to bitmaps. I haven't tried this myself, but it's certainly what I'd try first.
Good luck!
I want to draw different 2D objects in OpenGL for example a path/Road ,is there any program i could draw them using a GUI then transfer them to points so i could use them in my program ?
I have personally used Inkscape to do this. If you save your data as SVG, then any standard XML parsing library should make it relatively easy to extract your data. Even better, you might even find an SVG parsing library that will make it even easier. I created one in Python, based on the work of Martin O'Leary of supereffective:
http://pypi.python.org/pypi/svgbatch
It's very fragile and incomplete (it barfs on svg elements it doesn't recognise) but if you stick to the SVG elements it recognises (closed polygon paths, no curves) then it works, and it might help you put together one of your own.
Somewhat heavy handed, but you could use Inkscape to create SVG files, and then just parse out the path vertexes.