New Radiance 3.5 Features

68
New New Radiance Radiance 3.5 3.5 Features Features Greg Ward Greg Ward Anyhere Software Anyhere Software

description

New Radiance 3.5 Features. Greg Ward Anyhere Software. Radiance 3.5. Released March 21, 2003 Source-level changes: Adds ANSI-C function prototypes to headers Provides rendering library functionality New system features: New ranimove program New mesh primitive - PowerPoint PPT Presentation

Transcript of New Radiance 3.5 Features

Page 1: New  Radiance  3.5 Features

New New RadianceRadiance 3.5 3.5 FeaturesFeatures

Greg WardGreg Ward

Anyhere SoftwareAnyhere Software

Page 2: New  Radiance  3.5 Features

RadianceRadiance 3.5 3.5

o Released March 21, 2003Released March 21, 2003o Source-level changes:Source-level changes:

Adds ANSI-C function prototypes to headersAdds ANSI-C function prototypes to headers Provides rendering library functionalityProvides rendering library functionality

o New system features:New system features: New New ranimoveranimove program program New New meshmesh primitive primitive Includes holodeck system introduced in 3.4 Includes holodeck system introduced in 3.4

((rholorholo and friends) and friends)

Page 3: New  Radiance  3.5 Features

Source-level ChangesSource-level Changes

o ANSI-C function prototypesANSI-C function prototypes Guards against parameter passing errors in Guards against parameter passing errors in

new code additionsnew code additions Example:Example:

o Radiance as C-callable rendering libraryRadiance as C-callable rendering library Avoids need for separate Avoids need for separate rtracertrace processes processes Provides enhanced control over calculation and Provides enhanced control over calculation and

possible incorporation as DLL under Windowspossible incorporation as DLL under Windows

void ray_trace(RAY *r);

Page 4: New  Radiance  3.5 Features

Serial Library InterfaceSerial Library Interface

void ray_init(char *otnm);

void ray_trace(RAY *r);

void ray_done(int freall);

void ray_save(RAYPARAMS *rp);

void ray_restore(RAYPARAMS *rp);

void ray_defaults(RAYPARAMS *rp);

Load octree and initializeLoad octree and initialize

Trace a rayTrace a ray

Unload octree and freeUnload octree and free

Record parameter settingsRecord parameter settings

Restore parameter settingsRestore parameter settings

Restore defaultsRestore defaults

Page 5: New  Radiance  3.5 Features

Parallel Library InterfaceParallel Library Interface

void ray_pinit(char *otnm, int nproc);

void ray_psend(RAY *r);

int ray_pqueue(RAY *r);

int ray_presult(RAY *r, int poll);

void ray_pdone(int freall);

void ray_popen(int nadd);

void ray_pclose(int nsub);

Initialize parallel calculationInitialize parallel calculation

Add a ray to rendering queueAdd a ray to rendering queue

Add a ray and check queueAdd a ray and check queue

Get a ray result from queueGet a ray result from queue

End parallel calculationEnd parallel calculation

Start parallel process(es)Start parallel process(es)

Close parallel process(es)Close parallel process(es)

Page 6: New  Radiance  3.5 Features

Rendering Library TradeoffsRendering Library Tradeoffs

o Current interface provides abstract layer to Current interface provides abstract layer to control rendering parameters and operationcontrol rendering parameters and operation

o However, only one rendering context However, only one rendering context supported at a timesupported at a time

o Calling program is not insulated from Calling program is not insulated from RadianceRadiance namespace namespace

o A couple of global variables still set by caller A couple of global variables still set by caller (progname, trace)(progname, trace)

Page 7: New  Radiance  3.5 Features

Longer Term GoalsLonger Term Goals

o Provide rendering context (or C++ class) Provide rendering context (or C++ class) that bundles scenes with their parametersthat bundles scenes with their parameters

o Create a more logical separation between Create a more logical separation between general and ray-tracing specific parts of general and ray-tracing specific parts of RadianceRadiance and its associated tools and its associated tools

o The ultimate library would incorporate all of The ultimate library would incorporate all of RadianceRadiance’s functionality -- is such a thing ’s functionality -- is such a thing even feasible?even feasible?

Page 8: New  Radiance  3.5 Features

Features Added Since Features Added Since RwRRwR

