52
1 MARCH 2016 | FIRERENDER, FIRERAYS TAKAHIRO HARADA, DMITRY KOZLOV 3/16/2016 MULTIPLATFORM GPU RAY.TRACING SOLUTIONS WITH FIRERENDER AND FIRERAYS

[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

Embed Size (px)

Citation preview

Page 1: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

1" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

TAKAHIRO"HARADA,"DMITRY"KOZLOV"3/16/2016"

MULTIPLATFORM+GPU+RAY.TRACING+SOLUTIONS+WITH+FIRERENDER+AND+FIRERAYS+

Page 2: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

2" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  FireRender"‒ All"in"package"(ray"casKng,"shading)"‒ For"renderer"users"‒ Output"Q"Rendered"image"‒ Physically"based"rendering"library"

!  FireRays"‒ For"renderer"developers"‒ Output"Q"IntersecKons"‒ Ray"intersecKon"library"

!  Implemented"using"OpenCL"

MULTIPLATFORM"GPU"RAYQTRACING"SOLUTIONS"

Page 3: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

3" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  FireRender"‒ Features"‒ Architecture"‒ Examples"

!  FireRays"‒ IntroducKon"‒ Technology"‒ Examples"

AGENDA"

Page 4: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

4" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERENDER+

Page 5: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

5" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  “Fast"high"quality"rendering"everywhere”"""""""""GPU""""""""Path"tracing"""""""""""""OpenCL"

!  C"API"!  OpenCL"1.2"!  MulK"pla`orm"soluKon"

‒ OS"(Windows,"Linux)"‒ Vendor"(AMD,…)"

FIRERENDER"

Page 6: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

6" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FEATURES"

! Camera"

MoKon"Blur"DOF" Bokeh"

! Geometry"

Instancing"Mesh" Subdivision"

! Lights"

Area"IES"Spot"Point"

Page 7: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

7" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FEATURES"MATERIALS"

! BSDFs"! Basic"components"

Diffuse"reflecKon"

! Shader"graph"! Arbitrary"connecKon"of"shader"nodes"for"flexible"shading"system"

Diffuse"refracKon" Glossy"reflecKon" Glossy"refracKon" Spec."reflecKon" Spec."refracKon" SSS"

Input"Lookup" ArithmeKc" Example" Example" Example"Procedural" Blend"BSDFs""

Page 8: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

8" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

HOW"FIRERENDER"IS"BUILT"FIRERENDER+ARCHITECTURE+

Page 9: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

9" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

ARCHITECTURE"OVERVIEW"

!  Input:"scene"info"!  Output:"rendered"image"

!  Runs"on""‒ Single"GPU"‒ MulKple"GPUs"‒ CPUs"‒ Mix"of"these"

CPU+

OpenCL+

FireRender+Core+

User+

Geometry,"material,"light" Rendered"image"

FireRender+API+

GPU+#2+GPU+#1+

Page 10: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

10" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERENDER+CORE+

Page 11: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

11" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Split"kernel"implementaKon"‒ Modular"

‒ Easy"to"modify,"extend,"debug"‒ Change"behavior"by"replacing"a"kernel"

‒ Ray"casKng"kernel"=>"FireRays,"Vector"displacement,"Out"of"core"support"‒ Camera"=>"Bake"camera"

‒ High"GPU"uKlizaKon"‒ Less"GPR"usage"‒ Bener"performance"

IMPLEMENTATION"

Page 12: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

12" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Textures"‒ Manually"managed"‒ No"limit"to"the"number"of"textures"(up"to"the"memory"limit)"

!  Lights"‒ Many"lights"are"challenging"

‒ Slow"convergence"‒ OpKmized"for"many"lights"

‒ GPU"opKmized"stochasKc"light"culling"

IMPLEMENTATION"

6,000"area"lights"

Page 13: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

13" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

IMPLEMENTATION"MATERIAL"SYSTEM"

!  Material"=="shader"graph"‒ Arbitrary"node"connecKon"‒ BSDFs"(Closures),"textures,"arithmeKc"operaKon"

!  For"each"shading"point"‒ Traverse"the"graph"

=>"BSDF"+"Parameters"‒ Evaluate"BSDF"‒ Sample"using"BSDF"

Page 14: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

14" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Make"single"frame"render"faster"!  Screen"split"!  Support"heterogeneous"GPUs"!  Load"balancing"

