Wednesday, October 10, 2007

Vector droid bike

From vector concept to high definition animated Flash loop.

The first thing I did is make some quick vector sketches to pick a design I like... I chose to do it in vector format using CorelDRAW as opposed to a paint style sketch using a raster application. Here are some initial vector vehicle concepts.

I wanted to explore the relationship of a robot or droid driving a human autonomously while the passenger (in this case a woman) sleeps. I liked the above designs but I wanted to explore a more unique use of space and ended up with this illustration... A little over 800 shapes/layers in CorelDRAW 12.

The final design is perhaps a little provocative if not perverse but I was looking for something different and some legendary Japanese masters like Soroyama, Shirow and Otomo (known for their adult themes) inspired the illustration along with Syd Mead... Of course!

I like using vector illustration for hard surface technical design... I find that the precision of the vector lines dictate the direction of the design making tighter shapes that perhaps might not be so obvious using a raster method. I tend to concentrate on the shape and function of the design, not on atmospheric or color elements at this time, since the color in this stage (at least for me) is only used to gauge form and technical function & surface properties.

I map the vector image onto a polygon in Lightwave and light it up there... It's a great way to get cohesive color on all elements of the illustration especially since all effects and camera movements as well as animation will be done there.

Here is my image map that I rasterized from CorelDRAW and mapped on a poly in Lightwave. I left the wheels off as they will be a separate element ready for animation.

Here is my transparency map... I use a bounding box around these images to retain registartion during my mapping process... Since it is all vector art, the clean edges lend themselves well to 3D mapping. The black ends up transparent and the white opaque... Note the gray on the windshields for semi-transparency.

I then extract only where I would like some glow for my light making a glow map. The white shapes in this diagram show where glow will be applied. Here is the final glow map.

The image below was sort of a eureka moment for me. It was my first try at lighting a vector image within a 3D application and I was somewhat pleased at the result... In fact, I feel that there is something in this picture that did not translate as well in the final animated image.

Now it's time to make our wheels... This here is a fairly precise draft of our wheel done in CorelDRAW.

I then did a "quick" vector sketch in CorelDRAW of the wheel in three quarter view... A little wonky but it gets the concept across.

These are the actual Corel vector lines exported as an Illustrator version 6 file and imported into Lightwave via the EPSF import.

I made this fork for the dual wheel in Lightwave using the CorelDRAW data.

Here is a refraction test render... Why not? Getting a little sidetracked and experimenting can be a good thing. It keeps things less monotonous bouncing between different techniques like this... Fun and educational:}

This is the basic wheel... Modeled, lit and rendered in Lightwave.

Here is the final fork and wheel(s).

The tread on the tire is a CorelDRAW vector illustration pattern applied as a bump map in Lightwave... Shown below.

Here is the two dimensional CorelDRAW illustration with the three dimensional wheel render from Lightwave.

An upper right angle...

I actually contemplated on modeling this droid bike and girl in 3d... But as detail oriented as I am... I would not finish it. On top of that, my spline modeling as well as organics are not on the level they need to be in order to make this correctly. Maybe one day.


Back to our 2d image. Here are some various concept renders for our animation.

I like the old Japanese idea of mixing technology with nature so I opted to focus more on the second image of the two. This is my final animation in a 24 frames per second Flash format.

The trees are Lightwave objects rendered as flat pieces and comped in Adobe Aftereffects. The rain was done using particles in Lightwave. The lightning is stock footage from artbeats comped in using a blend mode. You can see how I made the road right over here...

I used the same method for our female passenger. Here is the CorelDRAW vector illustration.

Here is the transparency map used in Lightwave.

This is a lit Lightwave render...

And here is a reflection test using a photograph of Denver Colorado. I left reflections out of the final animation as it was making the woman hard to read. It's missing them badly though.

You can see the final HD 1280 by 620 version tight over here!

On a side note... Dave Jerrard of Lightwave notoriety gave me great tips on refraction while I was working on this project. He even remade my shape for the example. I pasted it below if anyone is interested. Later!

Originally Posted by igorstshirts
This is a simple object that I've made to test the power of refraction. I was going to light it with an HDRimage but decided against the render times.

Rendering with HDRI as your light source is a little different than regular rendering, so be warned. Specularity and Glossiness are ignored in this type of rendering since they're actually cheats to get reflections from bright spots in the environment. With HDRI, the specular hits are included in the HDR image, and will only show up if you make the surfaces reflective. Now, you can keep these two channels working if you decide to use some lights in the scene as well, but in the times I've used HDRI, I found the render times to be much faster if I turned off all the lights. No more calculating shadows! In the end, the rendering time was pretty close to the time it would take if I used an Area Light set to a quality of 5.

My question is though... Does this look right? It's for sure better than I could illustrate it any other way but... With all of these complex reflections and refraction going on... It's hard to tell... Right?

Actually it's easy once you know what to look for. In the image, you can see how the plastic cover splits the image of the lights inside into two distinctly different images, and one of them is even slightly magnified (the lights seen through the curved surface). This indicates that the lights are actually inside a solid, rather than surrounded by air inside a thin plastic cover. If you ever look at a an aquarium, you'll see that at the corner, you can see the same objects duplicated in the front and the side panes of glass. When the aquarium is empty, there's almost no refractive distortion. This is because light that goes into the glass is refracted only through the thickness of the glass. When it reaches the other side of the glass, it hits air again, and is essentially "unrefracted" back to its original path. You see this any time you look through a window, empty glass, even your monitor. In the filled aquarium, the ray hits the glass, gets refracted, and hits the other side of the glass, which is bordering the water. Water is denser than air, so now the ray is refracted by the water (there's no air between the two materials) so you don't need an air surface - just a water surface. Then the ray goes on to hit glass again and then air.

