top of page

​Featured Artist: Alican Görgeç, Turkey

Turkish Houdini artist Alican Görgeç creates the most amazing knitting patterns in Houdini. Here he shares his life story as well as some background info on how to create knitting fabric. Enjoy!

My name is Alican Görgeç and I am an FX TD from Istanbul, Turkey. Since I was a kid I had an interest in shooting and editing videos. This eventually led me to study film and television at Istanbul’s Bilgi University. As a student I discovered that I enjoyed the post-production side of filmmaking the most. It was not much later that I got introduced to 3D effects while helping my friend Cüneyt Tekin with motion graphics work for his company, Vaybee. 3D started as a hobby, but it would eventually become my profession.

After graduating from university, I was looking for an internship in a VFX company. I spent week after week applying to one company after another until finally VFX studio CherryCherry accepted me as an intern. I ended up working for them for 2 amazing years. The 3D department consisted of a very small team and everybody was doing everything from modelling to texturing, tracking, and rendering. I had a chance to try every aspect of effects work, found out what I liked to do and started to shift towards the technical side of 3D. After testing various software packages I gave Houdini a try and I loved it. Working with Houdini feels very free and natural.

After my 2 years in CherryCherry I decided to take a year off work to study digital effects at the National Center of Computer Animation (NCCA) in Bournemouth, UK. Being a student at NCCA was a truly rewarding experience academically and personally as I had the opportunity to meet really good people. I would have loved to stay and work in the UK, because in Turkey the VFX industry is quite limited. Turkish studios focus mostly on character animation and creative companies are looking for generalists who can do a bit of everything. That’s great when you start out and your focus is on familiarising yourself with the pipeline, but once you specialise, working in Turkey becomes a challenge. It doesn’t help that Turkish citizens need a visa to work in the EU, the U.S., Canada, Australia - well, pretty much everywhere. So after my studies abroad I went back to Turkey and started to work for CherryCherry again. Luckily they had quite a lot of FX work to do and I helped them for three months. Then, I switched to Anima Istanbul, the biggest animation studio in Turkey. Recently, they released the first Turkish animated feature film, “Kotu Kedi Serafettin”. I am enjoying my time at Anima so far. In May I am planning to go to the Czech Republic for a freelance work. Life is good!
 
HOW TO CREATE KNITTING PATTERNS IN HOUDINI
 
I always like to work on personal projects in my free time and one day I was talking to my friend Burak Demirci, who had done some knitted garment models using the Maya hair system. I was inspired by his work and by Psyop’s amazing “Holiday Sweaters” spot for Cricket Wireless using the Fabric Engine software. I wanted to try a similar effect in Houdini.
 
First off, I started with very simple method, namely copy stamping a yarn pattern in the center of each polygon. There were two major problems I had to solve. First of all, when the cloth object is deforming the yarn pattern has to be aligned to the normal of the polygon. Secondly, when the polygon deforms the yarn has to stick to the edges of the polygon so it can stitch to the next polygon, otherwise a gap forms between the yarn. I found some ways to compensate for those problems, but in the end copy stamping turned out to be very inefficient and the wrong way to achieve my goal.
 
The alternative method that worked involved using the polygon’s point positions with Vex code. This way I could be perfectly accurate when drawing the yarn pattern. In addition, with this method, whatever the polygon does, the yarn pattern would also do since the yarn is positioned relative to the polygon in which it was created.

vex code that generates the yarn tile

Here is the vex code that generates the yarn tile relative to the point positions of the incoming polygon inside a for each loop node.

​I created the yarn pattern in a for each loop node. As part of the process, I assigned attributes to the points of the yarn like tangentu and tangentv; this helped me to reshape the yarn later in the procedure. After the looping was over, I fused the overlapping points to make a connection between them.  

Yarn pattern in a for each loop node.

This is the output of knitting each polygon. Each yarn is inheriting the necessary attributes from the polygon. This output can be used with the cloth capture node and cloth deform node, so you can transfer your animation data from the simulation to this object.

​Then I took individual strips of yarn and populated many of them and varied them with a simple noise before render time. I also used the the attributes that l created for the yarn like tangentu, tangentv to twist and give to the yarn a slight bend to lock one strip to the other. Depending on the amount of the curves generated, this process took 30 – 60 seconds before render time. 

Individual strips of yarn and populated many of them and varied them with a simple noise before render time.

From the connected yarn tiles I generated more tiles with a varying noise and twist. I also bend them to lock one line of the pattern to the next one. Curves with the varied noise can be seen in the left side of the viewport

​But, for this method to work, I needed to solve the point order of the incoming polygon for each loop. Since the method is all about referencing the point positions of the incoming polygon, they have to have a consistent point order. If that is not the case, the yarn pattern will be drawn randomly resulting in a mess. It is fine to create a simple plane and use it to generate your garment; but if your task is to generate a knitted garment from a model coming to you from the modeling department, point orders will be random. To put the points in a consistent order I reconstructed the model’s topology from scratch, again by using Vex, a bit of vector math and point cloud lookups. I also created a temporary set of uvs to help to reorder the points. Other than those methods the process was quite straightforward and involved the use of conventional Houdini SOP nodes.

Temporary uv set to use for reordering the point topology.

Temporary uv set to use for reordering the point topology.

riginal point positions stored in a variable.

Original point positions stored in a variable. Uv becomes the new point position before the reordering process. The original uvs are being replaced with the temporary ones.

A temporary point created in the center of the polygon.

A temporary point created in the center of the polygon, which is then used to collect point positions with the help of point cloud lookups. In each iteration the yellow vector rotates 90 degrees along the normal axis to find the next point. This process creates new points in the location of the polygon’s points in an order. And the next wrangle node creates the polygon from the points.

The next wrangle node creates the polygon from the points.

After recreating the topology and transferring back the original point positions, you can’t tell the difference – however this technique prevents the yarn shape from getting messed up. 

GridMarkets Houdini rendering service was used to produce the final render.

The GridMarkets Houdini rendering service was used to produce the final render.

​Those were the major steps I followed to create the images. I have no idea if this method is the ultimate approach to doing knitted fabric in Houdini, but my research turned out to be a great learning experience. I also enjoyed the freedom Houdini gives me when manipulating data - I never feel limited by the tools at my disposal.

Thanks to Burak Demirci for the base mesh model that he created.

Special thanks to my friend Burak Demirci for the base mesh model that he created.

Alican Görgeç 2016
 

 

By: Patricia Cornet
GridMarkets marketing

bottom of page