I.I. Holodeck Rendering (ver. 3.4)Holodeck Rendering (ver. 3.4) A continually progressive light field rendering A continually progressive light field rendering

method permitting users to move freelymethod permitting users to move freely

II.II. TheThe mesh mesh Primitive (ver. 3.5) Primitive (ver. 3.5) Handles complex, smooth geometry with Handles complex, smooth geometry with

local (u,v) texture coordinateslocal (u,v) texture coordinates

III.III. The The ranimoveranimove Program (ver. 3.5) Program (ver. 3.5) Fast animation rendering with full motion blurFast animation rendering with full motion blur

Page 9: New  Radiance  3.5 Features

I.I. Holodeck Rendering Holodeck Rendering

o Ray tracing with interactive displayRay tracing with interactive displayo Accurate global and local illuminationAccurate global and local illuminationo Interactive walk-throughs of non-diffuse Interactive walk-throughs of non-diffuse

environmentsenvironments display representation for motion feedbackdisplay representation for motion feedback

o No wasted computationNo wasted computation i.e., don’t throw away what we’ll want againi.e., don’t throw away what we’ll want again

Page 10: New  Radiance  3.5 Features

The Holodeck Ray CacheThe Holodeck Ray Cache

o Rays bundled in Rays bundled in beamsbeams going in one going in one cellcell and out another on a and out another on a sectionsection wallwall

Page 11: New  Radiance  3.5 Features

View-Beam CorrespondenceView-Beam Correspondence

CB

A

D

“Internal” Section “External” Section

Page 12: New  Radiance  3.5 Features

Example HolodecksExample Holodecks

Internal Sections External Section

(view from inside) (view from outside)

Page 13: New  Radiance  3.5 Features

Progressive RenderingProgressive Rendering

SP Octane after 10 seconds... after 1 minute

Page 14: New  Radiance  3.5 Features

starting view begin move...

...end move new samples come in

Page 15: New  Radiance  3.5 Features

Holodeck File StructureHolodeck File Structure

o Holodeck may have multiple sectionsHolodeck may have multiple sections each section has its own directoryeach section has its own directory each beam sample (ray) takes 10 byteseach beam sample (ray) takes 10 bytes

ray 4

ray 3

ray 2

ray 1

ray 0

header

section 0directory

section 1directory

section 2directory

beambundles

Page 16: New  Radiance  3.5 Features

Holodeck OperationHolodeck Operation

o Holodeck server manages holodeck fileHolodeck server manages holodeck fileo Display driver manages what the user sees Display driver manages what the user sees

and doesand doeso Sample generator(s) compute new ray Sample generator(s) compute new ray

samples to use in holodecksamples to use in holodeck

Page 17: New  Radiance  3.5 Features

Batch Rendering ModeBatch Rendering Mode

HolodeckServer

rtrace

rtrace

HolodeckFile

Page 18: New  Radiance  3.5 Features

Display Only ModeDisplay Only Mode

HolodeckServer

DisplayDriver

HolodeckFile

Display& Input

Page 19: New  Radiance  3.5 Features

Interactive RenderingInteractive Rendering

HolodeckServer

rtrace

rtrace

DisplayDriver

HolodeckFile

Display& Input

Page 20: New  Radiance  3.5 Features

Subproblems to SolveSubproblems to Solve

o Holodeck cache managementHolodeck cache management managing beam requestsmanaging beam requests LRU beam replacement schemeLRU beam replacement scheme

o Parallel renderingParallel rendering process synchronization and data sharingprocess synchronization and data sharing

o User interaction and displayUser interaction and display determining which beams to requestdetermining which beams to request display representation and tone mappingdisplay representation and tone mapping

Page 21: New  Radiance  3.5 Features

Holodeck Cache ManagementHolodeck Cache Management

o Sort and maintain beam request listSort and maintain beam request list Nrequested/(Ncomputed+1) priorityNrequested/(Ncomputed+1) priority

o Load data from holodeck into memoryLoad data from holodeck into memoryo When memory cache limit is reached, When memory cache limit is reached,

use LRU scheme to free spaceuse LRU scheme to free spaceo As beam sizes grow, maintain file As beam sizes grow, maintain file

