Saturday, October 24, 2009

Sunday, September 27, 2009

Fake Terrain Shadow

The recent Houdini Bootcamp had be great fun, and I was impressed with the turnout of the SHRUG (Singapore Houdini 'R Us Group) session too. Going through the bootcamp a second time round reinforced my understanding of how Houdini works. Thanks goes to Peter Robbinson again, not forgetting help from my SHRUG buddies TK and Doug.

As usual, my day job means I have very little time to play around with Houdini much. All my experiments so far has been on-and-off, one-or-two hour affairs. I wish I could spent more time toying with different techniques and doing more advanced stuff but alas my backlog of things to do is threatening to overwhelm me already.

The experiment this time round is creating fake texture shadows for game terrains. This is an old trick used by many game developers to display complex static shadows in real-time. I myself used it 5 or so years ago on a PS2 game. Every shadow had to be hand-created in LightWave and Photoshop back then. Of course, the modern game engine can automatically generate lightmaps, but I figured this could be done procedurally using Houdini for non-photorealistic game environments where computed lightmaps will not look appropriate.


Yes, I'm using the butterfly image as a stand-in for the tree shadow :P

Alas, I'm stuck trying to getting Houdini to do automatic UV projection to each piece of newly generated shadow polygon group, using the ForEach node. Hopefully I'll squeeze out some time to play around and come up with a workable solution soon. As of now, I have neither the luxury nor the inclination to get this resolved.

Tuesday, September 22, 2009

Boot Back to the Basics

Peter Robbinson is back in Singapore for the third time and the second Houdini Bootcamp at NYP. This time, we have more industry attendees and one of them (a leacuter from a PRC CG school) showed us movies of his students' work from China. The work was amazingly impressive and I really kow-tow to the dedication and artistic talents of the PRC students and trainers.

Why is Singapore, supposedly technologically and educationally more advanced than many Asian countries, so lacking in such calibre of work? Even our local professionals' work are hard pressed to match the quality of their student efforts. What gives?

My take is that we (as a creative culture) lack a few key things:

1. Dedication and drive - Singaporeans are amongst the most lazy when it comes to work, but the most particular when it comes to rewards.

2. Obsession with excellence - Singaporeans do the minimum to "pass" and seldom give more than is required, which is why most stay within the confines of conformity and seldom achieve excellence. Yes we've won a few awards, but that should serve as encouragement to do even better, not as proof that we are already good enough.

3. Artistic and creative leadership - Singaporeans like to delude and praise themselves for their small achievements, but at the end of the day, our ranking has a shallow meaning since most of our so-called "world-class" is often just average from a truly expert perspective. Get rid of your stinking ego already!

4. Cooperation and creative teamwork - Many Singaporeans like to be the "Indian Chief" to gain prestige, power and position while contributing nothing of lasting value to the group effort. Of course our well-educated leaders use big word and express big ideas, but they are often superficial application of intelligence and borrowed concepts, devoid of true insight and long term wisdom with lasting benefits.

Hmm, am I back in Singapore-bashing mood again lately? I wonder why? :P :P

I believe we do have the ability to do much better, if only we can overcome the fetters that block our united progress. The key always lie with people and their attitudes, not with with money, technology or physical resources.

Together. Majulah.

Friday, September 11, 2009

Multi-display Technology by ATI

Just two weeks ago I was rambling about support for multiple display screens in games. A few days ago, ATI announced their Eyefinity multi-display technology.

Check out this cool Youtube video of 3D gaming at 5760x2400:



In my blog post, I mocked up a sample of a dual screen Crysis. The following video shows a demo of the Cry Engine 3 running on three screens!



Awesome.

Tuesday, September 8, 2009

More Fog Tests



Playing around with VEX code instead of VOPs this time. The cool thing about the built-in Mantra Atmosphere VEX Lit Fog is that it has volumetric noise and receives volumetric shadows cast by objects. I customized the VEX code so the fog amount decays with height, and also mix in a bit more uniform scattering to achieve a ground fog look.

Tuesday, August 25, 2009

What the Fog?


Garish red-blue fog controlled by color and intensity gradients

Fog is an important part of 3D rendering, since it can add depth and atmosphere to an otherwise flat looking render. Most 3D packages has some kind of built-in fog rendering capability, but advanced packages like Houdini only provide the framework for the user to build their own fog shaders.


Render-ready multiple fog types with a simple Lightwave-style interface

As an ex-Lightwave user, I was used to having a simple and friendly interface to quickly setup a nice looking distance based fog render. So my mission was to bring basic Lightwave style interface to a fog atmosphere shader in Houdini. Starting from a "VOP VEX Fog SHOP" node and some basic fog formulas, I eventually added a bit more variety in the form of ramps to control color and fog intensity based on distance.


The VOP sub-network for the Ramp fog function

There are no fancy algorithms or advanced techniques here, just plain vanilla distance based fog with a bit more user control. If there's any interest in this I'll build an OTL and upload it somewhere for everyone to use and pick apart.

Monday, August 24, 2009

Double vision and more...

Everyone knows what the DS in Nintendo DS stands for, and the dual screen functionality of the highly popular handheld console has certainly been put to both novel and innovative use. Some games would have the upper screen display the action while statistics are shown on the lower screen, while other games provide alternative viewpoints of the same action on each screen.

All very well for the DS, which got me thinking. A lot of modern graphics cards and notebooks support dual monitors. Why don't PC game makers put the dual screens to good use too?

For example:
1) Both screens could show a wide angle (albeit disjointed) view of the action.


