Archive for 2010

Looking for a Houdini assistant

filled
Looking for a Houdini assistant.
Skill with Houdini and familiarity with fluid particles.
You will need to work here at Nexus in Shinjuku from Monday to Friday for approx 1 month. Work days and payment are negotiable.
please contact me ASAP: bernard at nexusinternational.jp

アシスタントHoudiniの方を探しています。

filled
アシスタントHoudiniの方を探しています。
Houdiniに熟練している、particle fluidsを理解している。
勤務地は新宿の弊社事務所にて約1ヶ月間、毎週月曜~土曜まで勤務頂きます。勤務日、報酬額は応相談
連絡先: bernard at nexusinternational.jp

my Mars exhibit ends

The interactive Mars exhibit I created that was shown for three months at Tokyo University finished this weekend. Viewers could fly over the Martian surface with stereoscopic glasses. If you look at the responses from the attendees the installation was a success.
http://bit.ly/bhPeTS

Notes:
The stereoscopic imagery was generated from 6 terabytes of NASA raw data. All except 1 scene was created without a single polygon. The scenes were possible by using Pixar's Brickmap geometric primitive, enabling all scene information to be captured and have automatic level of detail. Creating all the Martian Brickmap data was such a huge task that I created in-house Mars-geo software to do dedicated Mars-space Brickmaps. This software cut down Brickmap generation from 12 hours to 6 seconds.

Special thanks:
NHK Enterprise::Production
Prof. Hirdy Miyamoto::Mars genius
Niimi Atsumoto::Assistant
Kazuya Tsukamoto::Trainee

Gentoo libtool-2.2.6b

Had an old Gentoo system which wouldn't build python-2.6.5-r3 (I have 3, but still have lots of 2.* code).
basically libtool-2.2.6b needed automake-1.10.
Fix was:
emerge =sys-devel/automake-1.10.3 (fills 1.10 slot)
emerge -av =python-2.6.5-r3 **

** note 2.6.6 has other probs

トレーニーシェダーライターの方を探しています

トレーニーシェダーライターの方を探しています-1年。
少なくとも2年以上のMaya/Houdini/かRenderman経験者で学校での使用期間も含みます。新卒者の方には絶好の機会だと思います。
私が下記を講習いたします:
1)ステレオスコピックテクニック
2)Pixar's Renderman (Pro Studio)
3)C, C++, Python
早急にご連絡ください: bernard at nexusinternational.jp

Trainee shader writer

I am looking for a trainee shader writer to train for 1 year.
You need to have at least 2 years Maya/Houdini/or Renderman
experience, school experience counts so this is a fantastic
opportunity for someone just out of school.
You will be trained by me in the following:
1)Stereoscopic techniques
2)Pixar's Renderman (Pro Studio)
3)C, C++, Python
please contact me ASAP: bernard at nexusinternational.jp

fix for hair GI code

My original code is better. Ask me for a fix.
a quick fix noted by David:

/*
Shave and a Haircut emulation shader (c) 2010 Joe Alter, Inc
by Joe Alter
Illuminance fixes by Bernard Edlington, updated by David Lin

Last updated: 06/01/2010
*/

normal pxslUtilShadingNormal(normal n;) {
normal Ns = normalize(n);
extern vector I;
uniform float sides = 2;
uniform float raydepth;
attribute("Sides", sides);
rayinfo("depth", raydepth);

if (sides == 2 || raydepth > 0)Ns = faceforward(Ns, I, Ns);

return Ns;
}

