[PD] [Fwd: [jitter] the jit-ogre project (aka animated 3D models in jitter)]
marius.schebella at gmail.com
Tue Dec 18 16:37:38 CET 2007
I know this is max/jitter stuff, but the external is open source, so
maybe we can get this to work in GEM, too.
It is related to the recent discussion about animated models in gem.
-------- Original Message --------
Subject: [jitter] the jit-ogre project (aka animated 3D models in jitter)
Date: Tue, 18 Dec 2007 01:59:24 -0700
From: Robert Ramirez <rob at robtherich.org>
Reply-To: jitter at cycling74.com
Organization: Cycling '74
To: jitter at cycling74.com
in the spirit of the holidays, i present to you the fruits of my
master's thesis labor...
The jit-ogre project
This project is a jitter external which embeds the functionality of the
open source Ogre3D rendering engine, and exposes it to the max
environment. What this basically means is you can export models from
several 3D modeling applications, with textures/materials and
animations, and render them and control them in jitter using hardware
this is ogre, get to know him:
SAD TECHNICAL NOTE: This is currently intel-mac only. i apologize.
porting to win and ppc is first priority and will hopefully happen
before i take my holiday vacation, but please be patient if it doesn't.
First, the proof.
The link below is a recording of a patch, which utilizes the great
jit.boids3D to control 250 animated fish. The fish mesh comes with the
ogre3d distribution to use in their samples.
The second link is a silly short movie demonstrating many of the
features of the jit-ogre external (and dedicated to josh goldberg). The
ninja mesh is also part of the ogre3d distribution. The music is Tomahawk.
Now, the question. "How do I take my awesome models I created in
[insert your modeler of choice] and animate them with this external?"
The answer is, you don't. Just kidding. But seriously, it's not a simple
process. I want to emphasize this without sounding condescending, but
real time 3D modeling is a highly technical craft that people spend
years honing their skills at and make lots of money doing. The reason
being, there's a lot of voodoo involved, and its something i know very
little about. So it will take you some time to get your model
satisfactorily exported if real-time rendering is something you're new
at. That being said, it's a relatively straight forward process. And
there is only one place where you are going to learn much, the ogre3d
artists and content creators forum.
Please notice the first four topics are all stickys that will be very
useful for you to look at.
In addition, you will want to go here to find the proper exporter for
your modeler of choice.
PLEASE NOTE: The maya 8.5 exporter for the mac is broken. I have fixed
it and you can download it here:
Lastly, if you really want to know what you're doing with your textures
and shaders and such, you will want to familiarize yourself with the
ogre material scripts, by reading the manual:
So on to the external. I have created some tutorial videos which will
hopefully make learning this thing less painful. This is my first
project for public consumption, and I have no idea if I have created
this in a way that will make sense to others. I hope I have, but you'll
see for yourself. here are the links to the vids in the order you
should watch them:
Below is the link to the files you need to install to use this. Please
see the above videos and look at the README file for installation
(mac-intel only for now)
PLEASE NOTE: In case you don't actually want to listen to my raspy voice
for 30 mins to learn how to use this, you MUST do the following steps to
get this to work:
1. Bang the render context (or just turn on the metro). the window will
2. Send the window to fullscreen (press escape). the ninja should appear.
3. You can now restore the screen size and do whatever you want.
you must do these steps every time you initialize the gl context.
Also, if you get a message in the max window complaining about "View
Matrix not affine" or some such nonsense, reset the jit.gl.handle.
RoadMap (aka things that are broke)
capture: i have a strategy for this, but i didn't have time to
implement it. hopefully it won't be too long to get capture working.
this is first priority.
multiple texture units: currently, applying a jit.gl.texture to a
jit-ogre object, requires a single texture unit. hope to get that fixed
to allow for multi-texturing
jit.gl.shader: it's possible that this will never work correctly, but if
enough people want it...
All the bugs that you find and report to me at support _at_ jitogre.org
Python / Lua script bindings.
Additional SceneManagers and environment rendering (skyboxes, particle
systems, paging landscape, terrain, portal zone)
My last note. ogre is a beast. he is an incredibly well written, well
documented and well supported beast, but he is a beast. also, this is
just the tip of the iceberg. I will be open sourcing the entire project
(still waiting on my SourceForge project approval) and my hope is that
other developers will jump in and add functionality and fix bugs and do
things i never thought of.
Also, Ogre likes good cards (ATI, NVIDIA). Ogre doesn't like dumb cards
(Intel GMA aka the macbook card). he will do his best, but don't expect
Real-time rendering is voodoo, and dealing with different card vendors
and drivers and vram and all this stuff tends to be a headache. so much
patience is required.
This project was made possible with the help of several people.
Carl Skelton - director of the IDMI program at Brooklyn Polytechnic
Wes Smith (aka the advisor)
Josh Goldberg (aka the instructor)
Anton Marini (aka vade)
Josh's Advanced Interactive class: Marius, Dan, Jeremy, Meng, David
Sen-I (aka the wife)
Lastly, the great Ogre3D project, it's creator Steve Streeting, and the
entire Ogre community.
jitter mailing list
jitter at cycling74.com
More information about the Pd-list