Tag Info

Hot answers tagged

33

Valkea's forum link is a good resource. Careful though as it may be slightly confusing as I think everything which comes from the POV of someone else's problem (and misunderstandings!) has the risk of being - Animation in Assimp is straightforward so don't let anything put you off! Disclaimer: I use AssimpNet which is a managed wrapper around Assimp, though ...


10

COLLADA was over-complex in my opinion. Suffered from the designers trying to make it handle every conceivable combination of 3D asset; e.g. every possible vertex/index format and configuration. Sounds great but in practice this placed a huge burden on any piece of software that needed to read the format. It didn't help that every supposedly compatible ...


9

I usually keep my own format internally, and a standardised format externally. The artist only sees the standard format and my engine can only load the optimized internal format. This way you won't have to have model loading code in engine, it can all be done in some nice high level language as a compile step. I usually use a existing build system that ...


5

These terms are not set in stone and every company and every piece of software may use them slightly differently. However, I believe that the most common meaning of "material" is just what you mentioned, i.e. an effect together with specific parameter values and textures to be bound to that effect, and applied to specific triangles or meshes of objects. ...


5

Concerning the tools, my experience is that the popular solution to access .dae files is collada-dom. It only parses the xml and give you access to the tree structure. Originally developped by Sony, it is now an open-source project (and the reference implementation). Recently, opencollada seems to get some attention, but I've never used it. It comes with ...


5

Mentioned many times on the topic of 3d model loading, AssImp is a very easy to use library that reads both .blend and COLLADA files as well as many other formats. You can use it to load models directly into your engine or use it as a conversion tool to convert to your own internal format. I think it would be a good library that suits your needs.


4

I was waiting for a more experienced answer, but as nobody seems to have anything to help you, I will give you the informations I found. Obviously there is a lack of documentation about Assimp animations and except if you dig into the Assimp code directly it seems that there is no available informations about this precise point. But I did found this forum ...


4

You can look at the assimp docs here: http://assimp.sourceforge.net/lib_html/data.html and http://assimp.sourceforge.net/lib_html/structai_scene.html An asset loaded by assimp is assembled into several data structures. At the top there is the aiScene, which contains both a list of aiMesh mesh data, and an aiNode hierarchy for placing instances of the mesh ...


3

There are scripts available that do this. Though they may be a bit out of date. Perhaps not the simplest method, but you can write your own python script to export them. Using Blender scripting you can enumerate the objects in the scene and then enumerate through all the curves of a particular bezier curve.


3

The Collada exporter in blender does not support what Collada calls "animation clips", so only the current animation will be exported. You have a few options I can think of: Fix the exporter (or convince someone to do it for you). Write a script that loops through the actions and exports a new file for each action. Use the NLA editor to create a track that ...


3

At least one case that this can happen is when you have multiple smoothing groups on an object. So a vertex can have as many normals as it has faces with different smoothing groups sharing it. http://wiki.polycount.com/SmoothingGroups


3

You can use assert(_CrtCheckMemory()); to check the whole heap for corruption. By adding lots of those tests you should be able to narrow down the line of code that causes the corruption.


2

A C# tool is your friend here - you can quickly write something using the .NET System.Xml framework which iterates over the input file, spots parts you don't like, and eliminates (or tweaks) them from the document before writing it back out again. Effectively that's what XSLT does, but in practice I've always found it to be easier to write C# code to ...


2

Concatenate (multiply together) your local transforms to get a world transform for each joint. Invert each world matrix.


2

I know this topic is flagged as 'solved', but IMO you should look into FBX. Autodesk is using that format, and it's the exchange format of all the major 3D programs. So don't bother with Collada. It's bloated, unintuitive - and not backed by the major players. Which is Autodesk - they're are buying pretty much every 3D app out there. Autodesk FBX SDK: ...


2