In Lightwave, the same rules apply. A ray will be refracted when it hits a surface, and it will stay on that refracted course until it hits a surface with a different refraction index. Since Lightwave uses single sided polygons by default, if a polygon is facing away from the camera it's not rendered. Only the visible side will have any effect on the final images. Any ray hitting the back side will pass through, never knowing it went through a polygon. So, if you modeled a lens cover without any inward facing polygons, the ray will have no way of knowing that they passed through a thin section of plastic and entered a hollow interior. The result is that the plastic cover will appear solid. Much like your image. I made a duplication of you model to illustrate this. In this image, the plastic cover is made of single-sided polygons. Note how the lights inside are seen differently through the side and again through the curved front, like you would get from a solid piece of plastic.

Looking at your model, it appears that you tried to use double sided surfaces to get this unrefracting effect. This seems logical at first, and with some plugins, this method does work. Straight out of lightwave though, it doesn't. As I mentioned above, a ray will be refracted when it hits a surface, and it will stay on that refracted course until it hits a surface with a different refraction index. This is important to remember. Refraction only occurs when a ray passes through one density to another. If you have two materials that are transparent and have the same refractive quality, then one would disappear if it was placed in the other. There's a magic trick that uses this very property, in which a small plastic disc, about the size of a coin is dropped into a glass of water. The disc, having a refraction index almost exactly the same as water, then becomes completely invisible. People hear the splash and think a coin was dropped in the water, and are amazed that it's disappeared.

Turning on Double-sided in the Surface Editor will do the same thing. You'll think that now that you have some inward facing polygons, that rays will unrefract, but in reality, they're passing through the outer plastic surface, and then passing through another plastic surface (where you'd want them to enter air) that has the same IOR that it passed through in the first place. Since this would be like a ray passing through water into more water, no change occurs. The ray could pass through any number of these surfaces (up to the currently set Recursion Level), and its path would not be affected. You WILL see other surface properties added though. Specularity, reflections, color, etc. will be essentially added up as the ray passes through each transparent polygon. This is what appears to be happening in your image, where you can see a thin reflective inner edge along the closest curve. You can see a similar effect in this image, where the only difference is that Double Sided is turned on. You see a interior reflective surface, but the lights inside still appear split.

The fix for this, as has already been mentioned, is to create an inward facing set of "air polygons", that will tell a ray when it's leaving the plastic. First, make sure all your plastic polygons are single-sided. A quick way to make the air polygons is to select the plastic ones, and copy them. Now, change the surface name of the polygons (which should still be selected) to air, and flip them. Now these are facing inward. Finally, paste. This will replace the original polygons that you copied back onto the model with their original surface intact. If you're using normal polygons, feel free to merge points. If you're using subpatches, DON'T merge.

Finally, the same object again, this time, back to single sided surfaces, but with the addition of the air polygons.

Notice how the lights no longer appear split or magnified. There's still some minor distortions, but only along the corners of the cover, where they should be.

Originally Posted by igorstshirts
I like how you punch up the lights like that too, made mine seem alot flatter than I thought it was. I couldn't get the beams to leave the circular patterns on the front piece of the plastic either. Nice!

I think you were using a reflected image on your render, so I just tried to get close using a couple area lights at 50% intensity, both of which are behind and to either side of the light. I have two spotlights inside the light where the LEDs are, with Inverse falloff, and a slight amount of translucency is applied to the plastic surface. This was also rendered with Monte Carlo radiosity, set to two bounces.

P.S. I like your cool white light from the top too... Separates the object from the background so nice. Your lighting is just excellent all together.

The light from the top is from the Textured Environment, which uses a pitch gradient, starting with a mid-grey at the top, going to white near the horizon, and finally to black just below the horizon. The soft light look is actually a reflection of this gradient. You can still get some happy accidents in Lightwave, just like you can with a real camera!

What should the ref index be for the plastic. You are saying that it needs to differ from the ref index of 1.0 for the polys labeled air in order for the proper refraction to occur. Right?

Correct. In my cases, I usually use the same air surface over & over, which is white, about 50% specular and glossiness set to 30-50% just to get that extra reflection you should get off an inside surface. The transparency is 100% and I turned smoothing on, with the Maximum Smoothing Angle set to 30 degrees. I almost never leave this higher than 40 since I can get nice smooth 45 degree bevels on most objects and the lower value prevents them from smoothing into the rest of the object.

There are so many types of plastic, you could almost use any value. I used 1.34 in these examples, which is just a touch denser than water. I wasn't after anything specific. Just something that was enough to reveal the differences.

He Who Has Gone Into Insane Levels Of Detail And Accuracy On Some Projects.

Thanks Dave!



solidver said...


Your work is realy fantastic, my congratulationns for you.


Darkcraft said...

Lovely, nice work :)

Raven Entertainment said...


Providing custom t-shirt airbrushing, iron-on transfer, embroidery and graphic design services in the Aurora Denver Englewood Colorado area since 1995