2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

59
2IV60 Computer graphics set 8: Illumination Models and Surface- Rendering Methods Jack van Wijk TU/e

Transcript of 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Page 1: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

2IV60 Computer graphicsset 8: Illumination Models and Surface-Rendering Methods

Jack van Wijk

TU/e

Page 2: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Illumination exampleGlfloat lightPos[] = {2.0, 0.0, 3.0, 0.0};Glfloat whiteColor[] = {1.0, 1.0, 1.0, 1.0};Glfloat pinkColor[] = {1.0, 0.5, 0.5, 1.0};

glShadeModel(GL_SMOOTH); // Use smooth shadingglEnable(GL_LIGHTING); // Enable lightingglEnable(GL_LIGHT0); // Enable light source #0

glLightfv(GL_LIGHT0, GL_POSITION, lightPos); // position LS 0glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteColor); // set color LS 0

glMaterialfv(GL_FRONT, GL_DIFFUSE, pinkColor); // set surface // colorglBegin(GL_TRIANGLES); glNormal3fv(n1); glVertex3fv(v1); // draw triangle, give glNormal3fv(n2); glVertex3fv(v2); // first normal, followed glNormal3fv(n3); glVertex3fv(v3); // by vertexglEnd();

What is going on here?

Page 3: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Introduction 1

Illumination model: Given a point on a surface, what is the perceived

color and intensity? Known as Lighting Model, or Shading Model

Surface rendering:Apply the Illumination model to color all pixels

of the surface.

H&B 17:531-532

Page 4: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Introduction 2

Example:• Illumination model gives color

vertices, • Surface is displayed via

interpolation of these colors.

H&B 17:531-532

Page 5: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Introduction 3

Illumination:• Physics:

– Material properties, light sources, relative positions, properties medium

• Psychology:– Perception, what do we see– Color!

• Often approximating models

H&B 17:531-532

Page 6: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Light sources 1

Light source: object that radiates energy.

Sun, lamp, globe, sky…

Intensity I = (Ired , Igreen , Iblue)

If Ired = Igreen = Iblue : white light

H&B 17-1:532-536

Page 7: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Light sources 2

Simple model: point light source

- position P and intensity I

- Light rays along straight lines

- Good approximation for small light sources

H&B 17-1:532-536

Page 8: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Light sources 3

Simpler yet: point light source at infinity

- Direction V and intensity I

- Sunlight

V

H&B 17-1:532-536

Page 9: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Light sources 4

Damping: intensity of light decreases with distance

Energy is distributed over area sphere, hence

Il = I / d2,

with d distance to light source.

In practice often too ‘agressive’,

hence Il = I / (a0 +a1d+a2d2)

If light source at infinity: No damping with distance

d

H&B 17-1:532-536

Page 10: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Light sources 5Directed light source, spotlight:

Light is primarily send in direction of Vlight .

PQ

d.illuminate is then cos||

If

:Or d.illuminate is then coscos If

llight

l

QVPQ

PQ

Q

l

light cone

VlightH&B 17-1:532-536

Page 11: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.
Page 12: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Light sources 6More subtle: Let I decrease with increasing angle

PQ

decreases.light hestronger t the,larger The

. cos:usedOften

n

II nl

l

light cone

VlightH&B 17-1:532-536

Page 13: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.
Page 14: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Surface illumination 1

• When light hits a surface, three things can happen:

reflection

transmission

absorption

H&B 17-2:536-537

Page 15: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Surface illumination 2

• Suppose, a light source radiates white light, consisting of red, green and blue light.

reflection

transmission

absorption

If only red light is reflected, then we see a red surface.

H&B 17-2:536-537

Page 16: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Surface illumination 3

• Diffuse reflection: Light is uniformly reflected in all directions

• Specular reflection: Light is stronger reflected in one direction.

specular reflection

diffuse reflection

H&B 17-2:536-537

Page 17: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Surface illumination 4

• Ambient light: light from the environment. Undirected light, models reflected light of other objects.

H&B 17-2:536-537

Page 18: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 1Basic illumination model:

• Ambient light;• Point light sources;

• Ambient reflection;• Diffuse reflection;• Specular reflection.

H&B 17-3:537-546

VP of ,l

a

I

I

ss

d

a

nk

k

k