fragment list to optimize disk usagefragment list to optimize disk usageo Recover from system errorsRecover from system errors

Page 22: New  Radiance  3.5 Features

Parallel RenderingParallel Rendering

o Coarse-grained parallelizationCoarse-grained parallelization multiple ray tracing processes sharing memory multiple ray tracing processes sharing memory

and data as much as possibleand data as much as possible

o Beam packets assigned to maintain Beam packets assigned to maintain maximum queue size on each processmaximum queue size on each process

o Packets returned to server, which caches Packets returned to server, which caches them and passes them on to display driverthem and passes them on to display driver

Page 23: New  Radiance  3.5 Features

User Interaction and DisplayUser Interaction and Display

o Get user inputGet user input view-motion and control commandsview-motion and control commands

o Determine beams corresponding to viewDetermine beams corresponding to view sparse, jittered view samplingsparse, jittered view sampling should be stable for small motionsshould be stable for small motions

o Display beam sample dataDisplay beam sample data need 2.5-D intermediate representationneed 2.5-D intermediate representation fill in gaps & resolve multidepth samplesfill in gaps & resolve multidepth samples

Page 24: New  Radiance  3.5 Features

Display RepresentationDisplay Representation

o Quadtree representation w/ X11Quadtree representation w/ X11 simple, fast, uglysimple, fast, ugly

o Vornoi cell representation w/ OpenGLVornoi cell representation w/ OpenGL simple, almost as fast, not as uglysimple, almost as fast, not as ugly

o Spherical Delaunay mesh w/ OpenGLSpherical Delaunay mesh w/ OpenGL not simple, pretty fast, less uglynot simple, pretty fast, less ugly

Page 25: New  Radiance  3.5 Features

Quadtree RepresentationQuadtree Representation

One sample per leaf

No filling Average filling

Page 26: New  Radiance  3.5 Features

Multidepth SamplesMultidepth Samples

Because rays do not pass exactly through view point,multidepth samples result after reprojection to avoidloss of image focus. Our display method mustattend to this.

Page 27: New  Radiance  3.5 Features

Voronoi Cell RepresentationVoronoi Cell Representation

Cones seen fromabove createVoronoi cells

Constrain cones along depth

discontinuities

Draw local geometry with

OpenGL

Page 28: New  Radiance  3.5 Features

Driver ComparisonDriver Comparison

Quadtree representation

Voronoi representation

Mesh representation

Page 29: New  Radiance  3.5 Features

Mesh RepresentationMesh Representation

o Maintain Delaunay triangulation of sphere Maintain Delaunay triangulation of sphere centered on current eye pointcentered on current eye point each mesh vertex is a ray sampleeach mesh vertex is a ray sample vertex samples are added dynamicallyvertex samples are added dynamically view rotation uses the same meshview rotation uses the same mesh viewpoint change may result in new meshviewpoint change may result in new mesh

o Mesh triangles are Gouraud shadedMesh triangles are Gouraud shaded new triangles are drawn over old onesnew triangles are drawn over old ones

Page 30: New  Radiance  3.5 Features

Mesh Representation (2)Mesh Representation (2)

o Samples stored in spherical mesh around Samples stored in spherical mesh around eye pointeye point spherical quadtreespherical quadtree

used for vertexused for vertexlocation andlocation andfrustum cullingfrustum culling

fast vertexfast vertexinsertion is keyinsertion is key

Page 31: New  Radiance  3.5 Features

Example Mesh RenderingExample Mesh Rendering

From earlier motion sequence:

Page 32: New  Radiance  3.5 Features

Dynamic Tone MappingDynamic Tone Mapping

o Quickly map dynamic range of scene Quickly map dynamic range of scene samples into dynamic range of displaysamples into dynamic range of display map every sample; update on redrawmap every sample; update on redraw

o Optionally match human visibilityOptionally match human visibility make visible on display what is visible in real lifemake visible on display what is visible in real life

o Use [Larson et al] from TVCG ‘97Use [Larson et al] from TVCG ‘97 histogram adjustment methodhistogram adjustment method

Page 33: New  Radiance  3.5 Features

Tone Mapping ExampleTone Mapping Example

Linear Camera model Human model

Page 34: New  Radiance  3.5 Features

Holodeck ProgramsHolodeck Programs

