@ samsung widget competition
Posted by admin on September 12th, 2009 filed in UncategorizedComment now »
I’m at the samsung widget competition…right now I feel like I’ve forgotten all javascript
Gearing up for a new 3d animation
Posted by admin on August 15th, 2009 filed in UncategorizedComment now »
First proto shot for a new scene in a short I’m starting. Full Render

LocoRoco2
Posted by admin on August 9th, 2009 filed in UncategorizedComment now »
Update on my LocoRoco2 scene re-creation.

The identity matrix is your best friend
Posted by admin on August 7th, 2009 filed in DCCComment now »
Since I’m playing with OpenGL these days I’ve learned just how valuable the identity matrix is as far as “zeroing” coordinates and scales. Some of my observed benefits:
-Converts translations from local space coord to world space
-Resets your scales, helpful for ortho projections like this
Basically it converted my mess of primitives into this:
(yes its a WIP)

3D studio max 2010 has some great features
Posted by admin on August 5th, 2009 filed in UncategorizedComment now »
I’ve been playing with 3ds max 2010 for about a week now and I must say the speed increase over my previous version (9) is quite stunning. Additionally there are a ton of ‘creature features’ that at first seem intimidating, but actually save quite a bit of time. My hats off to the 3dsmax developers.
Finally got the robot cell shading example working
Posted by admin on July 28th, 2009 filed in UncategorizedComment now »
After having to read up on GLUT so I could do simple functions…I finally got the Nehe tutorial #37 running on my mac. C++ or course…although I wonder if java may be an easier route.

Exporting from gmax to .x
Posted by admin on July 11th, 2009 filed in UncategorizedComment now »
I found a great tutorial on this here:
http://www.3drad.com/forum/index.php?topic=577.0
Here’s a copy of the important part of the post:
The flight simulator games use a similar format to the x file. An extra option in the tools allow you to export as the X format – right into 3D rad. I will cover this in my own tutorial video on the process soon. You can already find many other documents and videos [2] [3] [4] [5] already on Gmax/Max. The videos on youtube are ok, the max videos are slightly better…. If you need a better one, let me know and I will create one.
Ok, This process is kinda tricky, but if you follow it exactly it works like a charm!
Get the 3D progam:
Download Gmax from www.turbosquid.com/gmax
Exporter Installation (panda3d.etc.cmu.edu)
There are several plug-ins required to export .X files from gmax:
1. First download the ‘Gmax gamepack SDK’ found at this link: FlightSimulator exporter plugin. Size is about 15Mb. Although only 3 files are actually needed, they are not available as separate downloads, so unfortunately you’ll need to download the whole thing.
2. Next, download programs ‘MDLCommander‘ and ‘Middleman‘.
3. After download, you’ll see that the ‘fs2004_sdk-gmax-setup’ is an exe. If you install it in the default gmax directory, you’ll end up with a lot of extra stuff that you don’t need. So create a new folder somewhere on your hard drive and install it there.
4. When done, open the folder, go to gamepacks > fs2004 > plugins. And copy all 3 files: ‘FSModelExp.dle’, ‘makemdl.exe’ and ‘makemdl.parts.xml’ to your main ../gmax/plugins folder.
5. You need to rename two of the files. Right click on ‘makemdl.exe’ and rename it to to ‘mkmdl.exe’. Then right click on ‘makemdl.parts.xml’ and rename it to ‘mkmdl.parts.xml’ (without the quotes).
6. Next, unzip ‘MDLCommander.zip’. Then copy ‘mdlcommander.exe’ to your main ../gmax/plugins folder. This file also needs to be renamed. Right click on ‘mdlcommander.exe’ and rename it to ‘makem.exe’.
7. Finally, unzip ‘Middleman13beta3.zip’. Then copy ‘makemdl.exe’ to your main ../gmax/plugins folder. That’s it, you’re done!
Using
To convert your gmax model to .X format. Go to ‘File > Export’ and select ‘Flightsim Aircraft Object (.MDL) from the file type dropdown. Type in a filename and click Save. The Middleman dialog window should now appear. Click the ‘Options’ tab and check ‘SaveXFile’ (this saves the x file) and ‘nocompile’ (this tells mdlcommander to only create an .X file not mdl/bgl). Then click the GO button.
After a few seconds the dialog will close and your newly exported .X model should be in the directory where you saved it to.
Also you can find all the above needed files backed up on my website:
http://screenracer.com/3drad/gmax/
Recursive Mirrors
Posted by admin on July 8th, 2009 filed in DCCComment now »
Here is a fun attempt I did demonstrating recursive mirrors. Its not infinitely recursive…but there are a few recursions.
Rendered using 3DS Max Metal Ray, Flat Mirrors, and ray tracing. Lights are non-photometric.

Unix OpenGL Buffer
Posted by admin on July 3rd, 2009 filed in UncategorizedComment now »
Thanks to Nvidia, my book, and the internet I was able to hash together a working frame buffer that runs in OSX (warning I tried to pull out the unnecssary methods, so this code may not work as is):
/*
* UnixBuffer.cpp
*
* Created on: Jul 3, 2009
* Author: john
*/
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#include <iostream>
#define window_width 640
#define window_height 480
// Main loop
void main_loop_function()
{
glutSwapBuffers();
}
// Initialze OpenGL perspective matrix
void GL_Setup(int width, int height)
{
glEnable(GL_TEXTURE_2D);
glViewport( 0, 0, width, height );
glMatrixMode( GL_PROJECTION );
glEnable( GL_DEPTH_TEST );
gluPerspective( 45, (float)width/height, .1, 100 );
glMatrixMode( GL_MODELVIEW );
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glDisable(GL_DEPTH_TEST);
glRasterPos2i(0, 0);
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0);
glutSwapBuffers();
glutReportErrors();
}
// Initialize GLUT and start main loop
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutInitWindowSize(window_width, window_height);
glutCreateWindow("OpenGLBuffer");
glutDisplayFunc(display);
glutIdleFunc(main_loop_function);
GL_Setup(window_width, window_height);
glClearColor(0, 0, 0, 0);
glutMainLoop();
}