,

), ,(

tscoefficien reflection :,,

bluep,greenp,redp, kkkk

kkk

p

sda

Page 19: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 2

• Ambient light: environment light. Undirected light, models reflected light of other objects.

aaamb IkI

H&B 17-3:537-546

Page 20: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 3

Perfect diffuse reflector: light is reflected uniformly in all directions.

dA/cos

dA

cos

cos/

dA

dA

area.projected

energyIntensity

H&B 17-3:537-546

Page 21: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 4

Perfect diffuse reflector: light is reflected uniformly in all directions.

.

N

L

dA/cos

dA Lambert’s law:

Reflected energy is

proportional with cos , where denotes the angle between the

normal N and a vector to the light

source L.

H&B 17-3:537-546

Page 22: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 5

Perfect diffuse reflector: light is reflected uniformly in all directions.

N

L

Il

||

and 10with

0 if0

0 if)(

:reflection diffuse model Graphics

surfsource

surfsource

diffl,

PP

PPL

LN

LNLN

d

ld

k

IkI

Psurf

Psource

H&B 17-3:537-546

Page 23: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 6

Perfect specular reflector: light is only reflected in one

direction. Angle of incidence is angle of reflection.N

L R

H&B 17-3:537-546

Page 24: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 7

Imperfect specular reflector: light is distributed in the direction of the angle of reflection, dependent on the roughness of the surface.

N

L R

N

L R

glad ruw

H&B 17-3:537-546

Page 25: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 8

Phong model: empirical model for specular reflection

N

L

R

V

viewerdirection :

light ofray reflecteddirection :

, and between angle :

, and between angle :

glad),100 ruw,(1 smoothness

,)(with

,cos)(,

V

R

VR

LN

s

s

nlspecl

n

kW

IWI s

H&B 17-3:537-546

Page 26: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 9

Phong model: empirical model for specular reflection

N

L

R

V

0or

0 if0

0 and

0 if)(

,

LN

RV

LN

RVRV sn

ls

specl

Ik

I

H&B 17-3:537-546

Page 27: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 10

Phong model: calculating the vectors

NL R )2(

hence

)2(

LNLNR

NLNLR

L

N.L V

|| surfview

surfview

PP

PPV

H&B 17-3:537-546

Page 28: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 11

N

L

R

V

H|VL|

VLH

Phong model: variant with halfway vector H.

Use instead of

)(,sn

lsspecl IkI HN

If light source and viewer far away:

H constant.

H&B 17-3:537-546

Page 29: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Basic illumination model 12

n

llsldaa

lsldaa

specdifamb

IkIkIkI

IkIkIk

IIII

1

n

n

s

s

)),0(max()),0(max(

:sourceslight Multiple

)),0(max()),0(max(

HNLN

HNLN

All together:

H&B 17-3:537-546

Page 30: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Color (reprise):

Light intensity I and reflection coefficients k: (r,g,b) triplets

So for instance:

Plastic: kd is colored (r,g,b), ks is grey (w,w,w)

Metal: kd and ks same color

Basic model: simple but effective.

It can be done much better though…

Basic illumination model 13

)),0(max(,,, LN RlRdRdif IkI

H&B 17-3:537-546

Page 31: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Transparancy 1

Transparant object:- reflected and transmitted

light- refraction- scattering

H&B 17-4:546-549

Page 32: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Transparancy 2

Snell’s law of refraction:

N

i

L R

T

refraction ofindex : ,sinsin i

r

ir

i

r

LNTr

iri

r

i

coscos

and for solve and,

,cos,1.

law, sSnell' Use

:Derivation

LNT

NTTT

r

H&B 17-4:546-549

Page 33: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Transparancy 3

Thin surface:- double refraction- shift of light ray

H&B 17-4:546-549

Page 34: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Transparancy 3

Very thin surface:- Discard shift

opacity :1

ncy transpara:

10

)1(

:model Simple

transrefl

t

t

t

tt

k

k

k

IkIkI

Poor result for silhouette edges… H&B 17-4:546-549

Page 35: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Atmospheric effects 1

Atmospheric effects:- dust, smoke, vapor- colors are dimmed- objects less well visible

H&B 10-5:549-550

Page 36: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.
Page 37: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Atmospheric effects 2

factorn attenuatio :

distance:

with ,)(

:atmosphereby n Attenuatio

d

edf datmo

minmax

min)(:Simplerdd

dddfatmo

atmoatmoobjatmo IdfIdfI )](1[)(

:intensity Perceived

= 0.25 + [ 1 0.25 ] H&B 10-5:549-550

Page 38: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 1

Basic illumination model:Can be used per point, but that’s

somewhat expensive

More efficient:Illumination model gives color for some

points;

Surface is filled in using interpolation of these colors.

H&B 17-10:559-564

Page 39: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 2

Constant-intensity rendering aka flat surface rendering:• Determine color for center of polygon;• Fill the polygon with a constant color.

Ok if:• Object consists of planar faces, and• Light sources are far away, and• Eye point is far away,or• Polygons are about a pixel in size.

H&B 17-10:559-564

Page 40: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 2

Constant-intensity rendering aka flat surface rendering:• Determine color for center of polygon;• Fill the polygon with a constant color.

Highlights not visible,Facetted appearance, increased by Mach banding effect.

H&B 17-10:559-564

Page 41: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

• Human perception: edges are given emphasis, contrast is increased near edges.

Mach banding

Angel (2000)

H&B 17-10:559-564

Page 42: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 2

Gouraud surface rendering:• Determine average normal on vertices;• Determine color for vertices;• Interpolate the colors per polygon (incrementally).

N1

N2

N3

N4

V

n

1k k

n

1k kV

N

NN

H&B 17-10:559-564

Page 43: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 3

Gouraud surface rendering:• Much better result for curved surfaces• Errors near highlights• Linear interpolation still gives Mach banding• Silhouettes are still not smooth

Gouraud Flat

Page 44: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 4

Phong surface rendering:• Determine average normal per vertex;• Interpolate normals per polygon (incrementally);• Calculate color per pixel.

Fast Phong surface rendering:Like Phong surface rendering, but use

2nd order approximation of color over polygon:

feydxcybxyaxyxI 22),(

H&B 17-10:559-564

Page 45: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 5

Phong surface rendering:• Even better result for curved surfaces• No errors at high lights• No Mach banding• Silhouettes remain coarse• More expensive than flat or Gouraud shading

H&B 17-10:559-564

Page 46: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Rendering polygons 5

Gouraud

Flat

PhongH&B 17-10:559-564

Page 47: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL IlluminationGlfloat lightPos[] = {2.0, 0.0, 3.0, 0.0};Glfloat whiteColor[] = {1.0, 1.0, 1.0, 1.0};Glfloat pinkColor[] = {1.0, 0.5, 0.5, 1.0};

glShadeModel(GL_SMOOTH); // Use smooth shadingglEnable(GL_LIGHTING); // Enable lightingglEnable(GL_LIGHT0); // Enable light source #0

glLightfv(GL_LIGHT0, GL_POSITION, lightPos); // position LS 0glLightfv(GL_LIGHT0, GL_DIFFUSE, whiteColor); // set color LS 0

glMaterialfv(GL_FRONT, GL_DIFFUSE, pinkColor); // set surface // colorglBegin(GL_TRIANGLES); glNormal3fv(n1); glVertex3fv(v1); // draw triangle, give glNormal3fv(n2); glVertex3fv(v2); // first normal, followed glNormal3fv(n3); glVertex3fv(v3); // by vertexglEnd();

H&B 17-11:564-574

Page 48: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Light-sources 1

H&B 17-11:564-574

First, enable lighting in general:glEnable(GL_LIGHTING);

OpenGL provides (at least) eight light-sources:lightName = GL_LIGHT0, GL_LIGHT1, … , GL_LIGHT7

Enable the one(s) you need with:glEnable(lightName);

Set properties with glLight*(lightName, lightProperty, propertyValue);

* = i, f, iv, or fv (i: integer, f: float, v vector)

Page 49: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Light-sources 2

H&B 17-11:564-574

Position light-source:Glfloat sunlightPos[] = {2.0, 0.0, 3.0, 0.0};

Glfloat lamplightPos[] = {2.0, 0.0, 3.0, 1.0};

glLightfv(GL_LIGHT1, GL_POSITION, sunlightPos);

glLightfv(GL_LIGHT2, GL_POSITION, lamplightPos);

• Fourth coordinate = 0: source at infinity

• Fourth coordinate = 1: local source

• Specified in world-coordinates, according to the current ModelView specification – just like geometry. Hence, take care when you specify the position.

• Light from above looks more natural

Page 50: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Light-sources 3

H&B 17-11:564-574

Color light-source:Glfloat greyColor[] = {0.3, 0.3, 0.3, 1.0};

Glfloat pinkColor[] = {1.0, 0.7, 0.7, 1.0};

Glfloat whiteColor[] = {1.0, 1.0, 1.0, 1.0};

glLightfv(GL_LIGHT1, GL_AMBIENT, greyColor);

glLightfv(GL_LIGHT1, GL_DIFFUSE, pinkColor);

glLightfv(GL_LIGHT1, GL_SPECULAR, whiteColor);

• OpenGL light-source has three color properties, dependent on reflection surface. Not realistic, can be used for special effects.

• If you don’t have ambient light, things often appear black.

• Colors are always 4-vectors here: Fourth coordinate is alpha. Most cases: set it to 1.0.

• More settings: See book

Page 51: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Global Lighting

H&B 17-11:564-574

Global parameters:glLightModel*(paramName, paramValue);

* = i, f, iv, or fv (i: integer, f: float, v vector)

Global ambient light:Glfloat globalAmbient[] = {0.3, 0.3, 0.3, 1.0};

glLightModelfv(GL_LIGHT_MODEL_AMBIENT, globalAmbient);

More precise specular reflection, take view position into account:glLightModelI(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);

Two-sided lighting:glLightModelI(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);

Page 52: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface properties 1

H&B 17-11:564-574

Surface reflection parameters:

glMaterial*(surfFace, surfProperty, propertyValue);

* = i, f, iv, or fv (i: integer, f: float, v vector)

surfFace = GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK

Glfloat emissionColor[] = {0.2, 0.3, 0.1, 1.0};

Glfloat diffuseColor[] = {0.6, 0.3, 0.1, 1.0};

Glfloat specularColor[] = {0.1, 0.1, 0.1, 1.0};

glMaterialfv(GL_FRONT, GL_EMISSION, emissionColor);

glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuseColor);

glMaterialfv(GL_FRONT, GL_SPECULAR, specularColor);

glMaterialf(GL_FRONT, GL_SHININESS, 25.0f);

Page 53: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface properties 2

H&B 17-11:564-574

If colors are changed often (for instance, per vertex):

glEnable(GL_COLOR_MATERIAL);

glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);