Wide angle game action on dual monitors? Sweet...

2) One screen could show the action (e.g. FPS) while the other show the map or mission objectives.

FPS with real-time map on second monitor? Sweet...

3) One screen could show the action (e.g. RTS, RPG) while the other show the statistics or inventory.

MMORPG on dual monitors? Sweet...

Some games already support multi-display outputs, but I feel PC games should start to provide such an option to extend the PC gaming experience over console games. Yes you can probably have a less cluttered WoW display by manually moving the map and stat windows to the second screen, but developer support for that option would be so much nicer.

Hidden possibilities abound for the innovatice game developer ;)

(Disclaimer: All game screens shown here are mock-ups)

Thursday, August 20, 2009

VEXed I am of late...

VEX (Vector Expression) is an internal expression language in Houdini which can be used to develop custom shaders and other stuff. VEX puts a lot of power in the user's hands and is one of the reasons why Houdini is such a flexible and powerful tool for VFX and CG work.

I've only begun to play around with it for a couple of days, but I was already able to implement a Lightwave style fog shader (linear and exponential fog) complete with a simple user-interface in a VOP (VEX operator) network, mostly through experimentation.

Now that I got a taste of things procedural, I just have to dive deeper. I got my hands on "Texturing & Modeling: A Procedural Approach" by David S. Ebert et al. from the school library and will be reading it every chance I get.

Saturday, August 15, 2009

Rigid body tubes in Houdini

Using rigid body dynamics to simulate a ball rolling down a tube. How difficult can that be?

Well, it took me quite a while to get it to a working level, and I'm still a little confounded by some of the things I had to do. Creating the hollow tube is half the challenge, since boolean refused to function properly when I started doing this test on version 9.5. Now I'm on 10.0.359, and the boolean still baffles me.



I created my hollow tube by taking a solid outer tube A, and tunneling away the inside with a narrower inner tube B using boolean subtraction in the Cookie node. Technically, I should do a A-B, but in my scene, I had to select B-A to get the right behavior. Sure, I can get what I wanted using this workaround, but it ain't logical.

Yes Houdini is powerful and logical, but it's not as intuitive as the real world. A lot of powerful features have become much more accessible to the average end-user through the shelf tools, but considerable knowledge of it's inner workings is still required to squeeze out some basic logical behavior if you are trying something different.

To be fair, Houdini is probably the only widely available commercial 3D tool that even allows you to do such simulations with relative ease and reliability. Anyways, I'm still taking baby steps with this software, but hoping to walk and run with it some day.

Tuesday, August 11, 2009

MTBF

No, I'm not cursing or swearing. MTBF = Mean Time Between Failure.

