PIXAR EYES!! Please look.................................................


#101

bump maps are do not change geometry

The geometry does not need to change, the cornea only have to “appear” to stand out a little to get its own little specular highlight… and as said above, the cornea going “out” is not the important one, its the iris going “in” that is

/Z


#102

I think one thing that is being overlooked by a lot of people is the thin black outline around the iris that pixar seems to have…


#103

the only special about pixars eyes that i can see is that the colouration(rainbow,iris(?)) receives light from external light sources. other then that there is only one big sphere with textures.


#104

NOTE: PLEASE READ…

Hey all, well, it seems like there has been some debating, argueing, and discussing, etc. in here. Well, I started this thread to figure out the way PIXAR does their eyes for if you really look closelly, and use a normal model, and use an eye you create, and then put the same model with a Pixar eye, emotion, personality, and feeling starts to comes from that model. Yes there are technical things involved with making the perfect eye, and there are many different way at approaching them. What was unique about this was that it involved only 1 shader thrown on any old eye. We had someone from PIXAR who wrote this. No modeling, no textures! Thats the great things about PIXAR is that you can achieve a great look without all the extra nonsense many people go about doing. That is fine, if you all noticed, this thread has over 100 replys in about a weeks time, all relating to this subject. Me and im sure many others were interested on the how to’s as well as understanding and shwoing own examples the same time. I feel, instead of all the praise and all the hype that goes on in here for someones model, or great texture work, why not try to get many creative heads together and figure out how to create the eye. I think by the lengeth of this thread, there is enough information to tell you how to do it, as well as many great links to modeling, texturing, and creating realistic looking eyes as well. With all this said, im glad I created this thread for it helped me a great deal with understanding how an eye really makes that big of a difference, no matter how Star Wars or Pixar it is… That is my 2 cents…

shaun
TheSEL


#105

hi all.

I’m not sure how this will be useful to real 3D artists, and I guess this thread has said all that had to be said, but my experience using a pseudo-3D package called Zbrush has produced the following specimen:

the eyeball is a 3D sphere. it was colored (you can see the eyeballs textured in flat colour on the upper right, with a completely flat material attached to them, so that no 3D information show) and then given two materials:

a dim, kind of glossy “jelly-bean” shader for the pupil and the eye white, and a highly glossy “gel-shader” material, with a modified specular diagram, for the iris.

the eyes are lit by two sun-lights, a bright one placed on the top left, and a dimmer one placed bottom right.

all in all, it took 15 minutes to put together and render (with Zbrush’s mediocre renderer), but I think the result is very interesting.

PM me in the highly unlikely case that you need any more information on this.


#106

and here’s the specular curve, for what it’s worth


#107

Heres something I whipped up in max… the Shellac material is a good help to make the glossy finish… the iris is a gradient ramp w. a bunch of colors w. noise on… and a ton of submaps and stuff…

The “sneaky” stuff lies in a bumpmap that depresses the iris “inwards” so it gets its specular reflection on the “other side”… so geometry here is pure sphere, all is material.

/Z


#108

looks very cool from the front but awful from the side.

btw. havent anyone with lightwave tried to do this with procedurals? (hmm, typo :))


#109

Is this any better? (although I think eyes modelled w/o depth inherently looks a bit wierd from the side)

/Z


#110

an eye…:cool:

Eek!


#111

An update, they can now dialate, and can be linked to lights. Not much else is different, slightly different iris too.

see you,

Farley13


#112

/*

  • eyeball.sl – RenderMan compatible shader for an eyeball.
  • DESCRIPTION:
  • Makes a plastic-like surface which looks like an eyeball. It’s meant
  • for use on a sphere. The center of the pupil is at the “north pole”,
  • i.e. where the t parameter is 1. The colors of the pupil, iris, white
  • part (eyeball), and blood vessels can be set individually. Fractal
  • functions are used for the veining and the iris mottling.
  • PARAMETERS:
  • Ka, Kd, Ks, roughness, specularcolor - work just like the plastic shader
  • iriscolor - color of the iris
  • eyeballcolor - color of the white part of the eyeball
  • bloodcolor - color of the blood vessels
  • pupilcolor - color of the pupil (opening)
  • pupilsize - size of pupil (in “t” space)
  • irissize - size of iris (in “t” space), must be larger than pupilsize
  • bloodshot - controls how bloodshot the eye is (0=no blood, 1=very ugly)
  • veinfreq, veinlevel - control the formation of the blood vessels
  • index - set between 0 and 1, lets you use this shader to generate
  •       non-identical eyeballs.
    
  • ANTIALIASING: basic antialiasing of the boundaries between tissue types
  •           is performed.
    
  • AUTHOR: written by Larry Gritz
  • HISTORY:
  •  Nov 1991 - crude written of "eye" by lg for Herman's eyes for
    
  •             "Graphic Violence".  Original version hard coded in C.
    
  •  Dec 1993 - "eye" modified by lg to clean up a bit.
    
  •  10 Jan 1994 - recoded by lg in correct shading language.
    
  •  28 Jun 94 (lg) - revamped to add veins and iris mottling, renamed
    
  •                   "eyeball"
    
  •   7 Jan 95 (wave) - changed name to LGEyeBall for namespace reasons...
    
  •   8 Jan 95 (wave) - changed Ciris line to fix bug Larry figured out and changed defaults
    
  •   27 Feb 95 (wave) - changed PO line to fix bug Larry figured out to actually *use* index
    
  • last modified 8 Jan 95 by Michael B. Johnson (wave)
    */

