Saturday, 7 March 2015

Website Update!!!

I finally got round to updating my website. Lots of new work on there and still lots more to come. Check it out.

http://backlitmedia.co.uk/

Collage of some of the work I have done.

Monday, 16 February 2015

Houdini Space Colonisation Python SOP & VEX Infection Growth

First post of the year and I though I would start with something technical. I have been looking a lot into procedural modelling, growth and aggregation methods in Houdini lately and have implemented some using VEX and Python.

The first method I implemented was space colonisation using a Python SOP in Houdini. This takes a set of input points, which will be referred to as leafs, then starting from a root point we add new branch points which grow towards the leafs. Once a branch point gets close enough to a leaf point then the leaf point is removed. Finally we loop over all the branch points and attach them together.

How I implemented this with a Python SOP:
  • Loop over all the input points and using there position create an array of leafs.
  • Create a root branch and begin the growth process.
  • Start by comparing every leaf to every branch and check the distances. If the distance is to close then remove the leaf. If the distance is too far then do nothing.
  • If the distance is with in the range then check to see if this branch is the closest branch to the leaf and get the direction. Each leaf can only attract one branch at a time.
  • Now for every branch that was in range we need to get its average growth direction as branches can be attracted to multiple leafs. To do this we add the direction we got earlier to the growth direction of each branch. We also increment the branch growth count variable.
  • Now we loop over the branches and find any branch with a growth count more than 0.
  • Then we divide the growth direction by the growth count to get the average direction.
  • We create a new branch using the average direction and set its parent to the previous branch.
  • We also need to reset the parent branch growth count and direction. 
  • Repeat the the growth process until all leafs are removed.
  • Loop over all the created branches and create points as well as lines to link them all together.  
Here is a video of the final result.



For my next method I used VEX and a SOP solver to create infection like growth. Basically I started with a set of points. Then I created an integer attribute which stated wether that point was infected or not. Finally using point clouds I found the closest point the was not infected and moved the infected point towards it which then infected that point. This process is then repeated.

Here is how I implemented this:
  • Create a set of points with an infected integer attribute.
  • Set some of the points infected attribute to 1.
  • Now inside a SOP solver find the closest point using a point cloud. However if the point is infected ignore it when doing the point cloud look up.
  • Move the infected point towards the closest point found in point cloud by updating its velocity attribute.
  • Finally integrate to update the position and when the point is close enough set the infected attribute to 1. 
SOP Solver Network. Done with wrangle nodes.
Here is a video of the final result.



Thursday, 6 November 2014

Interior Design And Visualization

Iv been working on a couple of visualization project over the last few weeks and the move to VRay has really improved my visuals. The improvement has mainly come from learning not only about VRay but also about light, rendering and shading in general. However I still want to try doing some interior renders with Mantra and maybe comparing the result from each.

Babylon Restaurant Visualization


Friday, 17 October 2014

Moving To VRay!!!

I seem to be doing lots of visualization work these days so decided to move to VRay. I think its much easier than Mental Ray to get the final result you want. But this in my opinion is because of how easy to use the VRay materials and lights are. I personally think Mental Ray is still a good renderer but I now prefer VRay mainly because of its materials.

I may also start using Houdini with Mantra for visualization work as I haven't tried any interior lighting and rendering with Mantra before. Also Mantra is one of my favourite renders.

Test scene I made as a way to learn and understand VRay.


Sunday, 5 October 2014

Unity Bezier Curve Script

Following from my previous post I have been working on this bezier curve script in my spare time. The script was done with C# in Unity and takes an array of objects as the input. The script then creates a curve by using these objects as control points.

The script works in the viewport by utilising the gizmo object and at render time I used the Line Renderer. I found this website which goes really in depth with creating bezier curves in unity.


Unity Bezier Curve Viewport Update

Below is the entire script which I have kept in one file just for simplicity.

Sunday, 28 September 2014

Unity Bezier Curve WIP

Recently I have been learning Unity and playing around with scripting with C#. For my first project I needed to utilize bezier curves but they are not available by default in Unity. So I decided to create my own small bezier curve script.

To start I did some R&D in Houdini with a wrangle sop to figure out how to create a simple bezier curve. I then ported this into C# for Unity. I'v still got to create the rest of the script but here is the Houdini R&D along with the VEX code.

On the left is the Houdini Bezier curve and on the right is the Unity one.


Thursday, 25 September 2014

OpenGL ES Rendering Engine IOS


This is an old IOS app development project I worked on last year but because of copyright I have only recently been allowed to show the app. The app was developed for a company which specialised in creating bespoke solutions for elderly and disabled people. For this app I created my own OpenGL ES rendering engine.

The app and artwork was done by me and was fully functional on a first generation IPad. Everything ran smoothly at around 30fps. More about it on my website.

backlitmedia.co.uk/Portfolio%20Pages/Active%20Health%20App/active_health_app.html


Simple Line Creator

I'v been working on lots of different visualisation projects recently and have had to create simple floor plans in Max. Instead of having to use Auto CAD I decided to create this simple line creator maxscript which creates a line with a set length in the center of the screen.

This tool makes it really easy and quick to create a simple floor plans without having to use another software.

Line Creator Script

Monday, 22 September 2014

Wolverine Sculpt WIP

Havent had time to do much personal work recently but I'v been working on this in my spare time. I start this after watching Rafael Grassetti's ZBrush tutorials which can be found here https://gumroad.com/l/YGTL. These tutorials really helped me and I decided to start this