Things fall apart, sooner than you'd expect too. My less-than-one-year-old Maxtor USB external Hard Disk decided to die on me yesterday. I was almost pondering whether I should be distraught over my McDonald's dinner. Weeks of hard work had disappeared down the toilet and I didn't have any backups.

As I nibbled numbly on my burger, I decided that I would use my powers of intention to resurrect it long enough to allow me to back up my data. So after a not-so-happy meal at the local Macs, I returned home to work my "magic". Lo and behold, my drive was alive again, so I quickly backed up the important data.

So is the USB drive dead? Yes and no. Sometimes it's recognized and sometimes not. Now if I can only find my warranty card, I should hopefully get a direct replacement.

Tuesday, August 4, 2009

Give Me A Break!

Sleeping at 3-5am every morning, waking up at 7:30, working from 9am til 9pm, then doing my own stuff at home until 3-5am again isn't my idea of a perfect daily cycle, but currently this is the only way I can have a full-time job and still do my own research/study/play games/socialize... etc.

Sure, I develop courses for Games Development and Digital Visual Effects at work, but my personal interests range from mathematics, quantum physics, technology, anime, movies and music to philosophy, metaphysics and spirituality. While more of a armchair scientist than a hardcore researcher, I nevertheless wish for more time to do my own explorations into the world of string theory, game theory, chaos theory and TOE. Ideally, make money while doing so too.

The only thing I dislike about my day job is the paper and administrative work. I don't mind teaching, developing curriculum, doing research and projects all day, but I'm really not interested in coordinating people, booking facilities and making sure all the right forms are signed and filed. I want to get paid to build fantastic virtual worlds, not waste time dotting my i's and covering my ass with the necessarily paper trail.

In Singapore, managers are valued more than ground people because they can get incapable people to do seemingly impossible tasks and make everything appear more impressive than they actually are. Stay too long, and one may even be convinced by the system, that sheep needs to be shepherded, but anyone who does a little bit of research and independent thinking can see right through the con job.

Slowly Progressing

Learning Houdini


I managed to get the pieces of my girl model to break using rigid bodies simulation. The trick is to use a Connectivity node to identify the connected pieces resulting from the Cookie operation, then grouping them using a Partition node. Feeding the named groups into a RBD Fractured Object AutoDopNetwork does the rest. Still not entirely happy with the results, until I can get the hard edges on each piece of debris to look sharp.



The images above show another completely useless and arbitrary project that is part of my Houdini learning curve. Starting from a closed curve, a polygon surface is generated, extruded, subdivided and tiny strands of grass/hair is scattered on the surface. Instead of the default scatter based on primitive area, I used an alternate attribute (area) which allows the "grass" to stick to the surface (instead of re-scattering) when the latter is deformed in an animation.

I'm only beginning to figure out the basics of SOPs. Can't wait til I know enough fundamentals to create more original and useful results.

Sunday, August 2, 2009

Baby Steps

Since I got back from Japan, I've been busy with preparing the curriculum for a specialist diploma in games development as well as an upcoming 5-day certificate course in PS3 visual arts creation. Finally, I managed to squeeze out some free time to try out some Houdini stuff.

I haven't really touched Houdini since Peter Robbinson's bootcamp 5 months back, so I practically had to start all over from the introductory lessons. Here I've imported a OBJ model created in Modo and Lightwave, scattered some metaballs along it's surface, and boolean'd them out to create huge chunks of holes that looks like she's been blasted with a high-calibre cannon.



The Cookie node's boolean function works, but isn't 100% clean all the time, often resulting in stray and broken geometry. Metaballs seem to work better than polygon spheres for creating holes, and a bit of tweaking can minimize the errors, but I still haven't found a perfect solution.

Also, I'm still trying to figure out how to automatically convert the broken up model into individual pieces of rigid bodies. RBD Fractured Object doesn't do it for me, so currently I'm using a Group Geometry node to manually select primitives and assign group names for the rigid body simulation. However, this is not a good solution because the simulation will break if I make changes upstream.

Other than that, I think I need a faster (multi-core) PC. My notebook turned sluggish when I added the DOP network, and this isn't even a complex scene.

Saturday, July 11, 2009

The World Has Changed

