Improving Trilinear Sampling Results
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:02Recap and set the stage for the day debugging our lighting pipeline
🗩
0:02Recap and set the stage for the day debugging our lighting pipeline
🗩
0:02Recap and set the stage for the day debugging our lighting pipeline
🗩
2:57Demo our mostly unlit world
🏃
2:57Demo our mostly unlit world
🏃
2:57Demo our mostly unlit world
🏃
5:00Scrutinise EndLightingComputation() for bugs
📖
5:00Scrutinise EndLightingComputation() for bugs
📖
5:00Scrutinise EndLightingComputation() for bugs
📖
6:32Expand the radius of our light falloff in EndLightingComputation()
6:32Expand the radius of our light falloff in EndLightingComputation()
6:32Expand the radius of our light falloff in EndLightingComputation()
6:54See some visible lighting, with "watery" artifacts as we apparently get full brightness in voxels lacking a light probe
🏃
6:54See some visible lighting, with "watery" artifacts as we apparently get full brightness in voxels lacking a light probe
🏃
6:54See some visible lighting, with "watery" artifacts as we apparently get full brightness in voxels lacking a light probe
🏃
8:40Increase the light intensity from 0.025 to 0.1 of the max
8:40Increase the light intensity from 0.025 to 0.1 of the max
8:40Increase the light intensity from 0.025 to 0.1 of the max
9:45See fuller light in the center region
🏃
9:45See fuller light in the center region
🏃
9:45See fuller light in the center region
🏃
10:39Fix EndLightingComputation() to omit the zero light probe from our spatial index
10:39Fix EndLightingComputation() to omit the zero light probe from our spatial index
10:39Fix EndLightingComputation() to omit the zero light probe from our spatial index
13:55See that our lighting brightness artifact is fixed, but that the sampling needs improving
🏃
13:55See that our lighting brightness artifact is fixed, but that the sampling needs improving
🏃
13:55See that our lighting brightness artifact is fixed, but that the sampling needs improving
🏃
17:03Visualise the location of light probes within their voxels, using our checkerboard pattern and disabling the trilinear filtering
17:03Visualise the location of light probes within their voxels, using our checkerboard pattern and disabling the trilinear filtering
17:03Visualise the location of light probes within their voxels, using our checkerboard pattern and disabling the trilinear filtering
19:57Check the location of our light probes
🏃
19:57Check the location of our light probes
🏃
19:57Check the location of our light probes
🏃
20:48Make EndLightingComputation() override all the lights with our checkerboard
20:48Make EndLightingComputation() override all the lights with our checkerboard
20:48Make EndLightingComputation() override all the lights with our checkerboard
21:40Check the location of our light probes in the voxels
🏃
21:40Check the location of our light probes in the voxels
🏃
21:40Check the location of our light probes in the voxels
🏃
22:32Disable the checkerboard in EndLightingComputation()
22:32Disable the checkerboard in EndLightingComputation()
22:32Disable the checkerboard in EndLightingComputation()
22:56See that our non-trilinear sampled lighting looks more or less correct, and consider factoring in the light probe position to our lighting equation
🏃
22:56See that our non-trilinear sampled lighting looks more or less correct, and consider factoring in the light probe position to our lighting equation
🏃
22:56See that our non-trilinear sampled lighting looks more or less correct, and consider factoring in the light probe position to our lighting equation
🏃
26:13Begin to make CompileZBiasProgram() factor in the light probe position to our lighting equation
26:13Begin to make CompileZBiasProgram() factor in the light probe position to our lighting equation
26:13Begin to make CompileZBiasProgram() factor in the light probe position to our lighting equation
29:59Consider how we could adjust the light based on its position
🗩
29:59Consider how we could adjust the light based on its position
🗩
29:59Consider how we could adjust the light based on its position
🗩
32:37Consider a cleaner way to interpolate between light probe voxels, using a signed distance field
🗩
32:37Consider a cleaner way to interpolate between light probe voxels, using a signed distance field
🗩
32:37Consider a cleaner way to interpolate between light probe voxels, using a signed distance field
🗩
37:14Revert our light position code, and re-enable trilinear filtering
37:14Revert our light position code, and re-enable trilinear filtering
37:14Revert our light position code, and re-enable trilinear filtering
38:29Take a close look at our light falloff artifacts
🏃
38:29Take a close look at our light falloff artifacts
🏃
38:29Take a close look at our light falloff artifacts
🏃
40:22Rounded Falloff
🖌
40:22Rounded Falloff
🖌
40:22Rounded Falloff
🖌
44:35Distance-based Falloff
🖌
44:35Distance-based Falloff
🖌
44:35Distance-based Falloff
🖌
48:01Try to encode our lighting alpha and intensity as a signed distance field, before reverting
48:01Try to encode our lighting alpha and intensity as a signed distance field, before reverting
48:01Try to encode our lighting alpha and intensity as a signed distance field, before reverting
56:36Make sure that it still runs
🏃
56:36Make sure that it still runs
🏃
56:36Make sure that it still runs
🏃
56:39Make EndLightingComputation() stuff lighting values directly into the voxels
56:39Make EndLightingComputation() stuff lighting values directly into the voxels
56:39Make EndLightingComputation() stuff lighting values directly into the voxels
59:20See our test light sphere
🏃
59:20See our test light sphere
🏃
59:20See our test light sphere
🏃
59:36Encode our light values as a signed distance field in EndLightingComputation()
59:36Encode our light values as a signed distance field in EndLightingComputation()
59:36Encode our light values as a signed distance field in EndLightingComputation()
1:03:55Find that our trilinear interpolation is more round than it was
🏃
1:03:55Find that our trilinear interpolation is more round than it was
🏃
1:03:55Find that our trilinear interpolation is more round than it was
🏃
1:05:49Prevent EndLightingComputation() from normalising the incoming light, and only apply the West light
1:05:49Prevent EndLightingComputation() from normalising the incoming light, and only apply the West light
1:05:49Prevent EndLightingComputation() from normalising the incoming light, and only apply the West light
1:08:19Check out the high quality of our lighting falloff
🏃
1:08:19Check out the high quality of our lighting falloff
🏃
1:08:19Check out the high quality of our lighting falloff
🏃
1:09:37Reinstate all our light directions in EndLightingComputation()
1:09:37Reinstate all our light directions in EndLightingComputation()
1:09:37Reinstate all our light directions in EndLightingComputation()
1:11:56See light beyond our falloff boundary, and that the roundedness has gone again
🏃
1:11:56See light beyond our falloff boundary, and that the roundedness has gone again
🏃
1:11:56See light beyond our falloff boundary, and that the roundedness has gone again
🏃
1:13:54Consider if we can put our sampled lighting into a signed distance field construction at voxelisation time
🗩
1:13:54Consider if we can put our sampled lighting into a signed distance field construction at voxelisation time
🗩
1:13:54Consider if we can put our sampled lighting into a signed distance field construction at voxelisation time
🗩
1:18:10Walk through our lighting equation in EndLightingComputation(), noting the problematic interaction of multiple normalisations with a signed distance field
📖
1:18:10Walk through our lighting equation in EndLightingComputation(), noting the problematic interaction of multiple normalisations with a signed distance field
📖
1:18:10Walk through our lighting equation in EndLightingComputation(), noting the problematic interaction of multiple normalisations with a signed distance field
📖
1:22:59Prevent EndLightingComputation() from factoring in the light direction normals
1:22:59Prevent EndLightingComputation() from factoring in the light direction normals
1:22:59Prevent EndLightingComputation() from factoring in the light direction normals
1:23:18See our non-round falloff interpolation artifact
🏃
1:23:18See our non-round falloff interpolation artifact
🏃
1:23:18See our non-round falloff interpolation artifact
🏃
1:23:48Reduce the light intensity in EndLightingComputation()
1:23:48Reduce the light intensity in EndLightingComputation()
1:23:48Reduce the light intensity in EndLightingComputation()
1:24:37Still see our falloff interpolation artifact
🏃
1:24:37Still see our falloff interpolation artifact
🏃
1:24:37Still see our falloff interpolation artifact
🏃
1:24:41Make EndLightingComputation() only apply the West light
1:24:41Make EndLightingComputation() only apply the West light
1:24:41Make EndLightingComputation() only apply the West light
1:25:31See that our falloff interpolation artifact has gone
🏃
1:25:31See that our falloff interpolation artifact has gone
🏃
1:25:31See that our falloff interpolation artifact has gone
🏃
1:26:12Make EndLightingComputation() also apply the South light
1:26:12Make EndLightingComputation() also apply the South light
1:26:12Make EndLightingComputation() also apply the South light
1:27:19See that our falloff still looks fine
🏃
1:27:19See that our falloff still looks fine
🏃
1:27:19See that our falloff still looks fine
🏃
1:27:31Make EndLightingComputation() also apply the Down light
1:27:31Make EndLightingComputation() also apply the Down light
1:27:31Make EndLightingComputation() also apply the Down light
1:28:01Start to see falloff interpolation artifact return
🏃
1:28:01Start to see falloff interpolation artifact return
🏃
1:28:01Start to see falloff interpolation artifact return
🏃
1:28:48Make EndLightingComputation() only apply the West light
1:28:48Make EndLightingComputation() only apply the West light
1:28:48Make EndLightingComputation() only apply the West light
1:29:37See our smooth falloff
🏃
1:29:37See our smooth falloff
🏃
1:29:37See our smooth falloff
🏃
1:29:44Make EndLightingComputation() clamp the light values from 0 to 1
1:29:44Make EndLightingComputation() clamp the light values from 0 to 1
1:29:44Make EndLightingComputation() clamp the light values from 0 to 1
1:30:01See falloff interpolation artifacts
🏃
1:30:01See falloff interpolation artifacts
🏃
1:30:01See falloff interpolation artifacts
🏃
1:30:40Reinstate the signed distance field in EndLightingComputation()
1:30:40Reinstate the signed distance field in EndLightingComputation()
1:30:40Reinstate the signed distance field in EndLightingComputation()
1:30:46Consider the box-directionality of our light probes to be the problem
🏃
1:30:46Consider the box-directionality of our light probes to be the problem
🏃
1:30:46Consider the box-directionality of our light probes to be the problem
🏃
1:36:35Prevent EndLightingComputation() from applying the light from all directions
1:36:35Prevent EndLightingComputation() from applying the light from all directions
1:36:35Prevent EndLightingComputation() from applying the light from all directions
1:37:31See some light
🏃
1:37:31See some light
🏃
1:37:31See some light
🏃
1:37:36Try making EndLightingComputation() set all light directions to -1
1:37:36Try making EndLightingComputation() set all light directions to -1
1:37:36Try making EndLightingComputation() set all light directions to -1
1:39:00See black, as expected
🏃
1:39:00See black, as expected
🏃
1:39:00See black, as expected
🏃
1:39:12Consider correctly handling zero light (in a signed distance field)
🗩
1:39:12Consider correctly handling zero light (in a signed distance field)
🗩
1:39:12Consider correctly handling zero light (in a signed distance field)
🗩
1:42:38Force CompileZBiasProgram() to falloff the light to zero, and let EndLightingComputation() apply the West light
1:42:38Force CompileZBiasProgram() to falloff the light to zero, and let EndLightingComputation() apply the West light
1:42:38Force CompileZBiasProgram() to falloff the light to zero, and let EndLightingComputation() apply the West light
1:43:05See our smooth radial falloff, to black
🏃
1:43:05See our smooth radial falloff, to black
🏃
1:43:05See our smooth radial falloff, to black
🏃
1:45:02Determine to factor in the light direction to our lighting equation
🗩
1:45:02Determine to factor in the light direction to our lighting equation
🗩
1:45:02Determine to factor in the light direction to our lighting equation
🗩
1:46:09Make CompileZBiasProgram() factor in the light direction to our lighting equation
1:46:09Make CompileZBiasProgram() factor in the light direction to our lighting equation
1:46:09Make CompileZBiasProgram() factor in the light direction to our lighting equation
1:51:06See that our light reflections look correct
🏃
1:51:06See that our light reflections look correct
🏃
1:51:06See that our light reflections look correct
🏃
1:52:12Make CompileZBiasProgram() reconstruct light directions more precisely
1:52:12Make CompileZBiasProgram() reconstruct light directions more precisely
1:52:12Make CompileZBiasProgram() reconstruct light directions more precisely
1:52:57Admire our light reconstruction
🏃
1:52:57Admire our light reconstruction
🏃
1:52:57Admire our light reconstruction
🏃
1:54:12Q&A
🗩
1:54:12Q&A
🗩
1:54:12Q&A
🗩
1:55:15ankut Q: Are you ever going to upgrade the stream 4coder to the latest one you and Allen were working on?
🗪
1:55:15ankut Q: Are you ever going to upgrade the stream 4coder to the latest one you and Allen were working on?
🗪
1:55:15ankut Q: Are you ever going to upgrade the stream 4coder to the latest one you and Allen were working on?
🗪
1:56:12For us latecomers, what helped smooth the voxel-like outline of the lighting?
🗪
1:56:12For us latecomers, what helped smooth the voxel-like outline of the lighting?
🗪
1:56:12For us latecomers, what helped smooth the voxel-like outline of the lighting?
🗪
2:03:21Demo our smooth radial falloff
🏃
2:03:21Demo our smooth radial falloff
🏃
2:03:21Demo our smooth radial falloff
🏃
2:03:49Make EndLightingComputation() encode the light as 0 to 1 values
2:03:49Make EndLightingComputation() encode the light as 0 to 1 values
2:03:49Make EndLightingComputation() encode the light as 0 to 1 values
2:04:20Watch the falloff interpolation artifact return
🏃
2:04:20Watch the falloff interpolation artifact return
🏃
2:04:20Watch the falloff interpolation artifact return
🏃
2:04:54Reinstate the signed distance field in EndLightingComputation()
2:04:54Reinstate the signed distance field in EndLightingComputation()
2:04:54Reinstate the signed distance field in EndLightingComputation()
2:05:04Watch the falloff interpolation smooth
🏃
2:05:04Watch the falloff interpolation smooth
🏃
2:05:04Watch the falloff interpolation smooth
🏃
2:05:14Plug Chris Green's article 'Improved Alpha-Tested Magnification for Vector Textures and Special Effects'1
📖
2:05:14Plug Chris Green's article 'Improved Alpha-Tested Magnification for Vector Textures and Special Effects'1
📖
2:05:14Plug Chris Green's article 'Improved Alpha-Tested Magnification for Vector Textures and Special Effects'1
📖
2:07:18Consider encoding our light from -0.2 to 1
2:07:18Consider encoding our light from -0.2 to 1
2:07:18Consider encoding our light from -0.2 to 1
2:08:54Spiney Q: What's the reason you want to keep with the light probes approach instead of using light entities?
🗪
2:08:54Spiney Q: What's the reason you want to keep with the light probes approach instead of using light entities?
🗪
2:08:54Spiney Q: What's the reason you want to keep with the light probes approach instead of using light entities?
🗪
2:10:21Spiney Q: Light source
🗪
2:10:21Spiney Q: Light source
🗪
2:10:21Spiney Q: Light source
🗪
2:13:12centhusiast Q: Could you explain about the real time fluid simulations for games. For example, how to simulate swirling smoke in the game? Have you read the paper by Jos Stam on the real time fluid solver for games? It is really interesting in my opinion. Thanks2
🗪
2:13:12centhusiast Q: Could you explain about the real time fluid simulations for games. For example, how to simulate swirling smoke in the game? Have you read the paper by Jos Stam on the real time fluid solver for games? It is really interesting in my opinion. Thanks2
🗪
2:13:12centhusiast Q: Could you explain about the real time fluid simulations for games. For example, how to simulate swirling smoke in the game? Have you read the paper by Jos Stam on the real time fluid solver for games? It is really interesting in my opinion. Thanks2
🗪
2:14:38centhusiast Q: This paper3
🗪
2:14:38centhusiast Q: This paper3
🗪
2:14:38centhusiast Q: This paper3
🗪
2:20:46Backwards Integration
🖌
2:20:46Backwards Integration
🖌
2:20:46Backwards Integration
🖌
2:33:28Shut it down
🗩
2:33:28Shut it down
🗩
2:33:28Shut it down
🗩