Skip to main content
Updated and revised slightly.
Source Link
troy_s
  • 12.3k
  • 2
  • 37
  • 76

Photographic still images hold a good deal of latitudedynamic range, or the entire range of light from darkest to lightest value within a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four orto five stops or more over middle grey. Film has often more than a sufficient numberThe log encoding of film, at certain exposures, may retain enough stops above middle grey to hold and delicately roll off the highlight from a candle in many instances. Digital CGI though doesn't have an automatic and "native" latitudedynamic range like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

The secret to this answer is the sRGB EOTF default view transform. This transform is directly dumped into the view via OpenGL callswas designed for an entirely different purpose, which are clippedand as a result terminates the dynamic range at a display referred valuerange of typically 1.0. That is, the sRGB view LUT is completely blind and ignoranttransform, and chops off alldesigned for an entirely different purpose well outside of rendering, uses a range of values that is not useful nor meaningful within the scene referred data above 1.0context of ray traced rendering.

In your scene, the linear value of approximately 0.2 will be your baseline middle grey via the default view transform. That leaves a meagermeagre two and a bitportion stops above middle grey for the entire scene's highlights, something even bright paper can exceed. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that, because the round offview transform terminates at a peak of highlights is entirely chopped off1.0 scene referred, and our candle flame bursts out togreatly exceeds the limit of our display referred whitetransform long before an equivalent film stock would.

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with within the default sRGB display referred transform from the scene referred data.

As a resultTo overcome this problem, anothera possible solution could be to apply a method to get more stops into a gentle roll-off "under" the scene referred limits of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Tone mapping however, is extremely sub optimal given the nature of most existing formulas and the methods they use to map the dynamic range to the sRGB view transform. Further, you are still saddled with the characteristic contrast curvature of the sRGB EOTF, which means negotiating contrast can be more complicated than it need be. It could be considered that a more appropriate approach is to use or craft a proper and reliable view transform that more closely emulates a dynamic range that of the photographic medium.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candle in many instances. Digital CGI though doesn't have an automatic and "native" latitude like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Photographic still images hold a good deal of dynamic range, or the entire range of light from darkest to lightest value within a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four to five stops or more over middle grey. The log encoding of film, at certain exposures, may retain enough stops to hold and delicately roll off the highlight from a candle in many instances. Digital CGI though doesn't have an automatic and "native" dynamic range like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

The secret to this answer is the sRGB EOTF default view transform. This transform was designed for an entirely different purpose, and as a result terminates the dynamic range at a display referred range of 1.0. That is, the sRGB view transform, designed for an entirely different purpose well outside of rendering, uses a range of values that is not useful nor meaningful within the context of ray traced rendering.

In your scene, the linear value of approximately 0.2 will be your baseline middle grey via the default view transform. That leaves a meagre two and a portion stops above middle grey for the entire scene's highlights, something even bright paper can exceed. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that, because the view transform terminates at a peak of 1.0 scene referred, our candle flame greatly exceeds the limit of our display referred transform long before an equivalent film stock would.

The whole concept of photorealism then, is inherently broken and fundamentally impossible within the default sRGB display referred transform from the scene referred data.

To overcome this problem, a possible solution could be to apply a method to get more stops into a gentle roll-off "under" the scene referred limits of the sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Tone mapping however, is extremely sub optimal given the nature of most existing formulas and the methods they use to map the dynamic range to the sRGB view transform. Further, you are still saddled with the characteristic contrast curvature of the sRGB EOTF, which means negotiating contrast can be more complicated than it need be. It could be considered that a more appropriate approach is to use or craft a proper and reliable view transform that more closely emulates a dynamic range that of the photographic medium.

Damn typos.
Source Link
troy_s
  • 12.3k
  • 2
  • 37
  • 76

While cegaton's answer will work, I'd like to point out that your question is much more complex than what many folks might see at first glance and is a perfect example to examine the output view transform.

Photorealism and Flames

Flames are, as we all know, bright.

When we say a term such as "photorealistic" we can infer very quickly that the learned aesthetic is referencing something. In this case, it is referencing the learned aesthetic of photography.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candelcandle in many instances. Digital CGI though doesn't have an automatic and "native" latitude like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

So what is happening in your image if you manage to get the emission correct on the candle? The candle can be very obviously emitting a coloured light, but no such colour is captured in the default render? How come?

The Secret Sauce of Views

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

Reconciling Display Referred and Scene Referred

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Again, cegaton's answer will obviously work fine, but this question provides a wonderful opportunity to explore the nature of "photorealism" and the OpenColorIO view transformations.

While cegaton's answer will work, I'd like to point out that your question is much more complex than what many folks might see at first glance and is a perfect example to examine the output view transform.

Photorealism and Flames

Flames are, as we all know, bright.

When we say a term such as "photorealistic" we can infer very quickly that the learned aesthetic is referencing something. In this case, it is referencing the learned aesthetic of photography.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candel in many instances. Digital CGI though doesn't have an automatic and "native" latitude like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

So what is happening in your image if you manage to get the emission correct on the candle? The candle can be very obviously emitting a coloured light, but no such colour is captured in the default render? How come?

The Secret Sauce of Views

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

Reconciling Display Referred and Scene Referred

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Again, cegaton's answer will obviously work fine, but this question provides a wonderful opportunity to explore the nature of "photorealism" and the OpenColorIO view transformations.

While cegaton's answer will work, I'd like to point out that your question is much more complex than what many folks might see at first glance and is a perfect example to examine the output view transform.

