• Advertisement
Sign in to follow this  

OpenGL 3DS Max Models

This topic is 3877 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I need some help in exporting a 3DS Max model's vector coordinates to be used in say OpenGL. Is this at all possible? Also, what are the pros and cons of 3DS Max and Maya...

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by Degorath
I need some help in exporting a 3DS Max model's vector coordinates to be used in say OpenGL. Is this at all possible?

Of course it's possible. You'll have to be a bit more precise on what part you need help on, I'm afraid.

Quote:
Original post by Degorath
Also, what are the pros and cons of 3DS Max and Maya...

Personal taste and price. Maya also runs on Linux and Mac OSX.

Share this post


Link to post
Share on other sites
I specifically need to get a list of the coordinates so that I can render the model. For instance for a cube I would like to have 3DS Max export (into a text file or whatever)

<-1, -1, -1>
<-1, 1, -1>
<1, -1, -1>

etc...

So that I have a list of all surfaces that I need to render.

Share this post


Link to post
Share on other sites
...is Maya or 3DS Max the cheaper one? Do you need a license to use Maya commercially?

Share this post


Link to post
Share on other sites
Quote:
Original post by Degorath
I specifically need to get a list of the coordinates so that I can render the model.

Well, you need to either use an existing 3D export format, or write your own exporter.

Quote:
Original post by Degorath
...is Maya or 3DS Max the cheaper one?

Last time I checked, Maya Complete was the cheapest.

Quote:

Do you need a license to use Maya commercially?

Of course you do. You need a license for both Max and Maya, for all types of usages, including non-commercial (ie. you always need a license, whatever you do). If you're looking for cheaper alternatives, check out Cinema4D, which is surprisingly good. Or Blender, if you can manage to use the GUI without ripping your eyes out...

Share this post


Link to post
Share on other sites
I dont have any experience using 3dsmax, but from what i've heard the support/documentation isnt as good as maya's.

If you get Maya, it comes with a help document that outlines the entire api. That plus some google searches on writing exporters you should be able to write a plugin and just export the model data within a couple days.

It's not to bad writing maya exporters, although it would probably be a lot easier doing what was mentioned by yann and just finding code to import some standard maya/3dsmax output file.

Share this post


Link to post
Share on other sites
I found 3dsmax to be also very user friendly and well-documented. I think it's just a matter of personal taste and preference. If I were you I'd give GMAX or the free trial versions of Max and Maya a try. That way, you can form your own opinion on them and you are sure that that's the app you want. Price can play a big role in that decision too.

Exporting to your own easy-to-use file format can be very easy thanks to Maxscript or using Igame (wrapper for the MAX API). These are both very well documented. I'm not so familiar with Maya, but I think they have similar means to create an exporter. Maya also has the advantage of running on multiple operating systems.

Hope I've been able to help,
Jeroen

Share this post


Link to post
Share on other sites
There is a personal evaluation (PE) version of maya available on its website. If you really get into it, there is also a student edition that will save you a significant amount of money.

And I second Blender. It has a totally ridiculous GUI but it is free and widely liked.

Share this post


Link to post
Share on other sites
Quote:
Original post by DegorathAlso, what are the pros and cons of 3DS Max and Maya...


Maya is in GL co-ords already. With Max you'll have to change co-ord systems. Maya is generally a lot easier to get under the bonnet of it (mel, and the API are far easier to work with than Max script & it's SDK).

Quote:
...is Maya or 3DS Max the cheaper one?


Maya i believe. However XSI is cheaper than both (about £300 for the basic version). It has the simplicity of Max, with the power of Maya, and it's SDK is a dream to work with. You also get the opportunity to script in VB or C#, and it comes with the .XSI exporter and .XSI FTK. Personally, I'd go with XSI if I were you.... but that's my opinion. (The SDK is very well organised, and includes the full source for the .XSI exporter, if you want to go down the plug-in route).

Quote:
Exporting to your own easy-to-use file format can be very easy thanks to Maxscript or using Igame