Wolverine character which is something that I have wanted to sculpt for a while now. I also want to add more detail to this and sculpt and render it in Houdini with Mantra to checkout the new hair and fur tools.


Wolverine Sculpt. Water Simulated in Houdini and  edited in ZBrush.



Thursday, 21 August 2014

Child Crying Photoshop Painting

Don't normally do a lot of 2D work but created this Photoshop painting for charity based on a photo from Palestine. Small project but may do a few more paintings if I have time.


Friday, 18 July 2014

Houdini Millions Of Particles

Iv been juggling different projects recently but decided to start this small project which initially began as RnD for the Diamond Watches London Animation that I'm creating. Needed to learn how to do point rendering of millions of particles in Houdini and get a similar look to Krakatoa in Max. Also all the animation is procedural and done in CHOPs and there is no keyframes.



Simulating the particles is simple if you use the wedge rop and rendering is also pretty fast. The hard part is shading the points. For that I found this post on od force really helpful.

http://forums.odforce.net/topic/9734-awesome-particles-rendernot-done-by-me-though/

Unfortunately some of the quality is lost in the video conversion, here are some final renders.




Tuesday, 22 April 2014

Houdini Large Scale Smoke Sim

Finally got round to finishing this project I'v been rendering in my spare time. I started this project about six months ago to learn more about shading, rending and simulation in Houdini. Although the project was finished I'v been rendering it in my spare time as each frame was taking about an hour. I also only got 153 frames rendered as my computer ran out of memory for the sim.

Really enjoyed this small project and learned a lot more about Houdini and Nuke.

Houdini Large Scale Smoke Sim from Afaq Sabir (Backlit Media) on Vimeo.

Tuesday, 15 April 2014

Watch Animation WIP

Recently been working on a watch animation for a London based jewellers who customise high profile watches. Heres the first version of the watch model rendered with Mantra and modelled in Max.

Hublot Geneve with custom diamonds. 

Monday, 7 April 2014

Finalized Resturant Visualization Projects

Finalized some of my visualization projects this morning with clients, still got one more left. Here are the final printed designs.

Sorrento

Angelo

Cactus



Sunday, 6 April 2014

Faora Sculpt WIP

Finally got round to doing some personal work and decided to sculpt my own version of Faora from Man Of Steel. I think the eyes need a bit more work, they need to be shorter and sharper and the hair also needs finishing. Also fiber mesh is so much easier to use than Max hair and fur modifier.

Faora PBR Render

Monday, 31 March 2014

Visualization

This month I'v been doing a lot visualisation work mainly for restaurants. However recently I got a really interesting and fun visualisation project involving the modelling of a Mini Cooper. The client wants to kit out Mini Coopers as company cars with custom decals as well as custom plastic attachments. They want something similar to the Red Bull cars.

It's still a work in progress but I'v managed to get the car almost modelled out, need to start kitting it out. Everything was rendered with Mental Ray in 3D Max.


Also been doing a lot visualisation for restaurant interiors. Heres some that I'v recently finished.

Pizza Angelo Interior

Sorrento Interior

Pizza King Interior


Monday, 17 February 2014

Houdini Origami SOP

I created this SOP a while back for a project which didn't go through. Basically it lets you create simple paper folds on a grid and animate them. The idea was to create a set of nodes which would then allow me create more advanced folds but it didn't get that far.

The SOP node worked by first setting a vector for where the paper would fold and then setting the fold angle. This was done by first splitting the grid into two sections, then rotating one side and finally attaching them together. You could also bend the fold with falloff and animate all the parameters. I will definitely be coming back to this in the future.


Nodes layout for creating a paper aeroplane.


Wednesday, 12 February 2014

Houdini Import OBJ Python Script

Recently I'v been working on a project where I had to import an obj file into Houdini which was made up of loads of different objects. The problem with using a simple file node is that the entire obj file is imported into a single geometry node. If you need to get an individual object then you can get it as a group. However this is tedious if you want to animate each individual group.

So instead of creating a transform sop node for each group and then animating it, I decided to make a simple python script. The script creates a geometry node for each group and puts an object merge node in it which only imports that specific group. Then all the geometry nodes are put inside a subnet.

To use the script just create a geometry node which has the file node that imports the obj file in it. Then select the geometry node and run the script. You have to create a shelf tool to use the script.

Obj file split into separate geometry nodes.

Tuesday, 28 January 2014

Angry Scream WIP

This is a personal project I'v been working on recently in ZBrush. I started the project to learn more about skin detail as well as sculpting facial expressions.

So far I think its going good but still got lots more skin detail I want to add mainly around the neck, eyes and lips. Don't know how far I'm going to go with this but definitely want to try and get it finished.


Monday, 27 January 2014

Using Houdini And Python To Export Data For IOS

Recently I was working on a IOS app which used OpenGL. The app was used in house to visualize the creation of products which could then been shown to the client in real time.

For this app I created a rendering engine in ObjectiveC and used Blender to export geometry data into to a custom file format. This was then imported into the engine. However recently I wrote some simple python scripts for Houdini which did the same thing. The advantage of using Houdini is that I could create custom attributes and export them as well.

In Houdini I created a simple shelf tool which would export the selected nodes geometry data. The script is simple and throws an error if the selected node does not have the correct attributes and only exports triangulated primitives. Here is the code: