May, 30th 2023

Time

9am Pacific

Agenda

  • Semantic connections

  • Usage of USDLight in video game

Zoom

https://zoom-lfx.platform.linuxfoundation.org/meeting/94179328045?password=3a3f2043-0d30-4e1e-b9b5-35378146b18c

Notes

Usage of USDLux in VideoGame

From Thomas Chollet

1) Usd Light shapes are complex and the position of the light is the center of the light shape ( i.e. center of the sphere or rectangle ). In Unity, the position of the light is the tip of the light cone or pyramid . This means that the lights have to be offset relatively to the radius of the sphere and the spot angle. This may result in lights being incorrectly placed ( ie : ceiling light moved through the ceiling to the upper floor )

2) The cone shaping properties do not match what we have in Unity :

  • Cone softness accepts values over 1.

  • Cone focus has no equivalent.

  • Area lights in Unity do not have a softness parameter.


3) Scaling affects the size of the light in RenderMan, not in Unity.
This is not clearly documented in USD, there’s nothing that mentions how lights should behave with scaling. Moreover, non-uniform scaling or shearing can be applied which is not supported by Unity lights.

4) USD Lights intensity unit is not mentioned in the documentation but it appears to be nits like in Renderman. However it looks like DCCs don’t perform any conversion and just write whatever value they’re using.

5) USD lights don’t have a range property.

Discussion

Light can be in USD in Unity but we can't move them in Unity. 
How engine centric lights are? It seems they are very engine centric. 

During your work, is there some other software such as Autocad that you use to import back to game engine?

In FBX, cone are supported

At Remedy, light are from now, engine lights only, because of the probes that are used. But basic properties should be transferrable into USDLux.

Infinity Ward : Some maths are needed between Omniverse and DCC. They are not believing that USDLux have the full description of lights for the engines : it is a one way trip with calculations for units.
Light are used for cinematics, etc. eg : headlight will work differently in realtime that in cinematics.

Emissive materials are not listed as lights. They are not supported in UsdShade. Basically USD is not supporting emissive for now.
There is no light asset for now in the USD assets. There should be added.

Question : how to make it good to have the correct result? Which render to use to have the source of truth?

Are units well defined? Is there a way to define Candela or Lux?

Michael indicated that there is a wider effort to add unit in USDLux.

@Sebastian "spiff" Grassia mentioned there is kickstart to incorporate PhysLight. There is still a lot to do.  https://github.com/wetadigital/physlight

Thoms Chollet is wondering if it would be possible to have schemas for lights.

Koen mentionned that USD Lux and USD PreviewSurface are the least common denominator.

@Sebastian "spiff" Grassia (Pixar) : The idea for USDLux is to be the base line for lights. And then having schemas for lights that will support actual lights (eg the Renderman plugin)
Having a DCC set of specifications makes sense

@Michael Johnson : we could have a distinction between asset lights and shot light. For example for building : what light during day time and what light during night time?

@Jeremy Cowles explained that his previous experiences with FBX and GLTF made him think that having a starting point ( position, orientation, type) is way better than nothing.

@Sebastian "spiff" Grassia : a lot of work to support light is done in Renderman. They (Pixar) need people to come back to them with concerns.

Koen : Games and VFX/Movie are very diverging for lights : eg : not the same usage of Raytracing.
It would be very difficult to go in the same way for both.

@Sebastian "spiff" Grassia there are applied schemas for USDLux. For example : Sphere light could be a pointLight in a game engine.

Koen : we want to be able to transfer basic information. USD needs to contains information.

Thomas Chollet Action Items:

  • being able to define unit

  • the scale of light shape

@Sebastian "spiff" Grassia unit are easier to define. The shape is more difficult.

There is a new USD LUx channel : https://academysoftwarefdn.slack.com/archives/C058Y8P0LKU

SantaMonica Studio: They are checking what they need to work with USDLux. Their plan is to have special schemas for lights. They also want to move a lot of data in USD.



Hydra delegate : how to use hydra delegates? Do we need them in games?

@Jeremy Cowles we could make the game engine the hydra delegate. At Unity they made experiment but they stopped.

@Levi Biasco mentioned it could be a lot of work

Koen explained that if your game engine is an hydra delegate you can switch from Renderman to your game engine!

@Jeremy Cowles suggested also that it would be the last part of the USD integration.

@Michael Johnson but if you have very talented lookDev Artist, it could be great

Koen : but it is too much effort.
There is no software that can handle large levels because of the amount of specialization and optimization we have in game engines to make it possible.

USD to create hierarchy

@Michael Johnson is wondering is OpenUSD could be a way to create hierarchy.

Koen replied that in games it is more what the camera is seeing.

At Remedy, USD helps creating level and the asset are created in Maya.

Future

Ubisoft is preparing a PR for LODs (could someone link the proposal here?)

Is there an ETA for expression driven attribute?
@Sebastian "spiff" Grassia : more than one year out

Joints

Koen is wondering how to use joints in UsdSkel ? How to create constraints? How to attach bones?

How to use rig at runtime? : eg how to attach a gun to an hand?

@Sebastian "spiff" Grassia mentioned that is TBD : it is not explicitly designed yet. How much is part of USDSkel and how much is part of rigging?

Next meeting

Light follow-up:

  • Action items

  • Discussion with @Anders Langlands 

Semantic connections

Attendance

François Devic, Co-Lead
TJ Trently, Co-Lead, NetEase Games
Alex Schwank - WG Co-chair, Apple
Nick Porcino - WG Co-chair, Pixar
Michael Min - USD Camera WG, Netflix
Roman Zulak - USD on the web WG, NVIDIA
Aaron Luk, NVIDIA
Adam Harder
Alan Blevins, NVIDIA
Alessandro Bernardi - Ubisoft - HELIX Studio
Alex Gerveshi, AWS
Alex Wilkie
Alexander Kalyuzhnyy, Wizart Animation
Allen Hastings, Foundry
Aloys Baillet, Animal Logic
Alson Entuna, Crytek
Alyssa Reuter
Andy Biar, Warner Bros.
Ana Gomez
Anandhaiyappan, Botvfx
Angelo Gabriel Sapaula
Anthony Tan, Autodesk
Anton Palmqvist
Arash Keissami, Nira.app
Arielle Martin, Foundry
Ashwin Bhat - USD and MaterialX, Autodesk 
Barry Ruff
Ben Chung-Hoon, NVIDIA

Ben Deniz
Bernard Kwok, Autodesk
Bill Dwelly
Bill Spitzak, Dreamworks Animation
Blazej Floch
Brian Gyss, 5th Kind
Bruno Ebe
Bruno Landry (Unity)
Carlos Felipe Garcia Murillo
Carolin Colón
Carson Brownlee, Intel
Charleen Chu, SPI
Charles Flèche, Ubisoft Montréal
Chris King
Christopher Lexington
Chris Rydalch, SideFX
Claire Chen
Claire Yb
Claude Robillard
Connor Smith, Magic Leap
Cory Omand, TWDS/Pixar
Curtis Andrus
Dan Herman
Dan Lee
Dan Rolinek
Daniel Heckenberg, Animal Logic
Daniel Lanner
Dave Hale, Riot Games
David Aguilar, Walt Disney Animation
David Larsson, Adobe
Dean Jackson, Apple
Deke Kincaid, Digital Domain
Dhruv Govil, Apple
Divyansh Mishra
Domenico Alessi
Dominic Couture
Doug MacMillan, Tippett Studio
Edward Slavin, NVidia
Élie Michel
Eric Chadwick, Wayfair
Eoin Murphy, NVidia
Eric Enderton, NVidia
Eric Majka, Psyonix/Epic Games
Erik Ostsjo
Étienne Archambault
F. Sebastian Grassia, Pixar
Fabrice Macagno, Animal Logic
Felix Herbst, Prefrontal Cortex
Fernando Leandro
Francois Lord, NAD-UQAC / Rodeo FX
Frieder Erdmann, Ubisoft Massive
Gary Jones, Foundry
Georgie Challis
Gordon Bradley, Autodesk
Gordon Cameron, Epic Games
Guido Quaroni, Adobe
Guillaume Laforge, Autodesk
Guy Martin, NVIDIA
Hendrik Helpach
Henrik Edstrom, Autodesk
Henry Vera, DNEG
James Pedlingham, Foundry
Jeff Bradley, Dreamworks
Jenna Bell, Disney / Invisible Thread
Jennifer Horowitz, Maxar
Jenny Zhang
Jeremiah Zanin, Santa Monica Studio
Jeremy Cowles - USD Assets WG Chair, Unity
Jerran Schmidt, NVIDIA
Jerry Gamache
Jesse Barker
Jesse Ng, Metropolitan Museum of Art
Jessica Wang, Pixar
Joe Hultgren 
John Burnett, Bonfire Studios
John Creighton, Apple
John Hood, SPI
John Mertic, Linux Foundation
Jon Creighton, Apple
Jon Wade, Spotify
Jonah Friedman, Autodesk
Jonathan Gerber
Jonathan Stone
Jonghwan Hwang
Jordan Soles, Rodeo FX
Jordan Thistlewood, Epic
Joshua Miller
Joseph Goldstone
JT Nelson, Pasadena Open Source Consortium/SoCal Blender group
Julien Dubuisson
Kev Kirkland
Kevin Bullock
Kelvin Chu, Riot Games
Kimball Thurston, Weta
Koen Vroeijenstijn, Activision / Infinity Ward
Kristof Minnaert, Remedy Entertainment
Kurtis Schmidt
Laura Scholl
Larry Gritz, SPI
Lee Kerley, SPI
Levi Biasco, Santa Monica Studio
Louis Marcoux, NVIDIA
Lucas Morante, Illusorium
Luca Scheller, RiseFX
Luiz Kruel, R* NYC
Luke Titley
Manuel Köster, Crytek
Mark Alexander
Mark Elendt, SideFX
Mark Final, Foundry
Mark Masson
Mark Manca
Mark Sisson
Mark Tucker, SideFX
Marteinn Oskarsson, Sony Imageworks
Martin Karlsson
Mathieu Bertrand
Mathieu Mazerolle, Foundry
Matias Codesal, NVIDIA
Matt Johnson, Epic Games
Matt Kuruc, NVIDIA
Matthew Levine, WDAS
Matthew Low, DWA
Michael B. Johnson, Apple
Michael Blain, Unity
Michael Buckley
Michael Kass, NVidia
Michael Min
Mika Vehkala, Remedy Entertainment
Mikko Haapoja, Shopify
Nat Brown
Natasha Tatarchuk, Unity
Neil Chodorowski
Niall Redmond, Foundry
Nicolas Popravka, Soul Machines
Nicolas Savva
Nishanth Singaraju
Oliver Dunn
Oscar Sebio, Autodesk
Paolo Selva, Weta
Paul Baaske, Jellyfish Pictures
Paul Molodowitch, NVIDIA
Patrick Palmer
Peter Arcara
Pete Segal
Phil Sawicki, NVIDIA
Prapanch Swamy, Disney / Invisible Thread
Pier Paolo Ciarravano, MPC
Pierre-Luc Bruyere
Quentin Birrer
Ramesh Santhanam
Rebecca Hallac
Richard Frangenberg
Richard Kerris, nVidia
Richard Lei, Weta
Rob Pieké
Rob Stauffer, SideFX
Robert Krupa, Elemental Games
Robin Rowe, CinePaint
Rohit Khonde
Rory Woodford, Foundry
Ryan Stelzleni
Scott Geffert, Metropolitan Museum of Art
Scott Keating
Sean Looper, AWS
Sean McDuffee, Intel
Seb Schmidt, Weta
Sebastian Herholz, Intel
Sebastian Grassia, Pixar
Sebastian Rath, Snowtrack Montréal
Sebastien Dalgo, Unity
Sergei Shaykin, Apple (usdzconvert)
Sergio Rojas, Different Dimension
Serguei Kalentchouk, Netflix
Shane Davis, SideFX
Shawn Dunn, Epic Games
Silvia Palara
Sneha Jaikumar
Spencer Luebbert
Stefan Habel, Foundry
Stephan Leroux, Shopify
Steve Agland, Animal Logic
Steve Hwan, DD
Steve LaVietes
Steven Anichini, Disbelief
Sue Sauer, Sunrise Productions
Sylvain Trottier, NVIDIA
Thibault Lambert
Thomas Chollet
Thomas Kumlehn
Tiago Carvalho
Tim Fowler
Tzung-da Tsai
Vadim Slyusarev
Varun Talwar
Wayne Wu
Will Telford, NVIDIA
Xiaoxi Liu, Unity
Yassine Mankai
YJ Jang

License: CC BY 4.0, Copyright Contributors to the ASWF USD working group.