rholorholo - basic interface for interactive and - basic interface for interactive and batch holodeck renderingbatch holodeck rendering

rhinforhinfo - extract holodeck header and section - extract holodeck header and section information and report fragmentationinformation and report fragmentation

rhcopyrhcopy - copy ray samples to/from holodeck - copy ray samples to/from holodeck

rhoptimizerhoptimize - optimize (defragment) holodeck - optimize (defragment) holodeck

rhpictrhpict - generate picture from holodeck - generate picture from holodeck

Page 35: New  Radiance  3.5 Features

Cabin ExampleCabin Example

o Three holodeck sections for three roomsThree holodeck sections for three rooms Living room, bedroom, bathroomLiving room, bedroom, bathroom Local geometry for eachLocal geometry for each

o Holodeck input file:Holodeck input file:RIF= insummer.rifsection= 14 1 3 10 0 0 0 14 0 0 0 4section= 1 1 3 8 0 0 0 8 0 0 0 4section= .5 14 3 7 0 0 0 2 0 0 0 3VDIST= Tgeometry= living.octgeometry= bed.octgeometry= bath.octportals= portals.rad mirrors.rad

rad input file starting point

Holodeck sections

Use virtual ray distance for mirrors

Local geometry octrees

Portal locations

The specification above is all you really need.

Page 36: New  Radiance  3.5 Features

Holodeck Grids

Portals

Page 37: New  Radiance  3.5 Features

Some Other Holodeck VariablesSome Other Holodeck Variables

OBSTRUCTIONS - T/F whether sections OBSTRUCTIONS - T/F whether sections contain objects or not (default: unknown)contain objects or not (default: unknown)

CACHE - amount of RAM to use for holodeckCACHE - amount of RAM to use for holodeck

DISKSPACE - maximum holodeck file sizeDISKSPACE - maximum holodeck file size

TIME - maximum holodeck rendering timeTIME - maximum holodeck rendering time

Page 38: New  Radiance  3.5 Features

Running Running rholorholo

Create empty holodeck from input file:Create empty holodeck from input file:% rholo -f summer.hdk summer.hif% rholo -f summer.hdk summer.hif

Render holodeck in background on 2 CPUs:Render holodeck in background on 2 CPUs:% rholo -n 2 summer.hdk &% rholo -n 2 summer.hdk &

Render holodeck interactively using OGL:Render holodeck interactively using OGL:% rholo -n 1 -o ogl summer.hdk &% rholo -n 1 -o ogl summer.hdk &

Control holodeck display from console:Control holodeck display from console:% rholo -i -o x11 summer.hdk% rholo -i -o x11 summer.hdk

Page 39: New  Radiance  3.5 Features

Interactive Driver CommandsInteractive Driver Commands(mouse)(mouse) - view: approach, retreat, rotate, pivot- view: approach, retreat, rotate, pivot‘‘l’l’ - previous view- previous view‘‘v’v’ - output current view to stdout- output current view to stdout‘‘h’/’H’h’/’H’ - fix/release head height- fix/release head height^R^R - redraw (recomputing tone-mapping)- redraw (recomputing tone-mapping)^L^L - reload samples from holodeck server- reload samples from holodeck server‘‘p’p’ - pause ray calculation- pause ray calculation<cr><cr> - resume ray calculation- resume ray calculation‘‘K’K’ - kill ray calculation- kill ray calculation‘‘R’R’ - restart ray calculation- restart ray calculation‘‘C’C’ - clobber holodeck contents (needs -f)- clobber holodeck contents (needs -f)‘‘q’q’ - quit- quit

Page 40: New  Radiance  3.5 Features

Holodeck DemoHolodeck Demo

Page 41: New  Radiance  3.5 Features

Conclusion on HolodeckConclusion on Holodeck

o New method for interactive ray tracingNew method for interactive ray tracingo Multiprocessor ray calculationMultiprocessor ray calculationo Dynamic ray cachingDynamic ray cachingo Intermediate representation for displayIntermediate representation for displayo Facilitates continuous movementFacilitates continuous movemento Applications in visual simulation, Applications in visual simulation,

architecture, virtual realityarchitecture, virtual reality

Page 42: New  Radiance  3.5 Features

II.II. The The meshmesh Primitive Primitive