After 3 months of training in Tokyo, I'm finally back home in Singapore. It has been a great time there with lots of memorable experiences. Now it's back to tons of work getting ready to transfer what I've learnt to others who might be interested.

In addition to PS3 game development, I'm brushing up my visual effects know-how too. It's a different world for both game developers and visual effects artists. Technology has made life both easier and more difficult. While we can now achieve more, better and with more ease, the challenge is that modern audiences expect more and better too.

Games are virtual interactive worlds, while VFX are typically non-interactive. Creators for both types of entertainment has to constantly one-up themselves to keep things fresh and enthralling for the viewers. One you learn how to do something, it's already obsolete unless you can improve upon it to be used in the next feature project.

Stressful? You bet. But when a large group of creative people comes together to craft a moving piece of work, the results are worth the effort.

Here's to future postings of worthy of sharing.

Friday, June 12, 2009

Content Development Ramblings

Long time no update in this blog, because I'm still in Japan. Read about my latest ramblings here.

Saturday, April 4, 2009

Read All About It

As mentioned in my previous post, I shall be training in Japan for 3 months. I shall chronicle most of my adventures there at this blog. Ja mata ne!

Thursday, March 26, 2009

Simply Fun

Thus far I have blogged bits and pieces about VFX developments in the local scene and hardly talked about my other field of interest and industry - games.

It's no secret that I like PC and video games, and although I haven't behaved like a hardcore player for quite some time, I still clock in my share of play time. Over the last few months I have completed Armored Core For Answer, Mirror's Edge, Resident Evil 5 and Killzone 2 on the PlayStation 3, plus some others on PC ;)

Games are truly a booming industry and the production quality of modern triple-A games are impressively high, so much so that newcomers to the development scene often feel intimidated by the financial resources and technical expertise required to compete in the same playing field.

The fact is, there is no need to compete with the big boys. Many of the most fun and enjoyable games are simple in design and require only a handful of talented programmers and artists to execute. Indeed, I have seen games done using Flash that excels in both fun factor and presentation polish. flOw on Playstation Network started out as a Flash game, and the tremendously funny and fun Castle Crashers on Xbox Live has a graphic style that looks like a Flash game. I was playing the latter at a friend's gathering last weekend, and it was hours of family fun for everyone. No need for millions of dollars to do photorealistic 3DCG, just simple elegance in the former, and quality cuteness in the latter.

Incidently for the psychologists amongst you, the original Flash game flOw (written by Jenova Chen for his MFA thesis from the University of Southern California, Interactive Media Division) is based on the theory of Flow by Mihaly Csikszentmihalyi. I recommend his book of the same title highly.

Coming week, yours truly is lucky enough to be going to Japan for a 3-month training stint. In what the press has recently listed as the most expensive city in the world, I shall attend courses on PS3 game development conducted by Premium Agency, and hopefully bring back enough know-how to help kickstart the local PS3 development scene.

Tuesday, March 10, 2009

Never Too Young To Start...

Fancy a career in VFX? How about starting while still in Secondary School? Now that young children are already using computers in kindergarten and learning to create 2D animation in Primary School, why not?

As the Fates would have it, I was asked to give a couple of talks regarding our school's new Visual Effects course. The first one, held just this morning, was at Compassvale Secondary School to a group of about 20 Sec 4E and Sec 5N younglings as part of their career awareness education.

I did my usual song and dance, show and tell routine, and it went down fairly well. Some of the kids were actually genuinely interested in this line of work, and asked some relevant questions. Hopefully I opened some eyes to the fascinating world of VFX and planted some seedlings that might bloom into a local VFX talent some day.

I'm certainly glad that the first talk went well without a hitch, considering I'm also supposed to be taking both a Python Scripting/Character Rigging course as well as a crash course in Japanese Language at the same time as the talk! Oh, the miracles our management expect of out of us do makes me shudder sometimes. The stress to deliver, or at least no make a mess of things...

Next stop, ITE graduates at Bishan Library this coming Saturday. Weekend burnt, anyone?

Monday, March 2, 2009

The heart of CORE

For months, Newtek has teased users about their new LightWave CORE application. Just what is it? This video sheds some light...