For basic things yes, however if you need to start getting more esoteric data out, it becomes a right pain in the !@~#. There is nothing positive I can think of to say about Max's SDK - It is the worst SDK of any 3D package around by far. A true mess, in the last week alone i've logged about 6 fatal bugs in it.

As for Maya exporters, I've got a tutorial listed in the tools articles of this site that should get to most of what you need using the API. Once you get the basics, everything works in exactly the same way, so it doesn't take long to get the hang of it.

Share this post


Link to post
Share on other sites
hey

Well I started modelling with 3DSMax for a few years I think, and also used Lightwave3D for a little while. Although I prefered 3DSMax over Lightwave3D, I actually prefer Blender (blender.org) over both of these, and it's free :). Well it only took me a day or something to pickup Blender (thanks to folks at #blender on irc.freenode.net).

Anyhows, you can write python scripts in Blender, and there is this really cool "interactive console" script, which really helps with learning to write scripts for Blender. There are some tutorials online, which are nice to get you started. Well I can probably help you out if you really need it, as I've written my own Blender exporter now, which exports models, skeleton, and animations to my own format :).

But... I would actually recommend you first not worry about coding an exporter, and just make a converter, or loader for a basic model format like the WaveFront .OBJ format. It's just a very basic ASCII format, and you can find docs/specs for it with goog. I just quickly dug up a WaveFront OBJ file description for ya HERE, but I'm sure you can find many more.

I remember there being a WaveFront OBJ exporter for 3DSMax, although I think it might come with 3DSMax as standard now days anyhows. Well you can export to many formats from Blender, but nevermind.

You might also want to eventually checkout the DirectX *.x format, which has a nice design. Although it's a bit of trouble to read, well the ASCII version anyhows. Hmm, I never looked into the binary version of it. I'll give you some links to docs of the format if you are interested.

But yea, I only use Blender now days, and have never looked back ^_^.

edit
Just wanted to say that I can't really say one 3d package is better than the other. Hmm, I think you should try out whatever catches your eye, and find out which one(s) you prefer.

I did remember a trial version of 3DSMax (although this was years back), so I just done some digging, and found the trial version HERE. To my surprise it seems Autodesk now own Maya??? and I see a trial for it HERE.

cya