o Efficient storage and rendering of large Efficient storage and rendering of large triangle mesh surfacestriangle mesh surfaces Shared vertex informationShared vertex information

o Vertices may hold local surface normal and Vertices may hold local surface normal and (u,v) coordinates(u,v) coordinates Only way to get local coordinates in Only way to get local coordinates in RadianceRadiance

o Syntax and semantics follow Syntax and semantics follow instanceinstance primitiveprimitive

Page 43: New  Radiance  3.5 Features

Using the Using the meshmesh Primitive Primitive

o Compile .OBJ into Compile .OBJ into RadianceRadiance Triangle MeshTriangle Mesh% obj2mesh -a mats.rad tmsh.obj > tmsh.rtm% obj2mesh -a mats.rad tmsh.obj > tmsh.rtm

o Instantiate it in a Instantiate it in a RadianceRadiance scene file scene file void mesh MyMesh1void mesh MyMesh1

3 tmsh.rtm -rx 903 tmsh.rtm -rx 900000

o Compile and render the sceneCompile and render the scene% oconv scene.rad > scene.oct% oconv scene.rad > scene.oct

% rpict [options] scene.oct > scene.pic% rpict [options] scene.oct > scene.pic

Page 44: New  Radiance  3.5 Features

RadianceRadiance 3.4 3.4 gensurfgensurf Surface Surface# gensurf mat OldMesh sin(s) t-cos(s) -t*t 3 3 -s

mat texfunc Phong4 surf_dx surf_dy surf_dz surf.cal013 2 -1.72942317 -0.0912916802 -0.13693752 -1.63423044 -0.36621372 -0.0446389256 0 1.66410059 -0.503849117 0.0531230004 1.34831934 -0.451192852

Phong polygon OldMesh.10012 0.327194697 -0.944956946 0 0.327194697 -0.611623613 -0.111111111 0 -0.666666667 -0.111111111 0 -1 0

mat texfunc Phong4 surf_dx surf_dy surf_dz surf.cal013 2 -0.718206438 -0.174896628 -0.0627037111 -1.01574641 -0.261199779 0.0331146162 0 0.735899411 -0.696150883 0.118121819 0.343143398 -0.3342067

…etc.

Each vertex given ~5 times

one

tria

ngle

, no

(u,v

)

Page 45: New  Radiance  3.5 Features

New New gensurfgensurf -o for .OBJ Output -o for .OBJ Output# gensurf mat NewMesh sin(s) t-cos(s) -t*t 3 3 -o -s

usemtl mat

v 0 -1 0vn 0 0 1vt 0 0

v 0 -0.666666667 -0.111111111vn 0 0.554700196 0.832050294vt 0 0.333333333

v 0 -0.333333333 -0.444444444vn 0 0.8 0.6vt 0 0.666666667

v 0 0 -1vn 0 0.894427191 0.447213595vt 0 1

v 0.327194697 -0.944956946 0vn 0 0 1vt 0.333333333 0

v 0.327194697 -0.611623613 -0.111111111vn -0.188619363 0.544743478 0.817115218vt 0.333333333 0.333333333

v 0.327194697 -0.27829028 -0.444444444vn -0.266950475 0.770968199 0.578226149vt 0.333333333 0.666666667

v 0.327194697 0.0550430537 -1vn -0.295836084 0.854391485 0.427195742vt 0.333333333 1

f 5/5/5 6/6/6 2/2/2 1/1/1f 2/2/2 6/6/6 7/7/7 3/3/3f 7/7/7 8/8/8 4/4/4 3/3/3

…etc.

Each vertex specified only once, providing connectivity information needed by mesh

thre

e tr

iang

les,

wit

h (u

,v)

Page 46: New  Radiance  3.5 Features

Rendering Comparison 1Rendering Comparison 1

1 Million Triangle Sculpture(no surface smoothing)

Model courtesy Paul Debevec, ICT

instanceinstance meshmesh

Compile Compile scenescene

94 sec94 sec

400 Meg400 Meg

60 sec60 sec

400 Meg400 Meg

Render Render picturepicture

32 sec32 sec

208 Meg208 Meg

34 sec34 sec

61 Meg61 Meg

Page 47: New  Radiance  3.5 Features