‒ Minimize"the"idle"Kme"on"GPU"

IMPLEMENTATION"MULTI"GPU"SUPPORT"

7"GPUs"

Page 15: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

15" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

HOW"TO"USE"FIRERENDER"FIRERENDER+API+

Page 16: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

16" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Initialization

FIRERENDER"API"EXAMPLE"(1/4)"SIMPLE"RENDER"

Camera Set up

// Create OpenCL context using a single GPU

fr_context context;

fr_material_system matsys;

fr_scene scene;

frCreateContext(FR_API_VERSION, FR_CONTEXT_OPENCL, FR_CREATION_FLAGS_ENABLE_GPU0, NULL, NULL, &context);

frContextCreateMaterialSystem(context, 0, &matsys);

frContextCreateScene(context, &scene);

frContextSetScene(context, scene);

// Create camera

fr_camera camera;

frContextCreateCamera(context, &camera);

frCameraLookAt(camera, 5, 5, 20, 0, 0, 0, 0, 1, 0);

frCameraSetFocalLength(camera, 75.f);

frSceneSetCamera(scene, camera);

Page 17: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

17" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

// Create point light

fr_light light;

frContextCreatePointLight(context, &light);

frLightSetTransform(light, FR_TRUE, &lightm(0,0));

frPointLightSetRadiantPower3f(light, 255, 241, 224);

frSceneAttachLight(scene, light);

// Create plane mesh

fr_shape plane;

frContextCreateMesh(context,...);

frSceneAttachShape(scene, plane);

// Create simple diffuse shader

fr_material_node diffuse;

frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_DIFFUSE, &diffuse);

frMaterialNodeSetInputF(diffuse, "color", 0.5f, 0.5f, 0.5f, 1.f);

frShapeSetMaterial(plane, diffuse);

FIRERENDER"API"EXAMPLE"(2/4)"SIMPLE"RENDER""

Create Point Light

Create Mesh

Create shader

Page 18: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

18" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Create frame buffer

Render & Save

// Create framebuffer to store rendering result

fr_framebuffer_desc desc;

desc.fb_width = 800;

desc.fb_height = 600;

fr_framebuffer_format fmt = {4, FR_COMPONENT_TYPE_FLOAT32};

fr_framebuffer frame_buffer;

frContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer);

frFrameBufferClear(frame_buffer);

frContextSetAOV(context, FR_AOV_COLOR, frame_buffer);

// Render

frContextRender(context);

// Save the result to file

frFrameBufferSaveToFile(frame_buffer, "simple_render.png");

FIRERENDER"API"EXAMPLE"(3/4)"SIMPLE"RENDER""

Page 19: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

19" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Create frame buffer

Render & Save

// Create framebuffer to store rendering result

fr_framebuffer_desc desc;

desc.fb_width = 800;

desc.fb_height = 600;

fr_framebuffer_format fmt = {4, FR_COMPONENT_TYPE_FLOAT32};

fr_framebuffer frame_buffer;

frContextCreateFrameBuffer(context, fmt, &desc, &frame_buffer);

frFrameBufferClear(frame_buffer);

frContextSetAOV(context, FR_AOV_COLOR, frame_buffer);

// Render

frContextRender(context);

// Save the result to file

frFrameBufferSaveToFile(frame_buffer, "simple_render.png");

FIRERENDER"API"EXAMPLE"(3/4)"SIMPLE"RENDER""

Page 20: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

20" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

// Create BXDFs

fr_material_node base, top;

{

frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_DIFFUSE, &base);

frMaterialNodeSetInputF(base, "color", r0, g0, b0, 1.f);

frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_MICROFACET, &top);

frMaterialNodeSetInputF(top, "color", r1, g1, b1, 1.f);

frMaterialNodeSetInputF(top, "roughness", 0.1f, 0.f, 0.f, 1.f);

}

// Create a layered shader

fr_material_node layered;

{

frMaterialSystemCreateNode(matsys, FR_MATERIAL_NODE_BLEND, &layered);

frMaterialNodeSetInputN(layered, "color0", base);

frMaterialNodeSetInputN(layered, "color1", top);

frMaterialNodeSetInputF(layered, "weight", 0.5f, 0.5f, 0.5f, 1.f);

}+

