Eon (3D Scene) Entry: Vikram K. Mulligan


Vikram K. Mulligan is entered in the “Eon Challenge” update: View Challenge Page

Latest Update: Final Render: OTV Docking


Well, I guess I’ll get started. I’m thinking of modelling the entry borehole with a cargo ship docking to one of the rotating docks. I’ve started writing the first of the Renderman shaders I plan to use. This one isn’t too impressive as of yet. It’s just a honeycomb shader, but by the time it’s done, it will look good. I know there are hexagonal tile shaders out there that I could use, but I kind of wanted to write this myself, just to get back into writing code.

   Hopefully I'll post some sketches of what I plan to do before too long.

   Here's the shader so far:

Hexagon tile shader by Vikram K. Mulligan. /
Created 15 November 2006. /

float makehex ( vector C; vector P; float l; )
// Makes a single hexagon, given its centre, a point, and the hexagon’s radius
// (measured from the centre to the midpoint of an edge).
uniform float K1 = sqrt(3);
vector Pprime = P-C;
Pprime = vector (xcomp(Pprime),ycomp(Pprime)*K1,zcomp(Pprime));
float theta = atan(abs(xcomp(Pprime)/ycomp(Pprime)));
float theta2 = mod(theta, PI/3)-PI/6;
float returnfxn = clamp( 1-cos(theta2)*length(Pprime)/l, 0, 1);
return returnfxn;

float rim ( float input, vmin, vmax;)
// Takes a gradient and returns a band with semicircular cross section.
float returnfxn = clamp((input - vmin)/(vmax-vmin), 0, 1);
returnfxn = abs(returnfxn - 0.5)*2;
returnfxn = sqrt(1-pow(returnfxn,2));
return returnfxn;
//return input;

float makehextile (vector P; float numx, numy, l;)
//Tiles the hexagon pattern.
float collector = 0;
collector += makehex(vector(0.5,0.5,0), vector(mod(xcomp§*numx,1),mod(ycomp§*numy,1),0), l/2);
collector += makehex(vector(0.5,0.5,0), vector(mod(xcomp§*numx+1/2,1),mod(ycomp§*numy,1)+1/2,0), l/2);
collector += makehex(vector(0.5,0.5,0), vector(mod(xcomp§*numx+1/2,1),mod(ycomp§*numy,1)-1/2,0), l/2);
return collector;

float Ks = .25;
float Kd = 1;
float Ka = 1;
float roughness = .05;
color specularcolor = 1;
float numx = 24;
float numy = 12;
float hexsize = 0.9;
float rimsize = 0.2;
color hexcolor = color (0, 0, 1):wink:
normal Nf = faceforward( normalize(N), I );
vector V = - normalize( I );

  Oi = Os;
  color srfcolor = Cs - (color(1,1,1)-hexcolor)*rim(makehextile(vector(u,v,0), numx, numy, hexsize), 0, rimsize);
  Ci = ( srfcolor * (Ka * ambient() + Kd * diffuse(Nf)) + specularcolor * Ks * specular(Nf, V, roughness) );
  Ci *= Oi;



The honeycomb shader is now much more impressive, and I’ve split it into displacement and surface shader components. The displacement shader passes three hexagon patterns to the surface shader for it to use, to cut out unnecessary recalculation time. I plan to use these shaders for the rim of the borehole and for some of the interior. I’ll post some sketches and test renderings soon!


Hmm. Well, I’ve got a few images I’d like to post, but these forums still aren’t letting me post attachments. Guess I’ll keep waiting :slight_smile: .


I think it will be important to establish different looks for the 21st-century technology (in my case, the OTV) and the technology of the Stoners (the borehole and the docks). For the former, I want things to look very functional, with visible thrusters, tanks, antennae, etc. The latter should have a more sculpted appearance, as though the designers could consider aesthetics as well as function. Consider, for example, the difference between a boxy Ford Model T and a sleek modern car.

Here's a [link to an old image](http://www26.brinkster.com/mulligan/images/povship2.jpg) of mine, showing a very functional-looking spacecraft.  I'm thinking I'll make the OTV look something like this.


I would really like to see some of those test renders, but your images are not showing up.

To post images, you must click the link at the top of the page named “Submit Entry.” Here’s a quick link for you:


