1
\$\begingroup\$

Say you create some model in say Maya, you apply all kinds of effect to the model and then export the file. Then the game engine has to load the file and render it, so surely the game engine needs the same renderer as Maya's to reproduce the effects created in Maya?

\$\endgroup\$
4
\$\begingroup\$

Most professional modelers have little expectation that the model in-game is going to look exactly like it does in Maya. The engineers have a very strong responsibility to provide tools for very quickly visualizing models using the game's rendering engine.

This may be by allowing models to be re-loaded in game so there's no long shutdown/startup process to see the model in its final environment, which of course is significantly more valuable than simply visualizing the model by itself.

The needs may be satisfied by creating a model previewer using the engine. Thus the artist can at least see how the model and its animations will work using the engine's tech. The viewer needs a lot of options to control lighting and environmental parameters so the artist can mimic the actual environment(s) the model will be used in.

Another option is to write a plugin for the modeling tool (Maya, whatever) that embeds the engine and allows the artist to work in real-time against the actual final output. Again, environmental controls are critical. I haven't seen this approach used in a while, but it wasn't uncommon a decade ago. Stand-alone previewers that automatically convert and reload models when they're modified are simpler and about as productive, though.

Larger and more complete engines usually offer both of the first two solutions.

Short version: the modeling tool's rendering should never, ever be expected to match that of the game and an artist needs tools to visualize what the actual output will be quickly and efficiently.

\$\endgroup\$
1
\$\begingroup\$

so surely the game engines needs the same render as Mayas to reproduce the effects created in Maya?

They don't need to be the same, only the results need to be the same. Since you seem to think Maya's the reference, you can call what you see in Maya the expected result of a renderer rendering what is contained in the model.

Break the renderer's stuff in two parts: implementation and output (or result). In order for the game engine to provide the same effects as Maya does when displaying the model, the output of both needs to be the same. However, the implementation can vary. It may be possible to get to a result in two different ways, and it may be possible that Maya's developers chose one of the ways, and, say, Unity's developers chose the other one.

\$\endgroup\$
  • \$\begingroup\$ Do you not just code the engine for one particular standard format like collada, so that whatever modelling package you use you can still export to (in this example) collada and hence your engine will understand how to render it? \$\endgroup\$ – user3333072 Apr 6 '14 at 22:47
  • 1
    \$\begingroup\$ @user3333072: no, because the engine doesn't typically load any format except its own custom format. Other tools pre-process the "source" assets in whatever formats are supported and "bake" them into the engine's custom format. \$\endgroup\$ – Sean Middleditch Apr 6 '14 at 23:38
1
\$\begingroup\$

3D modeling software packages like Maya usually include a great variety of options for rendering. For instance, Maya itself includes several software and hardware-accelerated renderers, and 3rd party renderer plugins can be used. Different renderers have different features and support different effects, but for the most part, they're designed for high-quality, non-realtime rendering.

Rather than try to make an engine which supports all the myriad of advanced effects you could create in a 3D modeling package, the options are either to create a plugin for your 3D editor which will render objects as they would appear in your engine, or more commonly, to use an external tool or editor built especially for your engine which imports the asset, converting it to whatever engine-specific format you're using, and lets you edit engine-specific material properties, use custom shaders, etc.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.