Tag Info

Hot answers tagged

14

The best results I've seen for this when a mesh is decimated. Decimating the mesh attempts to reduce the polygon count with minimal shape changes. The decimated meshes retain their shapes fairly well and this would be ideal for non-organic structures like buildings. Though it even works on organic structures as you can see here: There are a few different ...


9

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

To map your texture once on the mesh, your UV coordinates should go from 0..1 over the whole mesh. But depending on the mesh at hand, this can get really tricky. Since it's a plane, this should be simpler. Just look at the plane from it's "up" direction and assign 0,0 to the top left and 1,1 to bottom right. The vertices in between should be fractions. Eg. ...


9

I can't give you a Unity-specific answer (sorry!), but I can tell how I would solve this. I would generate a bunch of points on a circle using the blue vector. First, what is a circle? Well, a circle looks like this: However, graphics hardware can't really draw perfect circles. You're always going to end up with a polygon approximation: We do this ...


8

What you speak of is called "unwrapping". This is the process of generating UV coordinates for your mesh, so that it will allow UV mapping. UV coordinates are in the range of 0..1, where 0, 0 is the top left of the texture and 1, 1 is the bottom right of the texture. The process of unwrapping a 3D mesh to a 2D surface is something tricky. Imagine a cube. ...


7

This is quite a tricky question. My idea to test if an object has no hole is to check all edges and make sure they all belong to 2 different triangles. If an edge only belong to one triangle, it means it's a border of the whole surface, meaning there's a hole. This could be harder if you have different vertex at the same position (for example to have ...


7

The two are totally different. Marching cubes is a conversion algorithm, while metaballs are mathematical constructs that can be used to represent certain 3D models. Marching cubes is a technique that lets you convert a non-polygonal 3D model (such as one represented by voxels) to a polygonal one. It works by examining cube-shaped chunks of the model and ...


6

Sketchup can export to Collada (.dae) which I know is readable by Unity. Sketchup Pro will export to .3ds, .dxf, .fbx, .obj which gives you plenty of options for other engines. That said the automatic triangulation in Sketchup can sometimes create some weird topography. Not that big a deal if you just want to import some shapes, but if you are doing mesh ...


6

The probably best reference to rendering grass: Boulanger. Also, since geometry shader was mentioned: this techdemo has slightly inferior quality compared to K. Boulanger's technique, but it is stunning in another way since it draws crazy amounts of grass blades and does the culling via the geometry shader and transform feedback, which is a pretty cool ...


6

The best way in my opinion is to write your own parser for .obj exported with Blender or your preferred 3D modeling software. It will really only take you a maximum of one hour and you won't have to worry about distribution/licence issues. Here is a video about this question: http://youtu.be/izKAvSV3qk0.


6

Box2D was written as a tutorial on how to write 2D physics engines. The site contains links to a lot of presentations on how the algorithms work and how to make it efficient. You might also want to look into this presentation done by the Pixeljunk Shooter team, describing how they did 2D fluids. If you are interesed in 3D, read Realtime Collision ...


6

For MMO due to their nature, wide adoption is a must to survive. They need to have a window which enables them to run on mediocre pc. So, no matter how tech progresses forward, MMO should be always the least to take full advantage of it. And poly count doesn't matter too much, if you can cover this up with your art style and/or other visual stuff. For ...


6

The build-in physics engine assumes 1 BU (Blender Unit) = 1 meter. However, you can use whatever you like, and since Blender 2.5 you can also set an explicit conversion to real-world units (properties editor -> scene tab -> units panel). Keep in mind what kind of values your game engine expects, too - most exporters can re-scale the model during the export ...


6

On each object you will choose one or more faces that will be removed. In between these faces will be your connection. Select both objects in object mode. Press Ctrl+J to join the objects into one. Then enter edit mode and change to face manipulation mode. Remove the faces that will be joined. Select them and press X, remember to delete faces, not ...


6

From the no-texture picture, I'm pretty sure the problem is that your cube models have inappropriate normals. You need to tell Blender that your cube edges are intended to be sharp, not smooth — what you have now are cubes that are acting like six-sided approximations of spheres. I don't know Blender so I can't tell you exactly how to accomplish this, but ...


5

I won't refer to any specific formats, but here's points for your "yea or nay" question: Reasons to use custom formats: Speed up loading of your game Can do all preprocessing your heart desires and store the results Support for features not in generic formats Doesn't include anything you don't want to .3ds, for instance, has tons of stuff you'll never ...


5

My question is: Why would you need the mesh itself to do creature movement? Can't you do the pathing calculation on a 3d matrix of id's? I think Minecraft uses a 3d matrix with 4 bits pr block. It also only simulates creatures a certain radius around the player. You could store your chunks in a oc-tree structure, where each chunk is compressed. If you ...


5

I'd say that your main problem is that you're giving meshes non-mesh properties, thus leading to a fat interface. A mesh is a set of per-vertex data and the information about what those vertex attributes means. That's all it should be. It may have some information, like where the "center" of it is and a bounding box perhaps, but that's about it. A mesh ...


5

I have found the solution to this problem of yours. Instead of doing just the following in CreateBoundingBox: BoundingBox result = new BoundingBox(); do this: BoundingBox result = new BoundingBox(); result.Min = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); result.Max = new Vector3(float.MinValue, float.MinValue, float.MinValue); When ...