For years I've been a LightWave 3D user, and have always liked it's speed, straightforward workflow and quality output. Recently, fate has pushed Houdini my way, with it's fully-procedural, node-based approach to 3D. It's certainly impressive in the department of power and flexibility. Not surprisingly, XSI has followed suit with their ICE (Sadly they were bought over by Autodesk soon after). Now LightWave CORE is going the node-based direction. That's saying something about the future of 3D :)

Houdini going mainstream, CORE moving upstream, and everyone dissing Autodesk. Seems like exciting times ahead for the 3D industry!

Here's to you, Mr Robbinson

It's been a hectic past week. Side Effects Software Asia Pacific invited verteran Houdini trainer Peter Robbinson to town to conduct a one week intensive bootcamp. Naturally, it's a rare and honored opportunity not to be missed, and in my particular case, not possible to miss :P

The class consist of a handful of poly lecturers (myself included) and a couple of industry people keen on learning this hitherto non-mainstream 3D application. Peter hails from Canada and has 12 years of experience teaching the much touted Houdini 3D software, the elite program of choice by VFX experts in the industry. He turns out to be a very kind and patient teacher, tirelessly answering our newbie questions and even repeating his demonstrations without a single complaint. Thank you so much Peter, and hope you come back to Singapore to train us to a higher level in future.

Houdini seems to be gaining popularity in the industry, and in the asia-pacific region, especially since the last big player in 3D, Softimage, has also been bought over by Autodesk. Now that Max, Maya and XSI belongs to the same camp, only Houdini and Lightwave are left independent, with smaller players such as Modo, Blender and Cinema 4D brining up the rear. This was certainly an interesting and unexpected turn of events, but no longer newsworthy :P

Houdini has a lot of power under the hood, but it's no easy beast to tame. The old adage: "easy to learn, difficult to master" is never more true here.

Wednesday, January 28, 2009

DI

Happy Lunar New Year to all!

VFX is a new field for me, therefore many technical terms and concepts that are part and parcel of the industry still sound vaguely alien to my ears. As I'm slowly gaining knowledge about this new (for me) industry, I'm learning all sorts of interesting things. Today's keyword: DI.

It all started when I stumbled unintentionally across this little bit of news on Highend3D:
"Prime Focus facilities in Mumbai, Chennai, Hyderabad and Goa handle pre-visualization, camera rental, HD dailies, visual effects, DI and deliverables."

What is DI? I've never come across the acronym in a VFX context before, and my initial guess was "Digital Imaging". A bit of googling later I realized that it means "Digital Intermediate". Now despite getting half the worlds right, I clearly missed the mark. More googling and a quick lookup of Wikipedia yielded an interesting article and some explanation about the DI process.

We all learn something new each day, and that's part of the fun of working in a field you are not familiar with.

Sunday, January 18, 2009

Holy Bluescreens Batman

The polytechnics in Singapore had their Open House(s?) recently, and my poly is no exception. I had the privileged of being tasked to setup the booth to attract people to sign up for our new Digital VFX diploma.

My original idea was to setup a real-time chromakey display with a bluescreen and live video feed mixed with CG digital backdrops using some real-time software compositor. Imagine my dismay when I found that this not easy to setup, surprising given the maturity of bluescreen technology.

Lots of practical problems abound: the hassle of lighting the bluescreen sufficiently brightly and evenly, blue spill from lack of shooting space, the difficulty of extracting clean mattes from our cheap DV cameras, difficulty in matching pre-rendered CG to non-fixed camera angles.

I was almost ready to give up the idea of doing it in real-time and go for post-production, thereby losing the impact of a "live show". At the eleventh hour, a colleague forwarded me an industry contact which saved the day. My thanks go to the generosity of Shah from AV8 Media, whose sponsorship helped make the show possible.

The solution: Reflecmedia. Below are some photos from our setup. The rubber glove Godzilla puppet, keyed in real-time over a CG ocean backdrop, was a hit with the crowd, as was the Harry Potter's Cloak of Invisibility trick.


Thursday, January 1, 2009

What happier way to start 2009...

...than a rundown of the top 50 movie special effects shots?

Happy New Year everyone! 2009 is a good year!