Photorealism and Flames

Flames are, as we all know, bright.

When we say a term such as "photorealistic" we can infer very quickly that the learned aesthetic is referencing something. In this case, it is referencing the learned aesthetic of photography.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candle in many instances. Digital CGI though doesn't have an automatic and "native" latitude like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

So what is happening in your image if you manage to get the emission correct on the candle? The candle can be very obviously emitting a coloured light, but no such colour is captured in the default render? How come?

The Secret Sauce of Views

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

Reconciling Display Referred and Scene Referred

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Again, cegaton's answer will obviously work fine, but this question provides a wonderful opportunity to explore the nature of "photorealism" and the OpenColorIO view transformations.

Update description explaining difference between CGI and native film latitude.
Source Link
troy_s
  • 12.3k
  • 2
  • 37
  • 76

While cegaton's answer will work, I'd like to point out that your question is much more complex than what many folks might see at first glance and is a perfect example to examine the output view transform.

Photorealism and Flames

Flames are, as we all know, bright.

When we say a term such as "photorealistic" we can infer very quickly that the learned aesthetic is referencing something. In this case, it is referencing the learned aesthetic of photography.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candel in many instances. Digital CGI though doesn't have a built inan automatic and "native" latitude like film, but rather relies on thea uniquely crafted display referred transform to map these ranges of light.

So what is happening in your image if you manage to get the emission correct on the candle? The candle can be very obviously emitting a coloured light, but no such colour is captured in the default render? How come?

The Secret Sauce of Views

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

Reconciling Display Referred and Scene Referred

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Again, cegaton's answer will obviously work fine, but this question provides a wonderful opportunity to explore the nature of "photorealism" and the OpenColorIO view transformations.

While cegaton's answer will work, I'd like to point out that your question is much more complex than what many folks might see at first glance and is a perfect example to examine the output view transform.

Photorealism and Flames

Flames are, as we all know, bright.

When we say a term such as "photorealistic" we can infer very quickly that the learned aesthetic is referencing something. In this case, it is referencing the learned aesthetic of photography.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candel in many instances. Digital CGI though doesn't have a built in latitude like film, but rather relies on the display referred transform to map these ranges of light.

So what is happening in your image if you manage to get the emission correct on the candle? The candle can be very obviously emitting a coloured light, but no such colour is captured in the default render? How come?

The Secret Sauce of Views

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

Reconciling Display Referred and Scene Referred

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Again, cegaton's answer will obviously work fine, but this question provides a wonderful opportunity to explore the nature of "photorealism" and the OpenColorIO view transformations.

While cegaton's answer will work, I'd like to point out that your question is much more complex than what many folks might see at first glance and is a perfect example to examine the output view transform.

Photorealism and Flames

Flames are, as we all know, bright.

When we say a term such as "photorealistic" we can infer very quickly that the learned aesthetic is referencing something. In this case, it is referencing the learned aesthetic of photography.

Photographic still images hold a good deal of latitude, or the entire range of light from a scene. For example, if a particular film stock holds fifteen stops of light, it might mean that it holds 8 stops down and 7 stops above middle grey.

When we consider a flame, we are dealing with a very large ratio of light in the flame itself, possibly four or five stops or more over middle grey. Film has often more than a sufficient number of stops above middle grey to hold and delicately roll off the highlight from a candel in many instances. Digital CGI though doesn't have an automatic and "native" latitude like film, but rather relies on a uniquely crafted display referred transform to map these ranges of light.

So what is happening in your image if you manage to get the emission correct on the candle? The candle can be very obviously emitting a coloured light, but no such colour is captured in the default render? How come?

The Secret Sauce of Views

The secret to this answer is the sRGB default view transform. This transform is directly dumped into the view via OpenGL calls, which are clipped at a display referred value of typically 1.0. That is, the sRGB view LUT is completely blind and ignorant, and chops off all of the scene referred data above 1.0.

In your scene, the linear value of 0.2 will be your baseline middle grey via the default view transform. That leaves a meager two and a bit stops above middle grey for the entire scene's highlights. That is, 0.2 + 0.2 is one stop, 0.4 + 0.4 is two stops, and the remaining 0.2 is a sliver of the next stop. That pathetically small two and a bit stops is obviously not even remotely the amount of latitude required to maintain any semblance of colour in the flame, and not even remotely close to emulating the dynamic range of a photograph.

When we compare that with the amount of light our sample film stock holds, we can see that the round off of highlights is entirely chopped off, and our candle flame bursts out to display referred white long before an equivalent film stock would.

Reconciling Display Referred and Scene Referred

The whole concept of photorealism then, is inherently broken and fundamentally impossible, with the default sRGB display referred transform from the scene referred data.

As a result, another possible solution could be to apply a method to get more stops into a gentle roll-off of the default sRGB view transform. In this case, trying a tone mapping operation or using a custom curve in the Color Management settings that bends roughly six or seven stops of latitude into the range between 0.2 and 1.0 display referred. For the more adventurous artist, they can experiment with crafting their own display referred view transforms that seek to emulate a closer dynamic range of film / digital photography.

Again, cegaton's answer will obviously work fine, but this question provides a wonderful opportunity to explore the nature of "photorealism" and the OpenColorIO view transformations.

Update for more explanation of film latitude.
Source Link
troy_s
  • 12.3k
  • 2
  • 37
  • 76
Loading
Source Link
troy_s
  • 12.3k
  • 2
  • 37
  • 76
Loading