5

There isn't really a standard format -- and there really shouldn't be, because you're asking about several widely different domains and applications of geometry data and efficient representations will differ for each. That said, there are formats designed to facilitate content interchange. The most popular are Collada and FBX. This doesn't completely ...


5

One example is for light maps. Usually texture space is maximized by overlapping faces which have the same diffuse texture, like the six sides of a crate. With light mapping this would mean that all six sides get the same light and shadow, not to mention it would almost assuredly confuse the light mapper because it can't tell which point in space it should ...


5

I'm not a lawyer, but this is my interpretation: Found in the Terms of Service linked in the footer of the page you linked, this is the notice given to people uploading their content: The Services allow you to submit content, including 3D models in the SketchUp and Keyhole Markup Language (KML) formats. You retain ownership of any intellectual ...


4

Consider your own format only if you can articulate demands that are very unique to your scenario, and even then - (good) mesh formats are extensible and would probably suit your needs. If you're developing in the MS universe there's DirectX's own .X format, which personally I think is very well designed. It supports animation, optional compression, and is ...


4

At least part of it looks like a variabe-length list of the format: (number of entities) [(entity ID) times the number]: 00000001 3100026f 00000001 30000112 -> two lists of 1 entity each 00000003 310001f6 310001f6 310001f6 -> one list of 3 entities What those might mean, though? No idea. It doesn't look like a floating-point number (at least not an ...


4

If by hardcoded vertices, you mean glBegin ... glEnd (OpenGL), or Draw(Indexed)PrimitiveUP (Direct3D), these methods are inferior because they result in the vertices being transferred from system memory to the graphics card every time they're called. If, however, you're putting your vertices into a vertex buffer like you should be, it really doesn't matter. ...


4

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 ...


4

You're referring to two different kinds of avatar editors. Wii's avatar editor is mostly textures with glyph bombing - moving, scaling and rotating different facial features like nose, eyes, mouth etc. The only other features there are how tall and/or (iirc) fat your character is, and these are trivial scaling operations. More complex 3d avatar editors, ...


4

Look into particle physics. Each vertex would be set up as one particle per triangle it is a part of and each would be pushed away from the explosion point using whatever force you want. To keep the triangles from warping as the particles move, add stick constraints for each edge (they're described in the article linked above). When the constraints are ...


4

I'm not sure what is considered the best approach, but one option would be to use instanced geometry - you provide the GPU with a 3d model and a list of places/orientations where you'd like it drawn (preferable in the form of a concatenated matrix), and the GPU will handle the rest via a custom vertex shader. Basically, you create two vertex buffers: one ...


4

If you are using OpenGL, you can use DrawInstanced. This is useful for cases, where you have one model and want to draw it many times (for example grass). In vertex shader you will get unique ID, and according to this ID you can set per model transformation (for example take it from big array of transformation). It's really fast and useful. I think in ...



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