surface
LGEyeBall (float Ka = .75, Kd = 0.75, Ks = 0.4, roughness = 0.1;
color specularcolor = 1;
color iriscolor = color (.135289, .084323, .372417);
color irisoutercolor = color (.403882, .343944, .68276);
color irisinnercolor = color (.065142, .040605, .179311);
color eyeballcolor = color(1,1,1);
color bloodcolor = color(.8,.05,.05);
color pupilcolor = 0;
float pupilsize = 0.05, irissize = 0.12;
float bloodshot = 1.0;
float veinfreq = 8, veinlevel = 4;
float index = 0;
)
{
#define snoise§ (2*noise§-1)
#define MINFILTERWIDTH 1.0e-7
color Ct;
point Nf;
point PP, PO;
float i, turb, newturb, freq, f2;
float displayed, newdisp;
color Cball, Ciris;
float irisstat, pupilstat;
float bloody, tt;
float ks, rough;
float twidth, cutoff;

/* Calculate an appropriate filter width for antialiasing */
twidth = max (abs(Du(t)*du) + abs(Dv(t)*dv), MINFILTERWIDTH);
PO = transform (“object”, P) + index;

/* Figure out where we are in the eyeball. Use the following variables:

  • irisstat: 0 inside the iris/white boundary, 1 outside
  • pupilstat: 0 inside the pupil/iris boundary, 1 outside
  • bloody: how potentially bloody it is (fade as we get away from iris)
    /
    tt = 1-t;
    irisstat = smoothstep (irissize, irissize+twidth, tt);
    pupilstat = smoothstep (pupilsize, pupilsize+twidth, tt);
    bloody = bloodshot * (smoothstep (-irissize, 2.5
    irissize, tt));

/* If we’re somewhere in the white part and it’s potentially bloody,

  • then calculate the veining pattern. Otherwise, just use the color
  • of the whites. The veining pattern is essentially summed zero sets
  • of turbulence functions. Some stretching is done to get it to look
  • just right.
    /
    if (irisstat * bloody > 0.001) {
    turb = bloody; freq = veinfreq;
    displayed = 0;
    for (i = 1; (i <= veinlevel) && (turb > 0.1); i += 1) {
    newturb = 1 - abs (snoise(PO
    freq + point(0,0,20*freq)));
    newdisp = pow (smoothstep (.85, 1, newturb), 10);
    displayed += (1-displayed) * newdisp * smoothstep (.1, .85, turb * turb);
    turb *= newturb;
    freq *= 2;
    }
    Cball = mix (eyeballcolor, bloodcolor, smoothstep(0,.75,displayed));
    }
    else Cball = eyeballcolor;

Ciris = mix (iriscolor, irisoutercolor, smoothstep (irissize*.8, irissize, tt));
/* If we’re somewhere in the iris, calculate the iris pattern, which is

  • just a stretched turbulence function.
    /
    if (irisstat < 0.9999 && pupilstat > 0.0001) {
    turb = 0; freq = 1; f2 = 30;
    for (i = 1; i <= 4; i += 1) {
    turb += snoise (PO
    f2 + point(0,0,20*f2)) / freq;
    freq *= 2; f2 *= 2;
    }
    Ciris *= (1-clamp(turb/2,0,1));
    }

/* OK, now calculate a surface texture color (Ct) based on where we are

  • and what patterns we calculated.
    */
    Ct = mix (Ciris, Cball, irisstat);
    Ct = mix (pupilcolor, Ct, pupilstat);

/* Make the eye a little glossier on the iris and pupil /
ks = Ks * (1+2
(1-irisstat));
rough = roughness * (1-.75*(1-irisstat));

/* Now shade like plastic, but using our calculated surface color and

  • our modified values for roughness and Ks.
    /
    Oi = Os;
    Nf = faceforward (normalize(N),I);
    Ci = Os * ( Ct * (Ka
    ambient() + Kddiffuse(Nf)) +
    specularcolor * ks
    specular(Nf,-normalize(I),rough));
    }


there is most definetly a newer updated shader that they use at Pixar…but this is how they write the shaders…then compile them.


#113

heres my first attempt, thought i would join in:)


#114

old one done with PRMan


#115

hey fluxgrafx,

your mel script sounds interesting, I think ill give it a try to see where it takes me. Tnx for posting it up. As far as everyone else in here. It seems like we have every eye with almost every program known to man with 3d.

----------Please READ---------
I feel that the PIXAR eye has been figured out and many people are close if not have the answer already. Im curious what they look on really models you all are working, or even realistic eyes!!! Sort of a new topic, but it can bring some realistic and interesting results, post finished products if you have them…

TheSEL

I need to get back to work! :eek:


#116

hey…this is actually not a mel script. this is pure programming (…Original version hard coded in C…)
it is for use with their software etc. i did a decent amount of fooling around/study with BMRT a little while ago, that’s how I know about it. It is almost the same as Renderman except it uses raytracing instead of shadow maps. It uses the .rib format for output…— rendrib -d 4 file.rib

oh yea…also it is DEFINETLY not mine. It was originally written by Larry Gritz, one of the people who helped to invent 3D graphics and programs from what I understand.


#117

K, this link might already be given, if not it might be interesting, one big thread on eyemodeling, check it out !!!

E Y E M O D E L I N G T H R E A D !!! !!! !!!


#118

Originally posted by derwolpertinger
interesting discussion! :slight_smile:
so i also worked on an eye but tried to do it only with the use of shaders not geometry. but i’m not totally satisfied cause i can’t manage the iris to cast a shadow so that it is darker in the upper area and lighter in the lower area. i’ve used a bump map to simulate the geometry. tell me what you think and how i can improve things plz.


#119

Do PIXAR really do it ALL in shader? Been trying to visualize it in my head but can’t. Looks like it’s time to brush off those renderman skills


#120

Remember rendermans extensive displacement abilities… hence you can take a sphere, and write a shader that turns it into a human head with ears, eyes, hair, e.t.c. all perfectly modelled…

/Z