Kristen Eggleston
  • Demo Reel
  • Contact
  • SESI
  • Explorations in Renderman
  • Mechanical Spiders

Face Id

7/30/2013

0 Comments

 
Dabbling in VEX shaders gives the possibility for textures based on faces rather than UVs, but one must have access to the face id for this to happen.

VoilĂ ! In view, a humble vaudevillian VEX, cast vicariously as both victim and villain by the vicissitudes of fate.

int $fface = getprimid();
Yes, it took longer than I care to admit to find that line of code.
0 Comments

Diamond Plate Steel 2.0

7/29/2013

0 Comments

 
Alright so for some reason, the rotation angle is also based off of the initial shape of the dot. These dots started out as circles and were stretched into ellipses from the rotation formula.

        float $newx = $fx * cos($rad) + $fy * sin($rad); //switch to -/+ to change which was on top
        float $newy = $fx * sin($rad) + $fy * cos($rad);


Picture
Default
Picture
Used as displacement
0 Comments

Mood Board 2.0

7/19/2013

0 Comments

 
New pieces have been added to the algorithm! Based on above math!
  • Based off of HSV rather than RGB
  • Averages colors that are similar together rather than taking first one
  • Average colors give higher weight to more saturated and higher value pixels
  • Combines like panels together so that there aren't 5 close green stripes together; user can iterate how many times this happens/if it happens

This has given rise to above two images. The left was generated from the blurry monkey image, the right from the sharp one. Surprisingly, the sharp image gave more saturated colors which I suppose makes sense considering that a blurred image generally tones down the colors due to the blurring.
0 Comments

Layered Displacement

7/15/2013

0 Comments

 
Trying to add new features to the shader, I've stumbled across the necessity for multiple displacements. It turns out that this is completely possible to layer one displacement on top of another one, meaning that instead of just adding various values together, you can just pipe everything together in separate displacement nodes for finer detail. The key is to add a the re-dicing parameter to the mantra node. Read more here.
Picture
Adding re-dicing parameter to ROP
This does add time onto renders but really not that much for how cool the outcome is.
0 Comments

Force Toggles to Cook

7/9/2013

0 Comments

 
Due to my unwillingness to sit around for hours waiting for my renders to be finished and hitting a different checkbox each time, I stumbled upon a new script:
hou.cd("/wherever/your/node/is")
hou.pwd().cook( force = True, frame_range = (startFrame,endFrame,1))
When placed on the matra ROP on the pre-frame script, this forces the material to re-cook each frame, allowing the checkboxes to be re-evaluated and the correct pretty picture to be outputted.
0 Comments

Rendering Time!

7/9/2013

0 Comments

 
Today will be spent making high res renders of what the shader can do. I will be going through all the options, making sure they all still work, and setting up default options if necessary.

Problems:
  • This shader is so big, it takes forever to render just a straight color. It must be calculating everything at the same time and I don't know how to turn that off.
  • Difficulty with making checkboxes animate when not direct parameters

Solutions:
  • I think rendering was taking an hour+ not only because the maximum rays were too high but the samples on the occlusion layer were exorbitant as well. Reducing samples to 16 produces only slight graniness and is not really visible unless you are all the way zoomed in. Below are tests done with default render settings and 1.5 shading quality. The rest of the layers render in no time at all.
0 Comments

Damascus Steel

7/3/2013

0 Comments

 
I covet one of these blades, the pattern on it is gorgeous and if you can get a real blade then it is incredibly durable. That seems to be the problem though - getting a real Damascus blade. Note that mokume gane and Damascus are different; mokume gane contains many different metals whereas Damascus contains steel. It seems the proper art of forging the wootz steel with a high carbon content. This process is very picky though, too little carbon content and the metal becomes wrought iron, too much and it becomes cast iron. The heat must be kept constantly at the right temperature to ensure that the steel does not become cementite, which is extremely fragile plate iron. It seems much easier to create a blade of this durability without the pattern welding element. Word of warning to those who would go to renaissance faires and buy a blade: these patterns are generally soft so make the vendor demonstrate it first. Unless it's Angel Sword, then that's fine.

However this is CG so we can do whatever we want!!

This will be a base element like the tiles, rather than an additive process like the water stains or moss. I need to add that into the shader so that one cannot pick tiles and Damascus.
Elements of damascus:
  • Concentric swirls
  • Two colors
  • High spec on one, lower on other
  • Need ability for displacement
  • Base for wood as well


I like the way this is going, I want to add some more presets in the form of buttons that interactively change the settings on the noise patterns in order to give the user better jumping off points. The defaults are set to create the above images (not the concentric variations, hence the title of "variation"), but I don't think that it's enough. I have covered the scope of my reference images however, but I'd like to find more of a happy medium that has the lines and the concentric circles.
0 Comments

Changing Parameter Script Language

7/2/2013

0 Comments

 
Picture
As I'm building the UI for this shader I've had to do some callback scripts so that when a button is pressed or a toggle gets changed, it changes some other feature on the shader. I usually write these in python because it's easier. You must remember to change the language in the Type Properties window though.

Picture
This is where to change the language if you promote parameters rather than creating new ones to link to the inner workings. Took me a while to figure that one out.

Script for toggling on and off another attribute

Python:
if hou.pwd().parm("useTiles").eval(): hou.pwd().parm("useDamascus").set(0)
Hscript:
opparm . useDamascus 0
In this case the Hscript was shorter but the python is more readable; if this parameter equals 1, set the other parameter to 0 versus using opparm. The Hscript also does not check to see if the parameter is turned on or not. This is my personal preference as I am more schooled in using python.
0 Comments

Moss and Scratches 2.0

7/1/2013

0 Comments

 
Picture
Just look at that gorgeous displacement! Moss has a soft falloff on its lumps and growths, something achievable by piping the displacement values through a square root function. There are three noise functions on the moss, a low frequency to get rolling hills, a medium frequency to get the smaller lumps and a very high frequency to achieve the small bumps.
The color is also not driven through worley noise anymore, that was too swirly for what moss really looks like. My reference photos were much more patchy in color, where old and low moss was a dark green while the moss closer to the top was a lighter green.

Now the small scratches are very patchy and in bunches of high frequency sets, plus they can be taken off. There are additional features so the user can control how much of the color shows through the scratch and how deep the small scratch displacements will go into the surface.
0 Comments

The Little Things

6/26/2013

0 Comments

 
Specifically the magic of If-Then Blocks.
In this particular case, I'm reading in the point color and if it is less than x, multiply the number by 0. This way I can have blurry point attributes for water stains or rust or the color fade of moss while being able to have a sharp edge for displacement since moss does not fade off, it stops growing.
The SOP is just so much easier to write and read than finagling switch statements or clogging up my network with wires going to multiple math statements.
0 Comments
<<Previous

    Author

    Compilations and contemplations of my time as a Side Effects intern.

    Archives

    August 2013
    July 2013
    June 2013

    Categories

    All
    Discoveries
    Fun Renders
    It Totally Works
    New Feature
    Personal
    Problems
    Uber Shader

Proudly powered by Weebly