# Author: gareth

## Awards // Burberry Festive

Burberry Festive has garnered some favourable reviews over recent months with it hitting the top spot on Televisual’s 2021 Commercials 30 Survey shortly followed by winning a Silver at the CLIO Awards in the Craft Visual Effects category. Mad props to all those who worked on it. It came out good. https://www.moving-picture.com/news/burberry-takes-home-silver-at-the-clio-awards https://www.moving-picture.com/news/burberry-and-jean-clement-soret-hit-number-1-in-televisuals-2021-commercials-30-survey

## VEX: Point Pitch, Yaw, Roll

matrix3 m = maketransform(@N,@up);@orient = quaternion(m); vector4 pitch = quaternion({1,0,0}ch(‘pitch’)); vector4 yaw = quaternion({0,1,0}ch(‘yaw’));vector4 roll = quaternion({0,0,1}*ch(‘roll’)); @orient = qmultiply(@orient, pitch);@orient = qmultiply(@orient, yaw);@orient = qmultiply(@orient, roll);

## VEX: Rotation Around Axis

float angle = chf(“angle”); vector4 rot = quaternion(radians(angle), {1,0,0}); @N=qrotate(rot, @N);

## Python: Phyllotaxis

node = hou.pwd() geo = node.geometry() # Add code to modify contents of geo. # Use drop down menu to select examples. from math import radians, sqrt, sin, cos numpoints = 200 angle = 137.508 cval = 0.2 for i in range(numpoints): theta = radians (i * angle) x = cval * sqrt(i) * cos(theta)

## VEX: Phyllotaxis

int num = chi("num"); float height_ratio = chf("height_ratio"); float radius_ratio = chf("radius_ratio"); float scale_ratio = chf("scale_ratio"); float phi = radians(26.5);//(1 +sqrt(5)) / 300.0; float ang = 2 * \$PI * (phi – 1) / phi; int step = chi("step"); for(int i=0; i<step; i++){ int pt = addpoint(0, set(0,0,0)); setpointattrib(0, "connect", pt, i); } for(int i=0;

## VEX: Matrix

Move to origin // Get center of the oject bounding box (centroid) vector min = {0, 0, 0}; vector max = {0, 0, 0}; getpointbbox(0, min, max); vector centroid = (max + min)/2.0; // Build and apply transformation matrix vector translate = centroid; vector rotate = {0,0,0}; vector scale = {1,1,1}; matrix xform = invert(maketransform(0,

## HScript: Copy Loops

Scripts: Simple fit01(rand(detail(“../foreach_begin1_metadata1”, iteration, 0)),0,2) Automatic number of inputs (fixed) fit01(rand(detail(“../foreach_begin1_metadata1”, iteration, 0)),0,(opninputs(“.”)-1))

## VEX: Cheat Sheet

VEX Wrangle cheat sheet from John Kunz: https://mrkunz.com/blog/08_22_2018_VEX_Wrangle_Cheat_Sheet.html

## VEX: Create Points at Prim Centres

int Pt_Num; @N = @N; Pt_Num = addpoint(0, @P); setpointattrib(geoself(), "N", Pt_Num, @N, "set"); removeprim(0, @primnum, 1);

## CG Cinematography

This awesome book by Chris Brejon is a great resource for Lighting and Cinematography techniques and fundamentals. https://chrisbrejon.com/cg-cinematography/