[Edited by - yosh64 on July 11, 2007 9:59:08 AM]

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By LifeArtist
      Good Evening,
      I want to make a 2D game which involves displaying some debug information. Especially for collision, enemy sights and so on ...
      First of I was thinking about all those shapes which I need will need for debugging purposes: circles, rectangles, lines, polygons.
      I am really stucked right now because of the fundamental question:
      Where do I store my vertices positions for each line (object)? Currently I am not using a model matrix because I am using orthographic projection and set the final position within the VBO. That means that if I add a new line I would have to expand the "points" array and re-upload (recall glBufferData) it every time. The other method would be to use a model matrix and a fixed vbo for a line but it would be also messy to exactly create a line from (0,0) to (100,20) calculating the rotation and scale to make it fit.
      If I proceed with option 1 "updating the array each frame" I was thinking of having 4 draw calls every frame for the lines vao, polygons vao and so on. 
      In addition to that I am planning to use some sort of ECS based architecture. So the other question would be:
      Should I treat those debug objects as entities/components?
      For me it would make sense to treat them as entities but that's creates a new issue with the previous array approach because it would have for example a transform and render component. A special render component for debug objects (no texture etc) ... For me the transform component is also just a matrix but how would I then define a line?
      Treating them as components would'nt be a good idea in my eyes because then I would always need an entity. Well entity is just an id !? So maybe its a component?
      Regards,
      LifeArtist
    • By QQemka
      Hello. I am coding a small thingy in my spare time. All i want to achieve is to load a heightmap (as the lowest possible walking terrain), some static meshes (elements of the environment) and a dynamic character (meaning i can move, collide with heightmap/static meshes and hold a varying item in a hand ). Got a bunch of questions, or rather problems i can't find solution to myself. Nearly all are deal with graphics/gpu, not the coding part. My c++ is on high enough level.
      Let's go:
      Heightmap - i obviously want it to be textured, size is hardcoded to 256x256 squares. I can't have one huge texture stretched over entire terrain cause every pixel would be enormous. Thats why i decided to use 2 specified textures. First will be a tileset consisting of 16 square tiles (u v range from 0 to 0.25 for first tile and so on) and second a 256x256 buffer with 0-15 value representing index of the tile from tileset for every heigtmap square. Problem is, how do i blend the edges nicely and make some computationally cheap changes so its not obvious there are only 16 tiles? Is it possible to generate such terrain with some existing program?
      Collisions - i want to use bounding sphere and aabb. But should i store them for a model or entity instance? Meaning i have 20 same trees spawned using the same tree model, but every entity got its own transformation (position, scale etc). Storing collision component per instance grats faster access + is precalculated and transformed (takes additional memory, but who cares?), so i stick with this, right? What should i do if object is dynamically rotated? The aabb is no longer aligned and calculating per vertex min/max everytime object rotates/scales is pretty expensive, right?
      Drawing aabb - problem similar to above (storing aabb data per instance or model). This time in my opinion per model is enough since every instance also does not have own vertex buffer but uses the shared one (so 20 trees share reference to one tree model). So rendering aabb is about taking the model's aabb, transforming with instance matrix and voila. What about aabb vertex buffer (this is more of a cosmetic question, just curious, bumped onto it in time of writing this). Is it better to make it as 8 points and index buffer (12 lines), or only 2 vertices with min/max x/y/z and having the shaders dynamically generate 6 other vertices and draw the box? Or maybe there should be just ONE 1x1x1 cube box template moved/scaled per entity?
      What if one model got a diffuse texture and a normal map, and other has only diffuse? Should i pass some bool flag to shader with that info, or just assume that my game supports only diffuse maps without fancy stuff?
      There were several more but i forgot/solved them at time of writing
      Thanks in advance
    • By RenanRR
      Hi All,
      I'm reading the tutorials from learnOpengl site (nice site) and I'm having a question on the camera (https://learnopengl.com/Getting-started/Camera).
      I always saw the camera being manipulated with the lookat, but in tutorial I saw the camera being changed through the MVP arrays, which do not seem to be camera, but rather the scene that changes:
      Vertex Shader:
      #version 330 core layout (location = 0) in vec3 aPos; layout (location = 1) in vec2 aTexCoord; out vec2 TexCoord; uniform mat4 model; uniform mat4 view; uniform mat4 projection; void main() { gl_Position = projection * view * model * vec4(aPos, 1.0f); TexCoord = vec2(aTexCoord.x, aTexCoord.y); } then, the matrix manipulated:
      ..... glm::mat4 projection = glm::perspective(glm::radians(fov), (float)SCR_WIDTH / (float)SCR_HEIGHT, 0.1f, 100.0f); ourShader.setMat4("projection", projection); .... glm::mat4 view = glm::lookAt(cameraPos, cameraPos + cameraFront, cameraUp); ourShader.setMat4("view", view); .... model = glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.3f, 0.5f)); ourShader.setMat4("model", model);  
      So, some doubts:
      - Why use it like that?
      - Is it okay to manipulate the camera that way?
      -in this way, are not the vertex's positions that changes instead of the camera?
      - I need to pass MVP to all shaders of object in my scenes ?
       
      What it seems, is that the camera stands still and the scenery that changes...
      it's right?
       
       
      Thank you
       
    • By dpadam450
      Sampling a floating point texture where the alpha channel holds 4-bytes of packed data into the float. I don't know how to cast the raw memory to treat it as an integer so I can perform bit-shifting operations.

      int rgbValue = int(textureSample.w);//4 bytes of data packed as color
      // algorithm might not be correct and endianness might need switching.
      vec3 extractedData = vec3(  rgbValue & 0xFF000000,  (rgbValue << 8) & 0xFF000000, (rgbValue << 16) & 0xFF000000);
      extractedData /= 255.0f;
    • By Devashish Khandelwal
      While writing a simple renderer using OpenGL, I faced an issue with the glGetUniformLocation function. For some reason, the location is coming to be -1.
      Anyone has any idea .. what should I do?
  • Advertisement