FIRERENDER"API"EXAMPLE"(4/4)"LAYERED"SHADER"

Blend+

Diffuse+ Glossy+ Weight+++0.5+

Page 21: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

21" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

PERFORMANCE+

Page 22: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

22" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"FEBRUARY"2015"""|"""CONFIDENTIAL"

RENDERING"TIME?"2"X"RADEON"PRO"DUO"@"1280"X"720"

Page 23: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

23" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"FEBRUARY"2015"""|"""CONFIDENTIAL"

RENDERING"TIME?"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""~"5"SECONDS"2"X"RADEON"PRO"DUO"@"1280"X"720"

Page 24: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

24" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

PERFORMANCE"2"X"RADEON"PRO"DUO"@"1280"X"720"

5s+ 30s+

Page 25: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

25" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

PERFORMANCE"2"X"RADEON"PRO"DUO"@"1280"X"720"

5s+ 30s+

Page 26: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

26" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

PERFORMANCE"2"X"RADEON"PRO"DUO"@"1280"X"720"

5s+ 30s+

Page 27: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

27" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

EXAMPLES+

Page 28: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

28" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

EXAMPLES"

Page 29: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

29" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Page 30: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

30" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Page 31: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

31" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Page 32: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

32" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

Page 33: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

33" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

3DS"MAX"PLUGIN"DEMO"

Page 34: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

34" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Open"to"registered"developers"

!  hnp://developer.amd.com/toolsQandQsdks/graphicsQdevelopment/fireproQsdk/amdQfirerenderQtechnology/"

!  [email protected]"

FIRERENDER"SDK"

Page 35: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

35" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERAYS+

Page 36: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

36" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  PhotorealisKc"rendering"!  Collision"detecKon"!  ParKcle"physics"!  Game"AI""!  Medical"imaging"!  PredicKve"rendering"!  Sound"propagaKon"!  RealQKme"effects"

MOTIVATION"

Page 37: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

37" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Massively"parallel"architecture"!  Naïve"approach"does"not"work"on"GPUs"

!  Variety"of"hardware"to"support"!  Rapidly"changing"sovware""

‒ DX/GL"‒ "OpenCL"‒ "Vulkan/DX12"‒ "HCC"

GPU"ACCELERATION"

Page 38: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

38" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Fast"intersecKon"API:""‒ Best"perf"on"AMD"‒ CPU/GPU/MGPU"

GPU"ACCELERATION:""FIRERAYS"

!  CrossQpla`orm"‒ Windows"/"Linux"/""OSX"

!  CrossQvendor"

!  OpenQsource"renderer"!  Hosted"on"GPUOpen"

Page 39: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

39" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Triangle"meshes"!  Instancing"support"

"

GPU"ACCELERATION:""FIRERAYS"

!  Fast"traversal"!  Ray"masking"

"

!  CPU/GPU"BVH"!  OpenCL"interop"

"

Page 40: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

40" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  SDK"is"hosted"on"GitHub"!  Library"binaries:"

‒ "Windows""‒ "Mac"OS"(coming"soon)"‒ "Linux"("coming"soon)"

!  OpenQsource"sample"renderer"‒ "Efficient"streaming"pathQtracer"‒ "Illustrates"FireRays"usage"

!  Benchmark"

FIRERAYS:"SDK"

hnps://github.com/GPUOpenQLibrariesAndSDKs/FireRays_SDK"

Page 41: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

41" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  High"quality"CPU"SBVH"‒ "Takes"longer"to"build""‒ "Fastest"traversal"‒ "Stackless"and"short"LDS"stack"‒ "Good"for"final"rendering"

FIRERAYS:"TECHNOLOGY"

!  GPU"HLBVH"‒ "Fastest"build"‒ "Slower"traversal"(stacked"LDS)"‒ "Good"for"animaKon"&"preview"

Page 42: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

42" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Fully"openQsource"!  Reference"path"tracer"!  Microkernel"based"!  Efficient"reQcompacKon"!  Supports"mulKple"GPUs"!  Implemented"using"FireRays"OpenCL"interop"

FIRERAYS:"EXAMPLE"RENDERER"

!  Compound"materials"‒ "Diffuse"‒ "ReflecKon"/"refracKon"‒ "Microfacet"Blinn"/"GGX"/"Beckmann"

‒ "Blend"‒ "Bump"‒ "Volume"scanering"‒ "SSS""

Page 43: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

43" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Renderer"developers"‒ "Easy"integraKon"‒ "CrossQpla`orm"

FIRERAYS:"APPLICATIONS"

!  CG"researchers"‒ "Fast"prototyping"‒ "OpenQsource"renderer"‒ "Going"fully"openQsource!"

!  Physics"researchers"‒ "Easy"to"use"API"‒ "Not"specific"to"CG"

!  Game"developers"‒ "Light"baking"‒ "Future"effects"‒ "We"are"going"Vulkan!"

Page 44: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

44" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERAYS:"API"USAGE"

!  Pass"your"meshes"into"FireRays"!  Setup"ray"buffers"

‒ "From"the"host"‒ "Or"CL"kernel"

!  Query"intersecKons"!  Handle"intersecKons"

// Enumerate all shapes in the scene !for (int i = 0; i < (int)shapes.size(); ++i) !{ !

Shape* shape = nullptr; !shape = api->CreateMesh(vertices, numvertices, sizeof(float3),

indices, 0, nullptr, numprims);!shape->SetTransform(shapes[i].m, inverse(shapes[i].m)); !api->AttachShape(shape); !

} ! !api->Commit(); !

"

// Intersect ray batch !api->IntersectBatch(rays[pass & 0x1], hitcount[pass & 0x1], maxrays, intersections, nullptr, nullptr); !

Page 45: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

45" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERAYS:"BEST"PRACTICES"

!  Use"two"buffers"pingQpong"‒ "Helps"to"handle"many"bounces"

!  Compact"the"work"‒ "Helps"to"avoid"divergence"‒ "Bener"memory"access"

!  Do"not"use"mega"kernels"‒ "Helps"to"reduce"VGPR"usage"

!  Try"to"generate"coherent"rays"

!  Use"mulKple"API"instances"for"mGPU"

!  Let"GPUs"work"asynchronously"!  MonteQCarlo"is"good"to"distribute"to"mulKple"GPUs"

!  Use"lockQless"interacKon"

Page 46: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

46" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERAYS:"EXAMPLE"RENDERER"

!  Intersect"ray"buffer"

! Evaluate"volume"

! Compact"

! Evaluate"volume"

! Evaluate"surface"

! Extend"path"

Page 47: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

47" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Web"interface"‒ "InteracKve"web"product"viewer"‒ "InteracKve"3D"configurator"

!  Specific"requirements"‒ "Mainly"jewelry"rendering"‒ "RGB"is"not"enough"‒ "Need"realQKme"post"effects"

FIRERAYS:"USECASE"

Page 48: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

48" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERAYS:"STARQSHAPED"FILTER"

Bague"Lady"Gemmyo""©"2016"

Page 49: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

49" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

FIRERAYS:"SPECTRAL"RENDERING"

Bague"Lady"Gemmyo""©"2016"

Page 50: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

50" MARCH"2016"""|"""FIRERENDER,"FIRERAYS"MARCH"2016"""|"""FIRERENDER,"FIRERAYS"

!  Go"fully"openQsource"on"GPUOpen!"!  Vulkan"port"

‒ "Gaming"applicaKons"‒ "Flexible"3DQcompute"interop"‒ "Asynchronous"operaKon"

!  NonQbatched"mode"!  FireRender"backend"

FIRERAYS:"WHAT’S"NEXT?"

!  Features"‒ "Faster"builds"/"traversal"‒ "Subdivision"&"displacement"‒ "Out"of"core"‒ "Improved"moKon"blur"

Page 51: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

1 MARCH2016|FIRERENDER,FIRERAYSMARCH2016|FIRERENDER,FIRERAYS

Page 52: [2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays

2 MARCH2016|FIRERENDER,FIRERAYSMARCH2016|FIRERENDER,FIRERAYS

§  WearelookingforpeoplewhocanworkwithusonFirerender&FireRays

§  SeveralposiJonsareavailable‒ DevelopmentofFirerender&FireRays‒ ResearchonMonteCarloraytracingalgorithm‒ ResearchondesigningalgorithmforfutureAMD’sGPU,CPUarchitecture‒ InternshipposiJonisalsoavailable

§  Ifyouareinterestedinthese,contactme([email protected])

LOOKINGFORPEOPLEWHOCANWORKWITHUS