Rendering Comparison 2Rendering Comparison 2

500K Triangle Surface(w/ normal smoothing)

instanceinstance meshmesh

Compile Compile scenescene

39 sec39 sec

274 Meg274 Meg

30 sec30 sec

269 Meg269 Meg

Render Render picturepicture

18 sec18 sec

208 Meg208 Meg

10 sec10 sec

36 Meg36 Meg

Significant savings from not calling .cal routines during surface normal evaluation

Page 48: New  Radiance  3.5 Features

Rendering Comparison 3Rendering Comparison 3

140K Triangle Chair Model(w/ normals & local coords.)

Model courtesy Bruce Carlin, DecorMagic

instanceinstance meshmesh

Compile Compile scenescene

9 sec9 sec

78 Meg78 Meg

7 sec7 sec

78 Meg78 Meg

Render Render picturepicture

13 min13 min

208 Meg208 Meg

16 min16 min

36 Meg36 MegIm

port

ant b

enef

its

of lo

cal (

u,v)

instance

mesh

Page 49: New  Radiance  3.5 Features

How We Save MemoryHow We Save Memory

An early test image showing patch boundaries

• Vertices use 4-byte integer per dimension (12) and local coordinates use 2 bytes per dim. (4)

• Normals are packed into a 4-byte encoding

• Mesh is broken into patches of at most 256 vertices, permitting 1-byte vertex references

Page 50: New  Radiance  3.5 Features

Mesh Storage RequirementsMesh Storage Requirements

Can hold mesh with 9 times as many Can hold mesh with 9 times as many triangles in the same amount of memorytriangles in the same amount of memory

Vertex typeVertex type RadianceRadiance 3.4 3.4 meshmesh primitive primitive

simplesimple 146 bytes146 bytes < 16 bytes< 16 bytes

+ normals+ normals +130 bytes+130 bytes +4 bytes+4 bytes

+ (u,v)+ (u,v) n/an/a +4 bytes+4 bytes

Storage/triangle

Page 51: New  Radiance  3.5 Features

Mesh Problems in 3.5 ReleaseMesh Problems in 3.5 Release

o Local (u,v) coordinates brokenLocal (u,v) coordinates brokeno meshmesh instances aren’t properly freed instances aren’t properly freedo xformxform doesn’t add transforms to mesh doesn’t add transforms to mesh

instances as it shouldinstances as it shouldo All of the above is fixed in current HEAD All of the above is fixed in current HEAD

distribution available from distribution available from www.radiance-online.orgwww.radiance-online.org

Page 52: New  Radiance  3.5 Features

Conclusion on Conclusion on meshmesh Primitive Primitive

o As easy to use as As easy to use as instanceinstance primitive primitiveo Provides local (u,v) coordinates to map Provides local (u,v) coordinates to map

patternspatternso Saves up to 85% of rendering memorySaves up to 85% of rendering memoryo obj2meshobj2mesh program compiles .OBJ files program compiles .OBJ files

.OBJ is simplest vertex-sharing format .OBJ is simplest vertex-sharing format New 3.5 New 3.5 gensurfgensurf can produce .OBJ directly can produce .OBJ directly Many CAD programs export .OBJ as wellMany CAD programs export .OBJ as well Future support for Future support for MGFMGF??

Page 53: New  Radiance  3.5 Features

III.III. The The ranimoveranimove Program Program

o ““Just in time” animation systemJust in time” animation system You tell it when to finish and it does its bestYou tell it when to finish and it does its best

o Exploits inattentional blindness and IBRExploits inattentional blindness and IBR WYDSYWM: What you don’t see you won’t missWYDSYWM: What you don’t see you won’t miss Image-based motion blur and sample Image-based motion blur and sample

extrapolation accelerates renderingextrapolation accelerates rendering

o Error visibility tied to attention and motionError visibility tied to attention and motion

DVDDetail2Attention

Page 54: New  Radiance  3.5 Features

ranimate ranimate vs.vs. ranimove ranimove

ranimateranimate ranimoveranimove

Execution modeExecution mode Runs Runs rpictrpict, , pinterppinterp & & pfiltpfilt

Calls rendering Calls rendering librarylibrary

Network renderingNetwork rendering

File managementFile management

Object motion blurObject motion blur