Good luck on your entry and I look forward to seeing those wip renders. :slight_smile:


Thanks for the link. I’m still new to these forums, and I was expecting to be able to post images as attachments.

Here are some concept sketches for the various objects in the scene. I’m well into the modelling, now, and I’ll post more images soon. I think I’ll take out the antenna webbing near the engines of the OTV, but otherwise, the model should look like the sketch. For the rotating dock, I’m picturing a bathtub-like thing which the OTV will nestle into sideways. The dock will be on rails which circle the inside of the borehole, allowing it to compensate for the spin of the Stone. To transfer materials from the dock to the chambers surrounding the borehole, the dock must start rotating with the borehole, and must itself dock with a hatch set into the borehole wall.


Nice sketches… are u planing to use renderman, Prman, type ? im using Renderman for Maya u know RfM its cool :smiley:



I’m planning to use either Aqsis or 3Delight, and Liquid as a Maya to Renderman bridge. I like Aqsis quite a lot, largely because it’s open-source and constantly being improved. Admittedly, 3Delight has two major advantages over Aqsis: first, it can ray-trace, and second, it is currently a faster renderer. I don’t plan to use a lot of ray-tracing in my scene, but for an animation, fast rendering is a must, so I’m leaning towards using 3Delight more.


Cool concept, Vikram.

Hey, there’s no reason to hold off on posting what you have right now. C’mon, let’s see some wip pics! :smiley:


Apologies – I just haven’t had time to upload the WiP pics yet. I’ll do it either tonight or tomorrow. (I’m not at my home computer right now, so I can’t do it at the moment).


Here are some initial renderings of the OTV. I’m a bit sloppy in that I tend to work on shading and modelling simultaneously. I haven’t done the OTV tanks or cargo, yet, but I’ve been working on the displacement map for the head. Oh well. It modifies the geometry, so it’s kind of like modelling :slight_smile: .


I forgot to mention that I finished reading Eon, and it wasn’t bad. It’s about on a par with a lot of the novels of Arthur C. Clarke, or even some of Isaac Asimov. I guess comparisons to Clarke’s Rama series are unavoidable, but there’s a lot of original thought in Eon as well.

For those in this contest who haven’t bothered to read the book, I encourage you to do so.


I really like your design for the OTV. Are you going to give it any basic weaponry? I don’t remember it being said either way in the story, just wondering if you were going to throw some in :slight_smile:


Weapons? No, I wasn’t planning on it. I don’t think the OTVs were supposed to be armed. Just checking… Yes, the text specifically says that they weren’t:

“The OTV was a registered unarmed military vehicle, subject to the restrictions imposed after the Little Death. It was one of dozens of new vehicles that had been constructed in Earth orbit since the appearance of the Stone, and it differed substantially from the vehicles that had serviced the Joint Space Force’s Orbital Defense Platforms. It was larger and capable of traveling much greater distances; by treaty, it could not carry cargoes to the ODPs.” [Italics mine].

Later in the book, the Soviet assault vehicles destroy one of the OTVs, and I don’t think it puts up much of a fight.


Here’s a VERY early version of the dock. As I said, it’s a bathtub-shaped thing into which the OTV will nestle.


Hmm… I’m not sure if this is modelling or shading, but I tend to think of displacement shaders as part of the modelling process, since they modify geometry. Here’s the displacement shader I plan to use on the inside of the borehole, applied to a NURBS cylinder. An early version of the OTV mesh is also shown. This image shows off the final incarnation of that hexagon mesh shader I was working on earlier. I think I’ll go with a hexagonal motif for the Stone technology, and a more pritimitive, blocky look for the 21st-century Earth technology.


I like the OTV. Interesting look going on the chamber.

Waiting to see what you come up with next.


Here’s the completed surface shader for the borehole. It uses a few noise functions to generate a rock texture and subtle mottling on the hexagonal mesh. I’m kind of proud of the efficiency of this shader. It steals the hexagonal mesh pattern from the displacement shader, rather than recalculating it from scratch, which reduces rendering times.

The lighting isn’t anything like the final rendering, and the torus is just there as a temporary object casting a shadow on the wall.


I’ve added fuel tanks and some other little details to the OTV model, now. Modelling tasks remaining:

–A low-poly interior with pilots
–Rear engines
–The tuberider cargo (replacing one set of tanks)