[PD] [Fwd: [jitter] the jit-ogre project (aka animated 3D models in jitter)]

marius schebella 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

Hello all.
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 
buffer acceleration.

this is ogre, get to know him:

the wiki:

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 
go black.
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.

have fun.

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 mailing list