surface Shave (float Ka = 0,
SHAVEambdiff = .6,
SHAVEspec = .35,
SHAVEgloss = .07,
SHAVEopacity = 1.0,
SHAVEselfshad = 1,
coneangle = 30; /* note to Joe: this parameter should be converted from the SHAVEgloss primvar */
color SHAVEspec_color = 1,
rootcolor = 1,
tipcolor = 1;) {

normal Ns = pxslUtilShadingNormal(N);
normal Nn = normalize(N);
vector In = normalize(I);

vector T = normalize (dPdv); /* tangent along length of hair */
vector V = -normalize(I); /* V is the view vector */
float df2 = 0, diffterm = 0;
color Cspec = 0, Cdiff = 0; /* collect specular & diffuse light */
color mixed = 1;
float rawspec;
color Cl2;
float vt, tl;

// Direct illumination
illuminance ("-environment", P, Ns, 1.57, "lightcache", "reuse")
{
float sq2;
df2=(T.normalize(L));
df2*=df2;
df2=1.0-df2;
if (df2<0) df2=0; if (df2>0) df2=sqrt(df2);
diffterm=df2; /* diffuse */
if (diffterm<0) diffterm=0; vt = V.T; sq2=1.0-vt*vt; if (sq2<0) sq2=0; if (sq2>0) sq2=sqrt(sq2);
rawspec = df2* sqrt( 1.0- vt * vt ) - (normalize(L). T ) * vt; /* raw specular */
if (rawspec<0) rawspec=0; diffterm=(1.0-SHAVEambdiff)+diffterm*SHAVEambdiff; /* limits gamut of diffuse term */ Cl2=Cl*SHAVEselfshad+(1-SHAVEselfshad); /* limits the gamut of shadowing */ Cspec += Cl2*pow( rawspec, 1.0 / ( 3.0 * ( .101 - SHAVEgloss ) ) )*.5; /* specular exponent x illumination */ Cdiff += Cl2*diffterm; /* diffuse x illumination */ } // illumination from environments // this will include both environment and indirect illum float occl = 0; color indiff = 0; color envCol = 0; color specCol = 0; // get all envlights shader envlights[] = getlights("category", "environment"); uniform float i, n = arraylength(envlights); // for specular calculations vector envdir = reflect(In, Nn); float angle = radians(coneangle); // find out if it's a bake pass string CurrentPassClass = ""; option("user:pass_class", CurrentPassClass); //calculate area for occlusion baking; use Cdiff for radiosity float a = area(P, "dicing"); // If is a bake pass if (CurrentPassClass == "RenderRadiosity" && a > 0)
{
for(i=0;i < n ; i += 1 ) // Loop through each envlight { envlights[i]->bake(P, Nn, a, Cdiff);
}
}

else // calculate indirect illumination
{
for(i=0 ; i < n ; i += 1 ) // Loop through each envlight { //Diffuse contributions from EnvLight envlights[i]->diffuseIllum(P, Ns, Nn, indiff, envCol, envdir, occl);
color env = envCol * (1-occl);
Cdiff += env;
Cdiff += indiff;

//Specular contributions from EnvLight
envlights[i]->specularIllum(P, envdir, angle, specCol);
Cspec += specCol;
}
}

mixed = mix( rootcolor, tipcolor, v );
Oi = Os*SHAVEopacity;
Ci = Oi * Cs * mixed* (Ka*ambient() + Cdiff) + ( Cspec * SHAVEspec_color *SHAVEspec); /*sum terms and premult color x opac */
}

S&H Hair shader update for Pixar RMS2

A few months ago we had a new working version at my office it's just been too hectic here to test. David Lin was kind enough to come around the office Saturday and tested it works with RMS2 env lights.
BTW our inhouse version has automatic baking and various other tweaks using RMS, this version is the "bare bones" version so you can modify it for your needs.
If you need some more advanced things shoot me an email, sometimes I'm available.
Code posted with Joe's permission.

/*
Shave and a Haircut emulation shader (c) 2010 Joe Alter, Inc
by Joe Alter
Illuminance fixes by Bernard Edlington, updated by David Lin
*/

#include "pxslRayUtil.h"

