top of page

Look-Dev Exploration

  • Writer: Shannon Taylor
    Shannon Taylor
  • May 23
  • 3 min read

Updated: May 27

Pre-production for Graveyard Gremlins begins in fall 2025, but I'm excited to start thinking about different methods of texturing 3D assets in a 2D style. I'd like to have a better idea of what approaches we could implement before we officially start. If I can help the future process be more smooth and efficient for the team, I'm happy to do extra work in the beginning.



Bifrost Paint Effect


Something I've been wanting to look into is a painterly rendering style using Arnold. My first step was quickly modeling a stone pillar from the initial concept designs to test on.


Concept by Tanya Style development by Seromi


Simple base model of left-most pillar
Simple base model of left-most pillar

Another thing I've been curious about is Bifrost, and this gave me a perfect opportunity to learn it.


I found a tutorial to use as a starting point, getting a feel for the general workflow. For what I'm using it for, the process is similar to the hypershade or node editor, making it relatively easy to pick up.


To get a paint stroke effect, I first made an alpha in photoshop to plug into the opacity node of an aiStandard surface which shaded the Bifrost scatter points.


I started out with a good base, but wasn't happy with the uniform scale and rotation of the paint strokes. My solution was the randomize_point_scale and randomize_point_rotation nodes.



Brush stroke alpha, paint shader, Bifrost graph



First iteration
First iteration

Before I did more with the placement, size, and rotation of the paint strokes, I wanted to see if I could add color variation.


I set up an aiRampRgb and selected 5 cohesive hues, with the intention of every paint stroke having its own color.


The ramp out color connected to the input node of an aiColorJitter, where I adjusted the minimum and maximum hue values to get a variety. Then I changed the color jitter type to "object" to ensure each brush stroke was only one color.

Brush stroke Hypershade iteration 1
Brush stroke Hypershade iteration 1
Second iteration, with color variation
Second iteration, with color variation



Now having color variation, I found that the color ramp was not working how I originally intended, which let to more experimentation and learning about Arnold's other color node options.


The nodes I went with were aiUtility, AiComposite, and aiColorCorrect. I was able to adjust an approximate range of hues by selecting initial colors and multiplying them by blue values.





Brush stroke Hypershade iteration 2
Brush stroke Hypershade iteration 2



With a better understanding of the color functionality, I adjusted the color nodes until I got something I was happy with.


In the scatter points node, I lowered the size range for the brush strokes, and increased the scatter amount from 2,000 to 5,000. I also unchecked "prioritize normal" under the orientation section.


The result was better, but most of the shape was lost. I wanted to preserve that detail, so I selected some key faces and duplicated them. I used substance painter to draw messy outlines around the edges, and set up an opacity map so only the lines were visible. The added lines brought back the shape language in the pilar while also adding to the painted look.

Base and outline mesh
Base and outline mesh


Updated brush shader
Updated brush shader










Final Iteration
Final Iteration











Overall, I think there is charm to this technique, but I think it will look better on more organic assets. for the sake of 3D environment for Graveyard Gremlins, I'd like to try this again on plants.





Comments


© 2035 by Site Name. Powered and secured by Wix

bottom of page