glBegin(…);

for i = ...

for j = ...

glColor3f(red(i,j), green(i,j), blue(i,j));

glVertex3f(x(i,j), y(i,j), z(i,j));

glEnd(…);

Page 54: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface properties 3

H&B 17-11:564-574

Transparent surfaces:

• First, draw all opaque surfaces;

• Next, draw transparent surfaces, back to front*, using something like:

glColor4f(R, G, B, A); // A: alpha, for instance 0.40

glEnable(GL_BLEND);

glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);

... Draw transparent surfaces.

glDisable(GL_BLEND);

* OpenGL cannot automatically handle transparency, because of the z-buffer algorithm used for hidden surface removal. More on this later.

Page 55: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface properties 4

H&B 17-11:564-574

Color Blending (see also H&B: 135-136):

Source: the new graphics object to be drawn;

Destination: the current image built up.

(RS, GS, BS, AS): Source color + alpha

(RD, GD, BD, AD): Destination color + alpha

(SR, SG, SB, SA): Source blending factors

(DR, DG, DB, DA): Destination blending factors

Components of Source and Destination are weighted and added:

(SRRS+ DRRD, SGGS+ DGGD, SBBS+ DBBD, SAAS+ DAAD)

is stored in the current image.

Page 56: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface properties 5

H&B 17-11:564-574