surface Shave (float Ka = 0,
SHAVEambdiff = .6,
SHAVEspec = .35,
SHAVEgloss = .07,
SHAVEopacity = 1.0,
SHAVEselfshad = 1,
coneangle = 30; /* note to Joe: this parameter should be converted from the SHAVEgloss primvar */
color SHAVEspec_color = 1,
rootcolor = 1,
tipcolor = 1;) {

normal Ns = pxslUtilShadingNormal(N);
normal Nn = normalize(N);
vector In = normalize(I);

vector T = normalize (dPdv); /* tangent along length of hair */
vector V = -normalize(I); /* V is the view vector */
float df2 = 0, diffterm = 0;
color Cspec = 0, Cdiff = 0; /* collect specular & diffuse light */
color mixed = 1;
float rawspec;
color Cl2;
float vt, tl;

// Direct illumination
illuminance ("-environment", P, Ns, 1.57, "lightcache", "reuse")
{
float sq2;
df2=(T.normalize(L));
df2*=df2;
df2=1.0-df2;
if (df2<0) df2=0;
if (df2>0) df2=sqrt(df2);
diffterm=df2; /* diffuse */
if (diffterm<0) diffterm=0;

vt = V.T;
sq2=1.0-vt*vt;
if (sq2<0) sq2=0;
if (sq2>0) sq2=sqrt(sq2);
rawspec = df2* sqrt( 1.0- vt * vt ) - (normalize(L). T ) * vt; /* raw specular */
if (rawspec<0) rawspec=0;

diffterm=(1.0-SHAVEambdiff)+diffterm*SHAVEambdiff; /* limits gamut of diffuse term */
Cl2=Cl*SHAVEselfshad+(1-SHAVEselfshad); /* limits the gamut of shadowing */
Cspec += Cl2*pow( rawspec, 1.0 / ( 3.0 * ( .101 - SHAVEgloss ) ) )*.5; /* specular exponent x illumination */
Cdiff += Cl2*diffterm; /* diffuse x illumination */
}

// illumination from environments
// this will include both environment and indirect illum
float occl = 0;
color indiff = 0;
color envCol = 0;
color specCol = 0;

shader envlights[] = getlights("category", "environment");
uniform float i, n = arraylength(envlights);
vector envdir = reflect(In, Nn);
float angle = radians(coneangle);

for(i=0 ; i < n ; i+=1) // Loop through each envlight
{
//Diffuse contributions from EnvLight
envlights[i]->diffuseIllum(P, Ns, Nn, indiff, envCol, envdir, occl);
color env = envCol * (1-occl);
Cdiff += env;
Cdiff += indiff;

//Specular contributions from EnvLight
envlights[i]->specularIllum(P, envdir, angle, specCol);
Cspec += specCol;
}

mixed = mix( rootcolor, tipcolor, v );
Oi = Os*SHAVEopacity;
Ci = Oi * Cs * mixed* (Ka*ambient() + Cdiff) + ( Cspec * SHAVEspec_color *SHAVEspec); /*sum terms and premult color x opac */
}

プロジェクトを手伝っていただける方を探しています

(急いでいます!)
毎度のお願いばかりで終わり無きものになってきていますが、RenderManを使用の試作映像プロジェクトを手伝っていただける方を探しています。
今回は経験豊富な方でなくても大丈夫です。
ボリュメトリックを使用して、きちんとしたスモークシェイダーを作成可能で、2dまたはスプライトハック出来る方であれば新しいチームに適任です。
勤務地は新宿の弊社事務所にて約2ヶ月間、毎週月曜~土曜まで勤務頂きます。勤務日、報酬額は応相談。
連絡先: bernard at nexusinternational.jp

calling for new RenderMan assitants

(in a hurry!)It seems like an endless request, but I need EVEN MORE people to help me out with a pilot using RenderMan. This time I don't need someone extremely experienced. If you can write a decent smoke shader using volumetric, 2d or sprite hacks you may be eligible for my new team.
You will need to work here at Nexus in Shinjuku from Monday to Saturday for approx 1.5 months. Work days and payment are negotiable.
please contact me ASAP: bernard at nexusinternational.jp