3D application questions!


#1

Hey guys,

The last few weeks i’m trying to get more inside info on 3d apps and how they are constructed and i must say i haven’t found much.

So i still have a lot of questioning marks open on my sheet.

In comparising with a 3D game, which has a engine, do 3D apps run on an engine as well.

I really would like to read more about this, how apps are constructed and how the f.e. viewports work, how you make 3d space with a grid and messurements.
I whent to the local bookstore here to find some books about it but i haven’t found anything except from Game Engines with DirectX and how to work with OGL, i bought four books about 3d programming but they are all into GameDevelopment and there’s nothing about 3D apps f.e.

So if anyone has any resource about this, anything is welcome.

Cheers,
Galo


#2

I too have been considering writing a 3d modeler (/animator in future if time is there and I don’t get distracted). I was writing quite quickly for several days after designing for a while, I need to design some more but something came up and I’ve been busy) Basically I’m telling you all the things that I have done and/or plan to do. My questions are rhetorical by nature so you don’t have to answer them.

I don’t think the basics of them are that complex, OpenGL + widget set + algorithems & data structures + communication methods (I/O and protocols) + more minor things like image handling… are what you need to know. Learn to use OpenGL and you can display models and stuff to the screen without too much difficulty, learn a widget set’s API and you can handle buttons, menus, user generated and other events etc…, there should be libraries of data structures no matter the language (e.g. STL for C++, haven’t used C# yet so I couldn’t help you there), use them at first when appropriate, if you really want to you can replace them with your own latter. Design stuff throughly before getting started, keep things modular and clean for easy improvements after you get the basic structure working you can go back refactor and then improve upon older stuff.

If you usually use a single 3d app I strongly suggest doing all the standard tutorials you can in the various 3d apps that are out there (esp Maya, LW, 3DS, Wings, aside from Wings I believe these all have decent learning editions and are somewhat different in approach), this will give you a broader view of how things can be done, so you aren’t stuck in one pardigm. This may take a few days but should be worth it.

If you are supporting plugins how do you plan to do them, how pervasive will they be? Will you build them into the program each update, DLL style, communicate with whole seperate apps, allow for scripting. This choice will determine what you need to accomplish this aspect. e.g. scripting could use a standard language or you could grab lex and yacc to help out, making each plugin a whole seperate app might require a communication system/protocol, I suggest not using TCP/IP (like LWdoes :rolleyes: ) but that’s up to you of course.

What platform(s) do you plan to support? That will help determine the widgets set and a few other things. (I’m using wxWidgets which seems pretty similar to MFC)

Building in animation from the start or waiting till later? (I’m waiting till later but I have thought about how to include it so as to reduce future work in that area)

Look at file formats to decide which is appropriate to your liking, even if you use your own make sure it can be converted to one of the other big ones easily and prefably losslessly.

Unfortuanatly I have to go, I might come back and finish this and spel chek it later.


#3

Well, im a graphic artist for some years now, and also have dome a lot of programming, pascal, c++, java, php, actionscript, so i know programming and modeling, i worked with c4d, maya, max and LW, nendo, wings, etc. to see eacht package, i don’t know them completly except from c4d.

So im verry intrested in programming graphics and programming a modeling package just for the fun and experiance of it, but i wanna do this correct not start and quitte cause i don’t know the heck im doing.

So first im planning on doing a lot of research, i’ll be using C# and allready dounf some rewritten tutorials to c# on NeHe about openGL.

So first i have to do my planning, get everything on paper, sort out all the issues that come with it.

I have a long way to go, just have to figure out how to walk it best :smiley:


#4

Actum Ne Agas: “Do not do a thing already done.”

The very-compelling reason for game engines to exist is that most of the infrastructure is “a thing already done.” It need not be repeated. The same is true of modeling. Far better that you apply your skills toward the extending of an existing program, like Blender (http://www.blender3d.org) than to apply it toward a morass of pointless re-invention.

“Been there, done that.”


#5

True, unless you could care less if what you do is constructive.

True if you are not doing something simply for the fun, challenge, and experience of doing it.

True if what is out there is of excellent quality. (Think 3DS -> Maya, sure 3DS was good but those who went on to develop Maya realized it could be better, so they made something better, not that I alone can touch any of them, well Wings maybe :D, also maybe more stable than LW, but that’s not saying much as HelloWorld is pretty stable compared to Mozilla… no flames for anything in this paragraph please :thumbsup:, these are all good apps and my facts may be wrong)

Suggest something equally interesting, challenging, fun, and informative + constructive and perhaps I’ll pursue that, till then I’m working on this.

Plus I plan to keep around the GUI framework that I’ve been working on as a template for any future project that needs one.

cheers :slight_smile:


#6

Yeah i looked at the source of blender and i must say it’s a mess, so many files you can’t even tell which one is which.
Then i downloaded wings3d but apparently that is not completely written in c so that is not any good as well…

I also found some opengl samples with c# and i must say they are impressive and fast, also DirecX but i rather use openGL for platform reasons.

And about re-iventation, i need to write it from the ground up otherwhise it’s not gonna teach me is it…

Allready i wrote a lot of things on paper
Maths & Algorithms
Liniar Algebra
Nummerical Methods
Quadernions
Matrixes
Librarys
Data Structores
Point order

These are just mockups to search on information, i don’t know if there are more but i’ll soon find out!


#7

opengl for platform reasons? I know there is mono…but it doesn’t support winforms or the .net library and I think it won’t in the near future.

so why not use managed directx? I think it’s nice and will make many things easier.


#8

Not really contributing anything here… I don’t know anything about programming! BUT I have some really good ideas for an interface. So I’d be happy to collaborate with anyone on this once they get to that point. Or maybe I should start learning some programming myself…


#9

Hey DX is exactly what i had in mind of doing, the only thins is the vieport will be OpenGL so i have to find a way to let the 2 of them talk together.

But as i was wondering, for example, the GUI of Lightwave, how is that done, what environment do they use for known packages, i did a lot of research and fount out you could do it with GDI+, OpenGL or DirectX, couple more i think but these are most common.

So, the GDI+ is only working on WIN2000/XP, but DX as well, OpenGL on the other hand is compatible with any platform, but in my opinion difficult to programm an GUI with and harder to handle by the processor and memory.

Let me know if im off the right track here but im just gathering as much information as posible to get a clear picture.

Cheers,
Galo


#10

why do you need opengl? you can make your viewports with directx

and why do you matter if gdi+ (which I won’t suggest) only works with windows…I’m sure you will use the .net library (winforms) so you are not platform independent anymore.

at the moment most is done with c++ and opengl (I guess lightwave too), but since you are using c# I would recommend directx.


#11

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.