Software for the Realtime 3D Modeler?
"There are other problems too: modelers that have no concept of polygon strips/fans or that make it very hard to avoid generating polygons that will never be seen (the inside surface of a pipe for example). Even if you have the target 3D hardware on the modeling machine, it's rare to have the modeling windows look anything like the finished product. I'm wondering if anyone has run across a good solution to this. Possiblly a modeling package more geared to hardware capabilities, or some way of adapting an existing modeler to make it more hardware friendly by blocking or modifying features that 3d hardware can't handle. It would seem such a package could be cheaper too, since it wouldn't have to support as many fancy features."
Take a look at MultiGen & SGI's Performer
-----
For great justice!
Are you looking for a modeller that will render as you work in realtime, or have a gamelike renderer that will render out in real time?
It does sound like you're looking for something more in-tune with hardware realtime rendering, am I correct in thinking this?
Most programs have an OpenGL/D3D/etc realtime modelling mode, so I guess what I'm asking is, are you looking for something that can give you an accurate representation of what it will look like when rendered in game, using a card's built-in shaders? I guess I'm just getting confused on what you mean by mapping. Are you talking vertex/polygon level procedural mapping, or texture mapping, or what?
I'm also asking these questions so I can guage what a low-poly/gaming modeller is looking to accomplish. All my 3d renderings are done in trueSpace, using raytracing or a hybrid of radiosity/raytracing.
WWJD.... for a Klondike bar?
Both LW and MAX have gotten better in ways that you've described. MAX previews motion blur in OpenGL (Which as some of you know is VERY expensive to render...) and LW now does lens flares, hypervoxels, and fog in OpenGL as well.
LW's VIPER is pretty interesting too. What you do is you do a test render of your object and the resulting image is stored in a buffer. Then, let's say you want to play with the surface texture on it. Fire up VIPER and it shows you a low res version of the image you just rendered. When you modify the surface, it re-updates that image preview, but it only re-renders that particular surface that you're playing with. It's much faster feedback for getting a feel for procedurals than a full bore-render.
Is it real time? Ehh.. no. It's close. 2-3 seconds maybe? I agree with the author, though, that more could be done. Why couldn't they convert a proceedural into a texture and present that in OpenGL?
The good news for the author is that the industry (not just Newtek and Discreet) sees the value in having more real-time feedback. The next couple of major releases for the main packages out there will be very exciting for just that reason.
nobody has converted quake into some sort of modelling program yet?
GoatPigSheep, the 3 most important food groups
i should point out that the most of the time consuming rendering on those apps is for nurbs, not pols
Actually, it depends on the modelling method/output of nurbs.
From what I understand, nurbs can often be beneficial in some rendering situations, or their outputted/exported polygonal equivilants. However, from what I understand again, this is not for realtime, so my point may be moot.
WWJD.... for a Klondike bar?
The new version (6) of Caligari's trueSpace has "texture baking". It can translate procedural textures into mapped UV surfaces. Pretty nifty set of tools too. Windows only.
I write engines now, but I spent a good 10 years as lead programmer of tools groups at various game companies (I distributed the first public reverse-engineering of 3ds file format, I think for version 2, had fun explaining that to a room full of lawyers... :)
I'm still dealing with these issues today. My current employer is starting a major project (MMORPG), we spent a decent part of the last year researching art tools. Ended up picking Maya, as its got a great C++ API that exposes darn near everything, as well as a great C++'ish scripting language for the technically inclined artists to use. (Disclaimer: I have no financial interest in Maya, etc...)
The problem is that it takes years to tune a decent editor - I started out in CAD/CAM/CAE and even I know better than to try and editor unless I've got a few man years to dedicate to infrastructure.
Unless the budget absolutely cannot handle it, I'd recommend taking Max or Maya and extending them with your own tools. Maybe even make some of them open source, like Pierre Terdiman did with his Flexporter system for Max, which saves a good man-year of work on 3ds Max exporter work!
Take a look at gmax and Milkshape3D
if youre looking for a cheap solution, try mosh http://www.jimbomania.com/mosh.html it uses blocky opengl primitives (glutSolidCube() & Tetrahedron & Sphere() ) in pseudo-opengl code, saved as text. you will have the disadvantage of using an unfinished piece of software, but the advantage of heavy influence ofver the future design of the code/interface.
Blender is in the process of becoming open source, and would make an awesome tool for game modeling. Blender had a built in game engine and modeling tools.
Visit Blender3d or elYsiun and help open the source on this program. It could become THE gaming modeller for Linux.
*If* you are just talking about modeling, then there are some possibilities. www.wings3d.com is a free version of Nendo and I *think* it's open source. It is written in ERLANG, however. If you are talking about the full range of 3D asset generation (models, textures, animation, etc) then there isn't much you can do. As for Max, Lightwave (and all the others) becoming more game friendly... Doubt it. Those companies are all trying to make their 3D app "all things to all people". That was lies madness.
3DFilm does realtime modeling AND video compositing. I use it a ton....
They might be going Open Source, but they have made some demands like they need to get $100k (Euro, ~95k US) in user donations before they open up the source code...So its not a sure thing.
I work mainly in film and commercials, but I do work on a few games per year (modeling/texturing/animating characters). I don't see whats worng with the current tools. 3dsmax supports both OpenGL and D3D in the viewports. :)
As for your problem with procedurals... Well, procedural textures are, for the most part, 3D textures. Which means you do not need UV coordinates to map an object with a procedural. You can, either by script or plugin, "bake" the procedural into a bitmap and use that.
You also have options to send data in any format you choose to another viewer. There are tons of options available. I dont see why choosing a more limiting system would make life easier. As porjects change, you may very well like the versatility your "fancy" application affords you.
Now, now. It was scored offtopic because people didn't think about it. But yes, a 3D gaming engine can be used for scripted animation, though I don't know of any specific examples where it's been used as such.
because it shows very little in the way of "common sense" thinking...... 3D modelling apps are used to create models in Quake, not the other way around. The poster doesn't show any understanding of the topic going by the one sentence posted.
- HeXa
Information on Blender's current situation can be found at the blender3d website, or at elysiun. As for the money needed to free the sources, this dosn't have to come solely from user donations. Ton has quite a few ideas in mind, and Siggraph is coming up here soon. As for it's realtime and gaming capabilities, they are extremely promising. What will be interesting though, is to see how the developement of the gaming engine is handled upon open sourcing. There seems to be a definite split between those who are into gaming, and those of just modeling/animation. Also, another interesting point is, they had blender running on an iPaq before NaN went under. This opens up the future for blender and mobile type applications.
Hmmm... lets look at the phrase "hardware capabilities"
"Hardware capabilities" doesn't have a single definition. Are you talking hardware like the Radeon 8500? (which is pretty sweet and fairly common among gamers) or are you talking hardware like the graphics chip in the Intel 810 motherboard set? (which is pretty weak but extremely common among the general public). Believe it or not, a huge number of games are still spec'd to run on low-end chipsets like the i810 because thats what consumers own. Sure, everyone you know has an 8500 or a GeForce4, but you're not a normal person if you're here reading slashdot. Normal people have old machines with slow graphics cards. A modeler that was designed for 8500 cards would be next to useless on a project aimed at i810's, and vice versa.
More importantly, "hardware capabilities" doesn't have a static definition. Graphics hardware is subject to Moore's law (except that the doubling time is even shorter than for CPUs). In the 12-18 months it would take you to write a high quality hardware-oriented modeling tool, graphics chips would run through at least two, possibly 3 generations. Do you design for the current hot chips, since those will be fairly common by the time your software is ready? Or do you try to guess what hardware will do in 18 months even though only a few hardcore gamers will own cards with those features when your tool is released?
Lets assume you've figured out whether you are going for serious gamer hardware or mass market hardware, and you correctly predicted what year you were targeting and guessed the feature set perfectly. Lets even assume you've written it and finished debugging it. Six months later (when the next generation of chips arrives), do you (a) throw away all your work or (b) invest another 6 months completely revising it because NVidia just announced some whizbang new feature that your user interface can't support?
Chances are, whatever you decide, pretty soon you'll find yourself doing exactly what Alias|Wavefront and Discreet and NewTek and etc. are trying to do: build the very best modeler you can, and let the hardware vendors catch up. You don't need that many more doubling times before all those slick features are "hardware capabilities."
Have patience.
As a proud registered user of milkshape I'm very happy with it, it can even export models in ASCII format for very simple loading into homebrew apps, the ms3d model format also saves surface specularity, ambient color, diffuse color, etc. And has smoothing groups..
Klowner
Doesn't nvidia's CG fix most of your problems? They (nvidia) are creating plugind for maya and 3dsmax so that one can see the final product in the viewport. If you dont want to wait for Nvidia, try out Softimage|XSI as it comes with some very robust tools for creating shaders for use in video games (yes it really looks like it would in your game). Check this out for more info: http://www.softimage.com/Products/Xsi/v2/features. htm#rts
Mods, please read this entire post before moderating, I get to the point in the last paragraph.
Just because a poster may not be verbose or even have a full understanding of the topic matter doesn't make a post off-topic. Instead, it is an opportunity for geniuses like yourself to give input. What you are reading right now is what we like to call a "discussion forum", where people come to talk. This occasionally means intelligent discourse instead of the tripe you're serving today.
As far as the subject at hand, I think that using the de facto game engine as the basis for a modeling tool isn't out of the question at all. You already have an API to move objects in three dimensions. You'd have absolute WYSIWYG if you used the quake engine as the basis for the game. Does "common sense" mean never using a readily avaiable codebase for a novel purpose? Bah. If you are making models for games, then why not use a hacked out game engine to do the modeling, like many game companies are doing internally anyway?Error: PANTS NOT FOUND. Press <F1> to continue.
3ds max r4 has plugins available that allow you to create d3d8 pixel shaders on materials and view them in viewports. i presume that's what you're after?
really though, i think your question is silly because you want a procedural modeller, not a polygon based one like versions of 3ds prior to it becoming 3ds max. procedural modellers allow you to go back through the stack and modify parameters, rather than deleting and recreating to change something.
because of the procedural nature of modellers, the polygon geometry that the renderer uses has to be regenerated everytime you make a change, which is slower than manipulating polygons directly.
other modellers probably have the same shader previewing functionality now, or the ability to create plugins to allow them to. i can't speak for them though because i'm only familiar with 3ds max.
depends on the future of game content tools.
... the list goes on.
Traditional content development is a long arduous pipeline. Skilled artists trained extensively in high end proprietary software packages create fat content chunks that get ground through this pipeline and end up in a game, presented via the engine, as polygons with textures or music or what have you. It's expensive, wasteful, and a prohibitive barrier to entry for indie developers.
Ultimately, the only part of the pipeline meaningful for a gamer is the output - what's in the games. But, the more flexibility and power a content pipeline is imbued with, the bigger the payoff is for gamers and developers.
So, the question then is how to we get from the grinding fixed pipeline to something elegant and useful. The best possible future is for content creation to change in a few major ways: to be immediate and in realtime, to be in the game engine itself, and to be mostly procedural to satisfy these constraints. This isn't simple, but here's a quick outline.
Part one requires the pipeline be as short as possible. Instant game feedback means no extra turnaround time for revisions.
Part two is to have our realtime zero-length pipeline in the game engine itself, so the game, which is the game content, is a self supporting environment. The engine becomes not only the output method, but the development host. The best way to change a game world is obviously from within the game itself (sound familiar? that's how the real world works).
Part three is the magic that makes this possible. Procedural content capability changes the entire outlook of what is possible to do in a game engine. Procedural content is more flexible (since it's programmable), more lightweight (since the descriptions are effectively code - even if you model them through a different interface), more distributable, more scalable, more unique, more immediate
The next John Carmack won't be a game engine guy, he'll be a game CONTENT engine guy.
And that, temporarily, is the end of this story. Game content creation is basically in the dark ages because these parts haven't fallen into place yet. Nobody has this together yet. Someday this will be real, and we'll look back and think of current content as being like coding assembly instead of using high level languages.
When game content is capable of really expressing what's in gamers' imaginations and dreams, well, then we'll have quite a party on our hands.
It is made easy to save multiple versions. By hitting the '+' button upon save it bumps up the file a version number. I find this better than undo, because it forces me to work in steps. When you have an undo, alot of time you end up with one file. On all my models, I usually have over 50 seperate versions saved. This allows me to go back at any point in time and start from a certain level.
Why not use ReiserFS or Ext3 on top of LVM if you need point-in-time backups?
Use of a DMBS is different, you must select the proper one for the task. That is only common sense.
Actually this is not that senseless. It would be nice to be able to edit models directly in the environment in which they are going to be used. In fact I would very much like to see modelers based on that concept and I think it is possible to do it very well.
:-)
This is the ultimate in real-time preview
Greetings,
Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
Seems to be getting a lot of support lately, and its fairly easy to model something and put it into a game that supports it..
http://www.discreet.com/products/gmax/
You also might want to look at Cg from Nvidia if you want more control over how stuff looks when rendered, although its not a modeling program. From what I understand it would give people better control of the hardware, and it probably makes it fairly easy to use the pixel and vertex shaders..
I hope it helps..
Ended up picking Maya, as its got a great C++ API that exposes darn near everything
I'm not a game programmer nor a graphic artist. Can someone explain to me why I'd want an API library to the tool that designs my models? Once my model is in my MMPORPG is it going to call a Maya library function in-game?
It's not that tough to attach a real-time exporter to most 3D modeling packages. Most of the major game development houses have some facility for displaying what's in a 3DS/Maya scene in a linked up game, whether it's running on an XBox, a GameCube or under Windows.
On top of that, you pretty much need to write your own tools to help artists spot abuse. Add a wireframe mode to your game, and tag all double-sided or currently-reversed polygons with a dot in the middle. Something that simple can point out poly overpopulation or wasted polys pretty quickly.
Says the RIAA: When you EQ, you're stealing bass!
FWIW, there is a petition you can sign if you want to see the source code to Blender opened up. It's here.
The last time I looked quake was using binary space partitions, portals etc... in the rendering process.
These are very quick for real time play, because world is broken up into subspaces and placed in a binary tree when the wold is pre-render compiled for the game.
all of this breaking up takes a hell of a long time, it's also a slow process to merge the subspace trees whenever a space changes, this is why it's all pre-rendered and shiped with the game.
So the quake engine isn't good for dynamic real-time modelling, but it is good for realtime play with a fairly static world.
thank God the internet isn't a human right.
I've had to do a couple of posts because the lameness filter killed the acii art. This is a very brief example, there's far to much for a /. post
And you'll have to do a veiw page source for the correct formatting!
Here's a simple 2d 4 wall world in ascii
\ /
--- \ /
| \
| \
I'll call the walls
\ = A
-- = B
/ = C
! = d
draw a line through the world along line A,
this PARTITIONS the world into two BINARY spaces. B and D are on one side(the space infront) of the partition and and C are on the other side(the space behind).
so we have a partial birnay tree
A
/ \
B+D C
each node can only represent one line through the space
The space infront has two walls in it, B and D. So partition the space infront of A down line B. This gives you D infront of line B and nothing behind line B
The binary space partition looks like this
A
/ \
B C
/ \
D []
thank God the internet isn't a human right.
A simple fact: If the product doesn't cater to the needs of the professional user, it won't be used by professionals. Maya does, Blender doesn't. There is a great deal of tedium that can be done manually, but with little justification that it should be - in many cases (but not all), this has less to do with one's skill, and more to do with one's desire to produce something within a reasonable time frame and within reasonable cost constraints.
But I got Versions 2 and 3 going under wine. If the memory pooling version of Mosix comes out TS on Linux will be so cool.
I'm afraid I'm a raytracing freak. I would rather have hardware that does raytracing freaking fast than keeping up with this thing of trying to make non-raytracing look better. It seems that the better long-term solution is hardware accellerated raytracing than trying to make better software for cobbling together models for non-raytracing systems. (Realtime caustics! Realtime raydiosity! Well, I can always dream...)
Try PLIB! I'm working on one too, but it won't be ready for release for some time...
try: http://www.derivativeinc.com/
they're the guys that INVENTED procedural real-time 3D graphics...
Derivative is dedicated to advance the way people make art. Derivative produces innovative tools for designing and performing interactive 3D artworks and live visuals.
Touch 101, the Derivative product family, is a new artform which enables you to create interactive 3D visuals for the web, interactive art installations and live performance. Touch is a unified content development environment that combines 3D modeling, animation, MIDI sequencing, QuickTime mixing and more.
regards,
j.
Here's some clarifications regarding my problems with "traditional" modeling packages that I am looking for solutions to.
1. EXPENSIVE--I realize they are selling to a small market but it is very pricy to give a large team of artists their own copies of Max, Maya or whatever. It would be nice if these companies at least offered a version without the film-quality renderer, which game artists rarely use (ok, cutscenes maybe, but other than that who needs it?)
2. Lets you do things that don't translate to hardware well:
- non-power-of-two textures (no way to force the modeler to reformat the textures to a sensable size)
- inefficient primitives (no way to remove interior polygons in many cases)
- no way to lock out features that hardware can't reproduce, like some procedural textures.
3. Poor support for things hardware DOES support.
- Triangle strips/fans, no way to generate, see or edit them IN the modeler, particularly editing-in points to corner-turn strips.
- Hardware shaders, no way to see them in the preview windows
- Poor support for baking lighting info into textures/vertices
- Hard to preview art in different rendering modes (bilinear, trilinear, AA, ansitropic filtering...etc) to determine what looks best.
4. Poor capabilities for optimizing models.
- need tools for removing invisible (interior) polygons
- need tools for turning texture res up and down to quickly find the resolution that looks the best and resampling/filtering textures.
- better support for generating Levels of Detail
- No good way to track the texture/polygon budget of the model you're working on.
- Poor support for making multiple versions of the same model (ie: when you want to make varients for cards that do rendering/shading in different ways, want to do high/low performace versions of a model...etc.
I certainly don't expect the modeler companies to produce something where the preview output will be an exact match for my engine. But it would be nice if they had a lot more "hardware friendly" modes so you don't have to spend a lot of time training artists what features of their tools work and what don't, or teaching them to "guess" what a particular effect will look like when done on the hardware.
I've had to write a LOT of different kinds of exporters/postprocessors to do these kinds of things and it's quite a bit more difficult to do, for example, triangle strip/fan generation in an exporter than to have the modeler generate properly stripped/faned primitives in the first place. (ie: make a cylinder as one strip and two fans PLEASE)
Sure, you can fix some of these problems with plugins, post processors, exporters...etc, but almost all of them are ten times easier to fix if you do it in the modeler itself.
Milo from Kangaroo Koncepts
MindsEye, while not ready for prime time yet, looks like it could be very nice. They look like they need developers, however. So if anyone is talented in that area, you might want to go help them out.
If you do not have the talent and patience to learn a complex interface, then I doubt you have the talent and patience to do character modeling and animation period.
/getting/ to the plugin can be difficult. Tools should all be immediately accessible and easy to use. There is NO excuse for it to be otherwise. There are at least half a dozen good books on UI design out there that could be followed 100% and have decent results come through, and many more books on UI design that offer a ton of good advice (mixed with a bit of not so good advice. ;) ), check your local library.
That there is complete and utter bull.
The goal of an artistic program is to allow the artist to move their creative vision from their mind (or some other medium if it has already been copied down to it) to the computer with AS LITTLE FUSS AS POSSIBLE.
The program should be natural and easy to use, should work flawlessly and efficiently, be quick and obvious in its usefulness, and all in all feel like a tool and not like a burden.
And that is in the bare minimum.
A truly good program heightens the artists creative potential but offering up new ideas. While it is technically feasible for an artist to use nothing but a pixel by pixel 2d editor to create any image that you could see on your computer screen (and indeed some artists do create that way and do a lovely job of it, they have darn near total understanding of color theory and how the human mind interprets shapes and shades), the rest of us (none artistic-genius types) have to rely on mere external tools to aid us in this process.
Thus why a water effects or flame effects plug-in in Photoshop comes in so much handy. Sure the 'real' artists do it by hand (and yah, odds are their results look a darn fine deal better too), but hey, for those of us who still have a vision but lack that level of understanding about color theory (how to make something look like it is underwater by tinting the pixel just right), the plug-in sure comes in handy.
Of course in the case of some tools even
or better yet somebody start up a fund to send copies of some of those books to the smaller dev teams out there, I realize that not every programming team (especially when it comes to OSS) can afford a usability study, but there is still no excuse for the major UI blunders that any of the so called alternative programs out there make.
Need help treating your acne? Come here!
Even though it's not a modeler, it's one of the best animation package around. It's available on Linux, Windows, MacOSX, Irix and more, so you should have a version for your PC. It's made by the folks at Kaydara. One of their big feature IS exactly what you'Re looking for : realtime editing of your motion with NLE and all the gizmo's you might want in a traditional animation package. Plus it has a lot of every usefull tools that are unique to this software. Go check it out.