I think COLLADA would/could be much more useful if it actually had a standard and open implementation for reading and writing the format, in addition to the fairly scary XML definition. Its power is also its failure - the ability to describe almost anything, and in a multitude of different ways, sounds great from the point of view of exporting but is a PITA ...


2

Have a look at the opencollada site. The SDK is licensed under MIT license and should get you a good start. If you are planning to make a game (and not just a viewer app), you should run the converter offline (during the build) and load your optimized model format during runtime. Parsing collada is inefficient and shipping collada files is just wasted ...


2

I started by comparing my values to the ones I read from Assimp (an open source model loader). Stepping through the code I looked at where they built their bind matrices and their inverse bind matrices. Eventually I ended up in SceneAnimator::GetBoneMatrices, which contains the following: // Bone matrices transform from mesh coordinates in bind pose to ...


2

Is node null (or otherwise invalid)? Are you sure getCharData doesn't modify the object it's called on?


2

By default, if you simply pass untransformed vertex data directly to the GPU via OpenGL, the visible extents of the screen are from -1 to 1 along both axes. This is true of any OpenGL device, not just the iPhone. Also true of any OpenGL device (including the iPhone) is that you can then adjust OpenGL state (the viewport, the transformation matrices, et ...


2

Try this: import bpy myCurve = bpy.data.curves[0] # here your curve spline= myCurve.splines[0] # maybe you need a loop if more than 1 spline print("\n======================") for x in range(len(spline.bezier_points)): print("Point " + str(x) ,spline.bezier_points[x].co ,spline.bezier_points[x].handle_left ...


1

Are those textures projected? If so make unique, triangulate n-gons and then export. 3D Warehouse models typically acquire their textures from 2 sources. Google Street View and Google Earth. The textures are typical projected at the geometry so the UV coords are skewed because it is a viewed based mapping. When you mix projection with n-gons and then ...


1

Turns out you can use "Bake animation" to get an action back out of the NLA editor.


1

Exporters are often very finicky. Try exporting nothing but a basic cube mesh. If that works, you know the issue is something within your mesh. Unfortunately, this part is hard to give a definitive answer on. Basically you have to go over your mesh and ensure there's no weird parts that could cause the exporter to crash. This could be disconnected vertices, ...


1

You have to extract the vertecie information. This data is containd inside the assimp model (i used an older version of assimp when i did this ) And from there you have to insert that data in to your buffer, to create a OpenGL buffer so you can use that one to draw the model. http://ogldev.atspace.co.uk/www/tutorial22/tutorial22.html Thats probably a ...


1

since i'm not using blender i can only guess :) but i think you would have to "bake" it into one single action, say you have the first animation from frame 1 to 10 and the second animation frame 20 to 30 or something and then define in the game engine where to start and stop! sebastian, xsheetgames


1

I see you are trying to parse a COLLADA file by hand. I was once as young and naive as you. Welcome to our shared hell. My COLLADA loader is 2837 lines long (one .cpp) and it doesn't even support half the spec. Before we continue, I simply must point you to this excellent resource loader: ASSIMP. It has a silly name, but it will load any COLLADA file ...


1

This is a common problem with many formats exported from modeling tools. It shows up in FBX as well. The simple truth is that you need to take the triangle list as master, unwind the individual indices, and construct a completely unindexed mesh. You can either leave it that way or recompute the indices by vertex deduplication. There's no way around this step ...


1

Its the way Collada indexes things, Collada indexes the vertices, normals and other information separately, to save space in some cases. For example when you store a plane with allot of vertices and also allot of normals all pointing to the same direction, In the way collada stores the information it only has to give you a array of normal indices all point ...


1

I don't think COLLADA makes for a good format to work with. The standard is too open and seems to be implemented differently across different software. So some features might not be readable by other software and vice-versa. Ideally you would have your working-assets in a proprietary format, eg. the one of the 3D modelling/animation package you're using. ...



Only top voted, non community-wiki answers of a minimum length are eligible