(RS, GS, BS, AS): Source color + alpha

(RD, GD, BD, AD): Destination color + alpha

(SR, SG, SB, SA): Source blending factors

(DR, DG, DB, DA): Destination blending factors

glBlendFunc(sFactor, dFactor): specify the blending factors.

glBlendFunc(GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA);

// Use alpha of source as transparency

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

// Use alpha of source as opacity

More options available for special effects.

Page 57: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface-Rendering 1

H&B 17-11:564-574

glShadeModel(m): specify the rendering method

m = GL_FLAT or m = GL_SMOOTH (Gouraud, default)

glNormal*(Nx, Ny, Nz) : specify the normal vector

Flat version:

glNormal3fv(nV);

glBegin(GL_TRIANGLES);

glVertex3fv(V1);

glVertex3fv(V2);

glVertex3fv(V3);

glEnd();

Smooth version:

glBegin(GL_TRIANGLES);

glNormal3fv(nV1);

glVertex3fv(V1);

glNormal3fv(nV2);

glVertex3fv(V2);

glNormal3fv(nV3);

glVertex3fv(V3);

glEnd();

Page 58: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

OpenGL Surface-Rendering 2

H&B 17-11:564-574

glShadeModel(m): specify the rendering method

m = GL_FLAT or m = GL_SMOOTH (Gouraud, default)

glNormal*(Nx, Ny, Nz) : specify the normal vector

glEnable(GL_NORMALIZE): Let OpenGL normalize the normals for

you. And, also take care of effects of

scaling, shearing, etc.

Page 59: 2IV60 Computer graphics set 8: Illumination Models and Surface-Rendering Methods Jack van Wijk TU/e.

Next

• Now that we know how to render curved surfaces, let’s study how to define these…