ProgressiveProgressive

Page 55: New  Radiance  3.5 Features

Input:• Task• Geometry• Lighting• View

High-level Vision Model

Geometric Entity

Ranking

Object Map & Motion Lookup Task Map

Current Frame & Error Estimate

Frame Ready?

Output Frame

Contrast Sensitivity

ModelError

Conspicuity Map

Refine Frame

No

Yes

Last Frame

Iterate

WYDSYWM FrameworkWYDSYWM Framework

First Order

Render

Page 56: New  Radiance  3.5 Features

Example Example ranimoveranimove Input Input## First animation segment input for ranimove#RIF= shipfull.rifVIEW= seg1all.vfRESOLUTION= 640 480 0RATE= 15MBLUR= .35BASENAME= seg1/s1_%04d## Moving objects## move= parent this transform radfile [priority]move= void TV seg1TVall.xf TV.rad 1.5move= TV topRotor topTVrotor.xf topTVrotor.rad .5move= TV botRotor botTVrotor.xf botTVrotor.rad .5move= TV screen . "!genTVscreen.csh 90.03 15" 1.5move= TV strobe . "!genTVstrobe.csh 90.03 15"move= void lanterns . blant.rad 2.5move= void extinguishers . exting.rad 2

Target frame rate

Frame fraction for virtual shutter

ranimove manages object motion based on the specification below

The optional priority value indicates the importance of this object relative to others in the scene

Page 57: New  Radiance  3.5 Features

Example Example ranimoveranimove Input Input## First animation segment input for ranimove#RIF= shipfull.rifVIEW= seg1all.vfRESOLUTION= 640 480 0RATE= 15MBLUR= .35BASENAME= seg1/s1_%04d## Moving objects## move= parent this transform radfile [priority]move= void TV seg1TVall.xf TV.rad 1.5move= TV topRotor topTVrotor.xf topTVrotor.rad .5move= TV botRotor botTVrotor.xf botTVrotor.rad .5move= TV screen . "!genTVscreen.csh 90.03 15" 1.5move= TV strobe . "!genTVstrobe.csh 90.03 15"move= void lanterns . blant.rad 2.5move= void extinguishers . exting.rad 2

VIEW= -vtv -vh 40 -vv 30.537 -vu 0 0 1 -vp 79 24 5.5 -vd -0.970 143 -0.194029 -0.145521VIEW= -vp 78.9133 23.9897 5.5 -vd -0.970137 -0.194071 -0.145526VIEW= -vp 78.816 23.978 5.5 -vd -0.97012 -0.194192 -0.145539VIEW= -vp 78.7086 23.9651 5.5 -vd -0.970093 -0.194386 -0.14556VIEW= -vp 78.5917 23.9511 5.5 -vd -0.970057 -0.194648 -0.145588VIEW= -vp 78.4657 23.9359 5.5 -vd -0.970012 -0.19497 -0.145623VIEW= -vp 78.3312 23.9198 5.5 -vd -0.96996 -0.195347 -0.145664VIEW= -vp 78.1887 23.9026 5.5 -vd -0.969901 -0.195771 -0.14571VIEW= -vp 78.0387 23.8845 5.5 -vd -0.969836 -0.196238 -0.145761

…etc.

-rx 2.00026 -ry 0.231153 -rz 9.97859 -t 76.1762 23.3941 5.11827-rx 1.94718 -ry 0.250499 -rz 17.8238 -t 76.0904 23.3943 5.11709-rx 1.88744 -ry 0.273596 -rz 28.6571 -t 75.9815 23.3936 5.11524-rx 1.82145 -ry 0.300397 -rz 41.5607 -t 75.851 23.3924 5.113-rx 1.74964 -ry 0.330856 -rz 55.617 -t 75.7006 23.3914 5.11063-rx 1.67242 -ry 0.364925 -rz 69.9083 -t 75.5318 23.391 5.10842-rx 1.59022 -ry 0.402559 -rz 83.5169 -t 75.3461 23.3918 5.10664-rx 1.50345 -ry 0.44371 -rz 95.5251 -t 75.1451 23.3943 5.10557…etc.

#!/bin/csh -f## Generate nth frame of our narration#

set frm=`ev "ceil(($1+$3/$2)*15)"`

