On 1 Dec 2008, at 15:59, Erik Buck wrote:

I use Core Data to store large amounts of 3D vector data. I solved your problem in the following way:

I have a "Vector3D" entity that you can think of as an "end point" in your model. My Vector3D entity has x,y,z attributes.

I have a "Vector3DReference" entity.

Vector3D has a "to many" relationship to Vector3DReference which has a "to one" relationship to Vector3D. I can ask any Vector3D for all of its references, and I can as a reference for its Vector3D.

Vector3DReference is abstract. I have derived Vector3DReference for all of the cases where I have other entities with relationships to Vector3DReference. For example, I have a Billboard entity that has a "to one" relationship to BillboardAnchorVector3DReference which has a reciprocal "to one" relationship back to Billboard.

It is common in 3D systems to have a large collection or database of points/vectors and then reference the points/vectors for index or ID. E.g. consider multiple triangles that all share a vertex. When the vertex changes, all of the triangles that share the vertex are updated. Sharing vertex data also reduces the storage required vs. lots of copies of the vertex.

It's most common for 3D apps to pack the vertecies into arrays, and then create index arrays that index into the vertex/normal/tex coord arrays to get at the data. These can then be uploaded so that all the lookups etc happen on the graphics card, and no data need be fetched from system memory when you try to draw.

You should look at glVertexArray and related functions.

Bob
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to