Wednesday, 30 July 2014

RSL PBR Glass Shader

A shot of the glass shader i created for University, currently rendering out a showreel style shot for this marble effect we had to make.

This shader is energy conservative and completely procedural.  The pattern is generated from a voronoi pattern mixed with a modified Fractional Brownian Noise.  It also has properties to created a frosted glass look.

Monday, 21 July 2014

Tech Showreel

So here is an updates showreel, composed solely of scripting / programming tools

Going to post it around online for crits before sending it away hopefully.


Friday, 18 July 2014

RSL Editor

This was an RSL editor I made during university while working on a shader writing assignment.  It eventually turned into a text editor with built in features for managing separate Renderman projects that could handle creating and compiling shaders, as well as writing and rendering rib files all within a one application which really helped me speed up the workflow when learning RSL and writing shaders.

I added syntax highlighting, aut indentation and line numbering through the help of the QScintilla part of PyQt, while the docs were kind of hard to read, i ahd some help from forums in getting this part working.

Here is a demo of the app, its written with Python and PyQt, and can work with Renderman or 3Delight.


It wasn't meant to be something to use for making an animation in but for quick shader development, as recompiling source code through the command line and then reloading the shader in Maya multiple times loses a lot of time, and witht his app it became an instant process

Monday, 14 July 2014

Asset Manager Update 2

Got much further with the asset manager, had some problems when switching to PySide to work with Maya, as it appears not all of PyQts is the same, the problem i had was button Groups would not work, so i had to group all my radio buttons into separate UI elements.

But here is the Demo of it in pretty much a working state, nearly all of the planned features are implemented, i.e. Control over assets, position, rotation and scale, as well as being able to place assets with a click.  Also the UI can narrow down to a specific projects assets to help keep things tidy.

Demo


A feature i still haven't implemented is the ability to "paint" multiple objects at once, and it may be because of the way i am importing the assets, so with some help from some forums, i might be bale to get it working

Monday, 30 June 2014

Asset Manager Update

Recently got back to working on the asset manager and finished the UI


I also created a basic draggerContext command for maya that can sample the world position under the mouse, and then raycast to an object to sample the current position over the object.  Next step is to position the object and attempt to orient the object to the surface normal

Saturday, 28 June 2014

LSystem / Fractal Generator Demo

Here is a quick video of the generator in action



Right now it is only capable of generating a single curve, so any branching breaks the curve right now, but i have had some in help in finding out there is another type of node in maya for storing what is essentially an array of geometry.

The nodes come under the name of ***VarGroup and hold multiples curves, geo etc.  Next is to change the output of this LSystem node to be plugged into one of these groups instead to allow or branching to occur, and to still be stored under a single node

Sunday, 22 June 2014

LSystem Generator

Ive always liked LSystem and creating fractals, and in the past i had created the most basic version of an lsystem in python, and used maya to draw the curve from the generated instructions.

Using that as a base im going to implement LSystem in Maya but as a node this time, so everything can be made procedural, and update automatically through mayas DG

Asset Manager / Set Dressing Tool

I have recently been working on a project with a few friends where we had quite a lot of assets that needed to be placed in a scene, some accurately some needed just to clutter the scene.  A tool that can do this is something I've wanted to make for a while and since i know much more python and PyQt that last time i tried this i thought it would be a fun project to undertake again

In this project we are also doing a crowd shot, which we will be using the evaluation version of Golaem, this will give me a better chance to understand how Golaem works before continuing work on my own crowd tool.

Friday, 20 June 2014

Shrink Wrap Node

I Always liked the idea of creating things like black rubbish bags or plastic bags by wrapping a mesh around some other geometry to simulate that effect, and other apps like Modo already have this, so i thought i'd make one for Maya as a custom C++ node.

Here a video put together kind of quickly.



It uses ray casting as its default behavior for finding the child geometry, then moves along its normal until it collides with the child geometry.  The other option is "Use Closest Point" which find the closest point on the child geometry and moves the current point towards that.  Both give different results which can be usable.

Next will be making so i could use it to create UV's rather than geometry try to some shrink wrap unwrapping.

Example of an asset made with this node -

Sunday, 15 June 2014

Other Blogs

Here is a link to a different blog i used during a uni project for RSL but i will continue to use it to save any RSL work i do from now on

Also the crowd tool i developed, but i didnt really have much time to update this blog during the project, so its a bit sparse

RSL - http://danwillshaders.blogspot.co.uk/

Crowd - http://danwilmajorproject.blogspot.com/

Monday, 9 June 2014

Voxeliser Node Demo

Here is a short demo of the Voxeliser Node i created for Maya using C++ to create a custom Maya node.  It accepts a mesh as an input to be "Voxelised" and outputs polygonal geometry to be connected to a shape nodes "inMesh".




It uses ray-casting to detect if the mesh is at the next voxel position, and creates the cube through Mayas API rather than a python command.  The reason for this was the idea to try and add various shapes to use as a voxel other than a cube.

I also implemented it as a node rather than a command, as this tool can also work on animated geometry as well as having animatable attributes.

The next feature im planning to add it the ability for the voxel to sample the color at the current position on the mesh.  This will help to make retro style versions of existing characters etc.

Monday, 2 June 2014

Voxeliser Node

I've began work on a voxeliser node.  I found one someone had made using python, but with any kind of dense mesh, it's incredibly slow.  Also it was implemented as a command like tool, so any uodates and the command would need to be re-run.

Looking throufh its code, i found it searched for its nearest point by sampling everypoint on the mesh (very slow) so i think ill try and create one using some ray-casting techniques

Thursday, 29 May 2014

Working on tools

Finally finished University, i graduated with a crowd simulation tool created with C++, ill post a demo of it soon, but or now i'm going to create a few tools I've always wanted, like LSystem, voxelisers and asset managers, and see how they go

Friday, 28 February 2014

Particle Up-Res Tool

This one is something i created for a Tool Dev Assignment.

It takes in a low res particle system, and output a higher res version of this system using various attributes to randomize the values.

It also allows to preview and cache the Up-Ressed particles, so here's the demo.  A bit glitchy for now untill i sort out a decent screen recorder


The Blog

This is going to be a place to all of my CG related stuff, ideas, tools, or just things i want to remember.

To Start ill put up my current showreel!

This work is split between some university assignment work and some stuff I've done just for personal projects.