if ($frm < 10) then set i=000$frmelse if ($frm < 100) then set i=00$frmelse if ($frm < 1000) then set i=0$frmelse set i=$frmendif

djpeg narration_jpeg/frame$i.jpg | ra_ppm -r \> narrator.pic

cat << '_EOF_'void colorpict screenpicture7 red green blue narrator.pic . (Py*12+2.5)/3.75 (Pz*12+1.875)/3.7500screenpicture glow screenglow004 .7 .7 .7 0

!(echo screenglow polygon screen 0 0 132 ; \ rcalc -e '$1=.295;$2=$1/12;$3=$2/12' roundrect.pts)'_EOF_'

Page 58: New  Radiance  3.5 Features

Example Frame w/ Task ObjectsExample Frame w/ Task Objects

Page 59: New  Radiance  3.5 Features

Error Map EstimationError Map Estimation

o Stochastic errors may be estimated from Stochastic errors may be estimated from neighborhood samplesneighborhood samples

o Systematic error bounds may be estimated Systematic error bounds may be estimated from knowledge of algorithm behaviorfrom knowledge of algorithm behavior

o Estimate accuracy is not critical for good Estimate accuracy is not critical for good performanceperformance

Page 60: New  Radiance  3.5 Features

Initial Error EstimateInitial Error Estimate

Page 61: New  Radiance  3.5 Features

Image-based Refinement PassImage-based Refinement Pass

o Since we know exact motion, IBR works Since we know exact motion, IBR works very well in this frameworkvery well in this framework

o Select image values from previous frameSelect image values from previous frame Criteria include coherence, accuracy, Criteria include coherence, accuracy,

agreementagreement

o Replace current sample and degrade errorReplace current sample and degrade error Error degradation results in sample retirementError degradation results in sample retirement

Page 62: New  Radiance  3.5 Features

Contrast Sensitivity ModelContrast Sensitivity Model

Additional samples are directed based on Daly’s CSF model:

where: is spatial frequencyvR is retinal velocity

Page 63: New  Radiance  3.5 Features

Error Conspicuity ModelError Conspicuity Model

Retinal velocity depends on task-level saliency:

Page 64: New  Radiance  3.5 Features

Error Conspicuity MapError Conspicuity Map

Page 65: New  Radiance  3.5 Features

Implementation ExampleImplementation Example

o Compared to a standard Compared to a standard rendering that finished in rendering that finished in the same time, the same time, ranimoveranimove produced better quality produced better quality on task objectson task objects

o Rendering the same high Rendering the same high quality over the entire quality over the entire frame would take about 7 frame would take about 7 times longer using the times longer using the standard methodstandard method

Framew

ork renderingStandard rendering

Page 66: New  Radiance  3.5 Features

Example AnimationExample Animation

o The following animation was rendered at The following animation was rendered at two minutes per frame on a 2000 model G3 two minutes per frame on a 2000 model G3 laptop computer (long may it live)laptop computer (long may it live)

o Many artifacts are intentionally visible, but Many artifacts are intentionally visible, but less so if you are performing the taskless so if you are performing the task

DVDDetail2Attention Seg1Bonus

Page 67: New  Radiance  3.5 Features

Conclusion on Conclusion on ranimoveranimove

o Better than Better than ranimateranimate when object motion when object motion and rendering time/quality trade-offs are and rendering time/quality trade-offs are more important than rendering managementmore important than rendering management

o Takes a little effort to prepare the control Takes a little effort to prepare the control file, but like the holodeck, it’s usually worth itfile, but like the holodeck, it’s usually worth it

o Network rendering can still be done, but the Network rendering can still be done, but the user has to coordinate frame segmentsuser has to coordinate frame segments

Page 68: New  Radiance  3.5 Features

What to Expect in What to Expect in RadianceRadiance 3.6 3.6

o Fixes to Fixes to meshmesh primitive (obviously) primitive (obviously)o New -N option to rad to start multiple New -N option to rad to start multiple

rendering processesrendering processeso Increase in maximum holodeck sizeIncrease in maximum holodeck sizeo Binary I/O in Binary I/O in rcalcrcalc program programo 16-bit/sample and LZW support in 16-bit/sample and LZW support in ra_tiffra_tiffo Windows ready??Windows ready??