Tuesday, 12 August 2014
Updated Tech Reel
Added the RSL shader to the tech reel
Labels:
3Delight,
Asset Manager,
C++,
Maya,
Node,
PyQt,
PySide,
Python,
Ray Casting,
Renderman,
RSL,
Shader writing,
Shrink,
Tool Dev.,
Voxeliser
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.
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
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
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
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
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
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.
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 -
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/
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.
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
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
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.
To Start ill put up my current showreel!
Subscribe to:
Posts (Atom)

