<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Filmic Games</title>
	<atom:link href="http://filmicgames.com/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://filmicgames.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 10 May 2012 00:19:05 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Can someone please buy a head? by karenmillensell</title>
		<link>http://filmicgames.com/archives/491/comment-page-1#comment-17522</link>
		<dc:creator>karenmillensell</dc:creator>
		<pubDate>Thu, 10 May 2012 00:19:05 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=491#comment-17522</guid>
		<description>Interesting article, thanks for sharing this whit us.</description>
		<content:encoded><![CDATA[<p>Interesting article, thanks for sharing this whit us.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Linear-Space Lighting (i.e. Gamma) by FluxHoudini Project: Part one &#124; A newborn elderly</title>
		<link>http://filmicgames.com/archives/299/comment-page-1#comment-16952</link>
		<dc:creator>FluxHoudini Project: Part one &#124; A newborn elderly</dc:creator>
		<pubDate>Mon, 30 Apr 2012 22:57:35 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=299#comment-16952</guid>
		<description>[...] range of the HDRI based lighting, fortunately Linear light space ( more about Linear Workflow here, here, here and here) is the default for Houdini Mantra So, no worries about that [...]</description>
		<content:encoded><![CDATA[<p>[...] range of the HDRI based lighting, fortunately Linear light space ( more about Linear Workflow here, here, here and here) is the default for Houdini Mantra So, no worries about that [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How Hard is Your Face? by Lucille Ballet</title>
		<link>http://filmicgames.com/archives/679/comment-page-1#comment-16949</link>
		<dc:creator>Lucille Ballet</dc:creator>
		<pubDate>Mon, 30 Apr 2012 20:46:25 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=679#comment-16949</guid>
		<description>Hard faces are ugly like Pollard the football players wife who play for the ravens, her face is harder looking than a man</description>
		<content:encoded><![CDATA[<p>Hard faces are ugly like Pollard the football players wife who play for the ravens, her face is harder looking than a man</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Filmic Tonemapping Operators by bill</title>
		<link>http://filmicgames.com/archives/75/comment-page-1#comment-16848</link>
		<dc:creator>bill</dc:creator>
		<pubDate>Sat, 28 Apr 2012 23:47:56 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=75#comment-16848</guid>
		<description>Make sure you do gamma correction the right way:

- if texture are edited in Gimp/Photoshop are most probably in sRGB space, so you must convert in linear color space manually inside the shader or use GL_TEXTURE_SRGB version..

- if you framebuffer is not sRGB, call glEnable(GL_FRAMEBUFFER_SRGB) (OpenGL 3+) or manually convert via pow func inside the shader.</description>
		<content:encoded><![CDATA[<p>Make sure you do gamma correction the right way:</p>
<p>- if texture are edited in Gimp/Photoshop are most probably in sRGB space, so you must convert in linear color space manually inside the shader or use GL_TEXTURE_SRGB version..</p>
<p>- if you framebuffer is not sRGB, call glEnable(GL_FRAMEBUFFER_SRGB) (OpenGL 3+) or manually convert via pow func inside the shader.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Filmic Tonemapping Operators by Phil</title>
		<link>http://filmicgames.com/archives/75/comment-page-1#comment-16086</link>
		<dc:creator>Phil</dc:creator>
		<pubDate>Wed, 18 Apr 2012 02:46:47 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=75#comment-16086</guid>
		<description>Hi Guilt, having the same issues -- did you figure out a solution?

I noticed that point about &quot;The input is implied to be at a reasonable exposure&quot;, so instead of our typical &quot;rendering colors between 0 and 1&quot; we might have to render to a higher range (-1000 .. 1000? who knows?) -- but then, I thought that&#039;s what the multiplier=16 would do for our LDR texture already.</description>
		<content:encoded><![CDATA[<p>Hi Guilt, having the same issues &#8212; did you figure out a solution?</p>
<p>I noticed that point about &#8220;The input is implied to be at a reasonable exposure&#8221;, so instead of our typical &#8220;rendering colors between 0 and 1&#8243; we might have to render to a higher range (-1000 .. 1000? who knows?) &#8212; but then, I thought that&#8217;s what the multiplier=16 would do for our LDR texture already.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Linear-Space Lighting (i.e. Gamma) by Easy Linear Workflow in Maya Tutorial &#124; Cambrand Designs 3D Blog</title>
		<link>http://filmicgames.com/archives/299/comment-page-1#comment-15676</link>
		<dc:creator>Easy Linear Workflow in Maya Tutorial &#124; Cambrand Designs 3D Blog</dc:creator>
		<pubDate>Sun, 08 Apr 2012 11:13:08 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=299#comment-15676</guid>
		<description>[...] Linear-Space Lighting @ Filmic Games.com - In-depth guide [...]</description>
		<content:encoded><![CDATA[<p>[...] Linear-Space Lighting @ Filmic Games.com - In-depth guide [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How To Split Specular And Diffuse In Real Images by Betty L.</title>
		<link>http://filmicgames.com/archives/233/comment-page-1#comment-14351</link>
		<dc:creator>Betty L.</dc:creator>
		<pubDate>Mon, 19 Mar 2012 04:17:48 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=233#comment-14351</guid>
		<description>Which is brighter? Scattered silver glitter or glossy paint that isn&#039;t silver?</description>
		<content:encoded><![CDATA[<p>Which is brighter? Scattered silver glitter or glossy paint that isn&#8217;t silver?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Filmic Tonemapping Operators by Guilt</title>
		<link>http://filmicgames.com/archives/75/comment-page-1#comment-12219</link>
		<dc:creator>Guilt</dc:creator>
		<pubDate>Fri, 10 Feb 2012 04:48:06 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=75#comment-12219</guid>
		<description>Hi,

I&#039;m trying out the GLSL version of it. Unfortunately the image gets extremely saturated/exposed. Am I doing something wrong here: 

//From Filmic Tonemapping, Uncharted: http://filmicgames.com/archives/75

uniform bool use_tex;
uniform sampler2D tex;
uniform bool use_tex_matrix;
uniform mat4 tex_matrix;
varying vec4 varying_color;
varying vec2 varying_texcoord;

float A = 0.15;
float B = 0.50;
float C = 0.10;
float D = 0.20;
float E = 0.02;
float F = 0.30;
float W = 11.2;
float exposurebias = 2.0;
float multiplier = 16.0;
float power = 0.454;

vec3 Tonemap(vec3 x)
{
return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;
}

vec3 performTonemap(vec3 tmp)
{
  vec3 tmpmap;
  vec3 cur;
  vec3 newcur;
  vec3 whitescale;
  tmpmap = multiplier * tmp;
  cur = Tonemap(exposurebias*tmpmap);
  whitescale = 1.0/Tonemap(vec3(W, W, W));
  newcur = cur*whitescale;
  return vec3(pow(newcur.r, power), pow(newcur.g, power), pow(newcur.b, power));
}

void main(){
  vec4 tmp=varying_color;
  vec4 coord = vec4(varying_texcoord, 0.0, 1.0);
  if (use_tex_matrix) {
     vec4 sample;
     coord = coord * tex_matrix;
     sample = texture2D(tex, coord.st);
     tmp *= sample;
  }
  else if (use_tex) {
     vec4 sample = texture2D(tex, coord.st);
     tmp *= sample;
  }
  //Everything till here works as a good passthrough pixel shader.
  gl_FragColor=vec4(performTonemap(vec3(tmp.r, tmp.g, tmp.b)), tmp.a);
}</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I&#8217;m trying out the GLSL version of it. Unfortunately the image gets extremely saturated/exposed. Am I doing something wrong here: </p>
<p>//From Filmic Tonemapping, Uncharted: <a href="http://filmicgames.com/archives/75" rel="nofollow">http://filmicgames.com/archives/75</a></p>
<p>uniform bool use_tex;<br />
uniform sampler2D tex;<br />
uniform bool use_tex_matrix;<br />
uniform mat4 tex_matrix;<br />
varying vec4 varying_color;<br />
varying vec2 varying_texcoord;</p>
<p>float A = 0.15;<br />
float B = 0.50;<br />
float C = 0.10;<br />
float D = 0.20;<br />
float E = 0.02;<br />
float F = 0.30;<br />
float W = 11.2;<br />
float exposurebias = 2.0;<br />
float multiplier = 16.0;<br />
float power = 0.454;</p>
<p>vec3 Tonemap(vec3 x)<br />
{<br />
return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;<br />
}</p>
<p>vec3 performTonemap(vec3 tmp)<br />
{<br />
  vec3 tmpmap;<br />
  vec3 cur;<br />
  vec3 newcur;<br />
  vec3 whitescale;<br />
  tmpmap = multiplier * tmp;<br />
  cur = Tonemap(exposurebias*tmpmap);<br />
  whitescale = 1.0/Tonemap(vec3(W, W, W));<br />
  newcur = cur*whitescale;<br />
  return vec3(pow(newcur.r, power), pow(newcur.g, power), pow(newcur.b, power));<br />
}</p>
<p>void main(){<br />
  vec4 tmp=varying_color;<br />
  vec4 coord = vec4(varying_texcoord, 0.0, 1.0);<br />
  if (use_tex_matrix) {<br />
     vec4 sample;<br />
     coord = coord * tex_matrix;<br />
     sample = texture2D(tex, coord.st);<br />
     tmp *= sample;<br />
  }<br />
  else if (use_tex) {<br />
     vec4 sample = texture2D(tex, coord.st);<br />
     tmp *= sample;<br />
  }<br />
  //Everything till here works as a good passthrough pixel shader.<br />
  gl_FragColor=vec4(performTonemap(vec3(tmp.r, tmp.g, tmp.b)), tmp.a);<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual Acuity, Vernier Acuity, Anti-Aliasing, and You by admin</title>
		<link>http://filmicgames.com/archives/860/comment-page-1#comment-12157</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 09 Feb 2012 09:23:27 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=860#comment-12157</guid>
		<description>@Andrew:
Yep.  There are some issues in games that are &quot;easy&quot; to solve with the existing pipeline if you have more time to spend, and some that aren&#039;t.  Take anything with an alpha cutoff (like trees in the train level in Uncharted 2).  The artists could choose between using aliased alpha cutouts, or they could use a two pass system where the second pass is blended but they would have to significantly reduce the number of leaf cards.  In most cases, the artists choose to have aliased edges with more cards.

There are some cases that are harder but doable.  Like thin pieces of geometry that are far away (like flag poles) could be solved switching to an alpha card far away, but few games do that because it&#039;s not worth the effort.  It&#039;s kindof like LOD switching in a way.  Back when the PS3 was being released Sony had all these presentations on how to automatically blend between LODs with no pops.  And no one that I know of uses it because it&#039;s not worth the trouble.  

There are a few cases where to reduce aliasing you would have no option but to go with some variant of MSAA.  But those cases are quite rare IMO.  Triangles and draw calls will probably still be tight on next gen.  That&#039;s why any technique that starts with &quot;and you need an extra render pass&quot; is a nonstarter for me.  Tiling with MSAA fits in that category.

One final note: Many artists don&#039;t actually care what the final game looks like.  Most do, but you&#039;d be surprised how many obsess over how their art looks on their screen but don&#039;t care what the player actually sees.  In many cases they could fix the aliasing with better LODs but they don&#039;t because they literally don&#039;t care.  I&#039;ve seen it happen.

@Jonathan Swift:
Yep, I&#039;d agree.  With the one caveat that before these post techniques took off I was a huge proponent of at least 2x MSAA.  1x with no good cleanup looks bad enough that I have trouble focusing on anything else.  Fortunately, FXAA and other variants fix that problem for me.

@Micki:
Good point on HDR and movement.  Crawling jaggies are certainly much worse than regular ones.  For HDR, I generally propose doing AA after tonemapping which is yet another advantage for post techniques over MSAA.</description>
		<content:encoded><![CDATA[<p>@Andrew:<br />
Yep.  There are some issues in games that are &#8220;easy&#8221; to solve with the existing pipeline if you have more time to spend, and some that aren&#8217;t.  Take anything with an alpha cutoff (like trees in the train level in Uncharted 2).  The artists could choose between using aliased alpha cutouts, or they could use a two pass system where the second pass is blended but they would have to significantly reduce the number of leaf cards.  In most cases, the artists choose to have aliased edges with more cards.</p>
<p>There are some cases that are harder but doable.  Like thin pieces of geometry that are far away (like flag poles) could be solved switching to an alpha card far away, but few games do that because it&#8217;s not worth the effort.  It&#8217;s kindof like LOD switching in a way.  Back when the PS3 was being released Sony had all these presentations on how to automatically blend between LODs with no pops.  And no one that I know of uses it because it&#8217;s not worth the trouble.  </p>
<p>There are a few cases where to reduce aliasing you would have no option but to go with some variant of MSAA.  But those cases are quite rare IMO.  Triangles and draw calls will probably still be tight on next gen.  That&#8217;s why any technique that starts with &#8220;and you need an extra render pass&#8221; is a nonstarter for me.  Tiling with MSAA fits in that category.</p>
<p>One final note: Many artists don&#8217;t actually care what the final game looks like.  Most do, but you&#8217;d be surprised how many obsess over how their art looks on their screen but don&#8217;t care what the player actually sees.  In many cases they could fix the aliasing with better LODs but they don&#8217;t because they literally don&#8217;t care.  I&#8217;ve seen it happen.</p>
<p>@Jonathan Swift:<br />
Yep, I&#8217;d agree.  With the one caveat that before these post techniques took off I was a huge proponent of at least 2x MSAA.  1x with no good cleanup looks bad enough that I have trouble focusing on anything else.  Fortunately, FXAA and other variants fix that problem for me.</p>
<p>@Micki:<br />
Good point on HDR and movement.  Crawling jaggies are certainly much worse than regular ones.  For HDR, I generally propose doing AA after tonemapping which is yet another advantage for post techniques over MSAA.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Visual Acuity, Vernier Acuity, Anti-Aliasing, and You by Micki</title>
		<link>http://filmicgames.com/archives/860/comment-page-1#comment-12102</link>
		<dc:creator>Micki</dc:creator>
		<pubDate>Wed, 08 Feb 2012 14:48:13 +0000</pubDate>
		<guid isPermaLink="false">http://filmicgames.com/?p=860#comment-12102</guid>
		<description>Anti aliasing is actually more important in motion than on still images, games look usually so &quot;unreal&quot;, that on a static image, aliasing is one of the least noticeable issues/feature. bluring edges using MLAA/FXAA works kind of for those nice screenshots, but when you start moving, aliasing becomes visible again.
In reality, to not notice aliasing on a sharp screen, the resolution would need to be proportional to the brightness difference of the discreet pixels that are causing aliasing.

That leads to: geometry aliasing will be less and less important in future, it&#039;s solvable quite easily (if you just want to hide geometry borders to the player). Shader/Material aliasing will become more of a problem. Imagine you want to draw a night sky (pure black:0x000000), with bright starts (pure white:0xffffff) - no fake alpha faded sprites- AND avoid any aliasing in motion. Some will say, you need twice the sampling frequency of the object you sample, ... but of what? it&#039;s not of the object size, but... ?
if you don&#039;t want to see any aliasing, you&#039;d need to ovesample in a way, that the brightness difference of some aprticular area (the one that maps to one &#039;sensor&#039; of your eye) stays relatively constant. you might assume you don&#039;t see a brightness difference of 1/16th of the screen min/max, with the &#039;twice the sampling frequency&#039; rule, it would mean we need to make around 32sample points.
And that&#039;s just the case if you work with after-tonemapping AA, if you want to anti-alias HDR, you&#039;ll need to have even more samples to not realize any aliasing. That explains why movies vary their super sampling between simple 7x7 and sometimes 39x39 (and add post effects to further hide aliasing, like blur+sharpen)</description>
		<content:encoded><![CDATA[<p>Anti aliasing is actually more important in motion than on still images, games look usually so &#8220;unreal&#8221;, that on a static image, aliasing is one of the least noticeable issues/feature. bluring edges using MLAA/FXAA works kind of for those nice screenshots, but when you start moving, aliasing becomes visible again.<br />
In reality, to not notice aliasing on a sharp screen, the resolution would need to be proportional to the brightness difference of the discreet pixels that are causing aliasing.</p>
<p>That leads to: geometry aliasing will be less and less important in future, it&#8217;s solvable quite easily (if you just want to hide geometry borders to the player). Shader/Material aliasing will become more of a problem. Imagine you want to draw a night sky (pure black:0&#215;000000), with bright starts (pure white:0xffffff) &#8211; no fake alpha faded sprites- AND avoid any aliasing in motion. Some will say, you need twice the sampling frequency of the object you sample, &#8230; but of what? it&#8217;s not of the object size, but&#8230; ?<br />
if you don&#8217;t want to see any aliasing, you&#8217;d need to ovesample in a way, that the brightness difference of some aprticular area (the one that maps to one &#8217;sensor&#8217; of your eye) stays relatively constant. you might assume you don&#8217;t see a brightness difference of 1/16th of the screen min/max, with the &#8216;twice the sampling frequency&#8217; rule, it would mean we need to make around 32sample points.<br />
And that&#8217;s just the case if you work with after-tonemapping AA, if you want to anti-alias HDR, you&#8217;ll need to have even more samples to not realize any aliasing. That explains why movies vary their super sampling between simple 7&#215;7 and sometimes 39&#215;39 (and add post effects to further hide aliasing, like blur+sharpen)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

